add check to exclude temporary ops from packs

This commit is contained in:
Brian Gough 2015-05-22 11:15:47 +01:00
parent ffeb1cccb6
commit adc2866a7d

View file

@ -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