From 5c4afd5303df3e8b63e37e1a5119413097b16a4e Mon Sep 17 00:00:00 2001 From: Brian Gough Date: Fri, 22 May 2015 14:13:34 +0100 Subject: [PATCH] add docHistoryStats collection to keep track of updates to docs --- .../track-changes/app/coffee/MongoManager.coffee | 12 +++++++++++- services/track-changes/app/coffee/mongojs.coffee | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/services/track-changes/app/coffee/MongoManager.coffee b/services/track-changes/app/coffee/MongoManager.coffee index 1b99c53ab8..1beb2b8983 100644 --- a/services/track-changes/app/coffee/MongoManager.coffee +++ b/services/track-changes/app/coffee/MongoManager.coffee @@ -34,7 +34,14 @@ module.exports = MongoManager = for update in updates do (update) -> jobs.push (callback) -> MongoManager.insertCompressedUpdate project_id, doc_id, update, temporary, callback - async.series jobs, callback + async.series jobs, (err, results) -> + if not temporary + # keep track of updates to be packed + db.docHistoryStats.update {doc_id:ObjectId(doc_id)}, {$inc:{updates:updates.length}}, {upsert:true}, () -> + callback(err,results) + else + callback(err,results) + insertCompressedUpdate: (project_id, doc_id, update, temporary, callback = (error) ->) -> update = { @@ -113,3 +120,6 @@ module.exports = MongoManager = db.projectHistoryMetaData.ensureIndex { project_id: 1 }, { background: true } # TTL index for auto deleting week old temporary ops db.docHistory.ensureIndex { expiresAt: 1 }, { expireAfterSeconds: 0, background: true } + # For finding documents which need packing + db.docHistoryStats.ensureIndex { doc_id: 1 }, { background: true } + db.docHistoryStats.ensureIndex { updates: -1, doc_id: 1 }, { background: true } diff --git a/services/track-changes/app/coffee/mongojs.coffee b/services/track-changes/app/coffee/mongojs.coffee index 8c2971945c..32efbc9a1d 100644 --- a/services/track-changes/app/coffee/mongojs.coffee +++ b/services/track-changes/app/coffee/mongojs.coffee @@ -1,6 +1,6 @@ Settings = require "settings-sharelatex" mongojs = require "mongojs" -db = mongojs.connect(Settings.mongo.url, ["docHistory", "projectHistoryMetaData"]) +db = mongojs.connect(Settings.mongo.url, ["docHistory", "projectHistoryMetaData", "docHistoryStats"]) module.exports = db: db ObjectId: mongojs.ObjectId