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, newVal: 0,
}; };
} else { } else {
const userMessages = await messages let ended = false;
.find({ owner: instanceName, messageTimestamp: { $gte: messageTimestamp } }) const batchSize = 10000;
.toArray();
let totalSize = 0; let totalSize = 0;
let offset = 0;
userMessages.forEach(function (doc) { while (!ended) {
totalSize += calculateObjectSize(doc); 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 { return {
chatCount: chatCount[0].rowCount, chatCount: chatCount[0].rowCount,