diff options
author | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-10 15:28:38 -0400 |
---|---|---|
committer | Tyler Schicke <tyler_schicke@brown.edu> | 2019-07-10 15:28:38 -0400 |
commit | 36cd0866a139d10285b29d810b94bf03c259d85f (patch) | |
tree | 490eff5861606aeee76e579f0e2b2383bca64a5c /src/server/GarbageCollector.ts | |
parent | fd8fcfe74fff78bc67b6302f917c53e69d598712 (diff) |
Fixed GC?
Diffstat (limited to 'src/server/GarbageCollector.ts')
-rw-r--r-- | src/server/GarbageCollector.ts | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/server/GarbageCollector.ts b/src/server/GarbageCollector.ts index 268239481..59682e51e 100644 --- a/src/server/GarbageCollector.ts +++ b/src/server/GarbageCollector.ts @@ -94,8 +94,17 @@ async function GarbageCollect() { const toDeleteCursor = await Database.Instance.query({ _id: { $nin: Array.from(visited) } }, { _id: 1 }); const toDelete: string[] = (await toDeleteCursor.toArray()).map(doc => doc._id); toDeleteCursor.close(); - const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments"); - console.log(`${result.deletedCount} documents deleted`); + let i = 0; + let deleted = 0; + while (i < toDelete.length) { + const count = Math.min(toDelete.length, 5000); + const toDeleteDocs = toDelete.slice(i, i + count); + i += count; + const result = await Database.Instance.delete({ _id: { $in: toDeleteDocs } }, "newDocuments"); + deleted += result.deletedCount || 0; + } + // const result = await Database.Instance.delete({ _id: { $in: toDelete } }, "newDocuments"); + console.log(`${deleted} documents deleted`); await Search.Instance.deleteDocuments(toDelete); console.log("Cleared search documents"); |