IH2CtHI2 . calculate object sizes in chunks

This commit is contained in:
Pedro Howat 2024-11-01 15:03:23 -03:00
parent 53516dee38
commit 8410d179cc

View File

@ -230,15 +230,28 @@ export class KwikController {
newVal: 0,
};
} else {
const userMessages = await messages
.find({ owner: instanceName, messageTimestamp: { $gte: messageTimestamp } })
.toArray();
let ended = false;
const batchSize = 10000;
let totalSize = 0;
let offset = 0;
userMessages.forEach(function (doc) {
totalSize += calculateObjectSize(doc);
});
while (!ended) {
const userMessages = await messages
.find({ owner: instanceName, messageTimestamp: { $gte: messageTimestamp } })
.skip(offset)
.limit(batchSize)
.toArray();
userMessages.forEach(function (doc) {
totalSize += calculateObjectSize(doc);
});
if (userMessages.length < batchSize) {
ended = true;
} else {
offset += batchSize;
}
}
return {
chatCount: chatCount[0].rowCount,