Parcourir la source

add check to exclude temporary ops from packs

Brian Gough il y a 11 ans
Parent
commit
adc2866a7d
1 fichiers modifiés avec 8 ajouts et 3 suppressions
  1. 8 3
      services/track-changes/app/coffee/PackManager.coffee

+ 8 - 3
services/track-changes/app/coffee/PackManager.coffee

@@ -263,10 +263,14 @@ module.exports = PackManager =
 		docs = docs.slice(0,-KEEP_OPS)
 
 		docs.forEach (d,i) ->
+			# skip existing packs
 			if d.pack?
-				# util.log "skipping existing pack of #{d.pack.length}"
-				top = null if top? # flush the current pack
-				return # and try next
+				top = null
+				return
+			# skip temporary ops (we could pack these into temporary packs in future)
+			if d.expiresAt?
+				top = null
+				return
 			sz = BSON.calculateObjectSize(d)
 			if top?	&& top.pack.length < MAX_COUNT && top.sz + sz < MAX_SIZE
 				top.pack = top.pack.concat {v: d.v, meta: d.meta,  op: d.op, _id: d._id}
@@ -308,6 +312,7 @@ module.exports = PackManager =
 					prev = v
 					v = p.v
 					error('bad version', v, 'in', p) if v <= prev
+					#error('expired op', p, 'in pack') if p.expiresAt?
 			else
 				prev = v
 				v = d.v