avoid doing unnecessary work:
benchmark old ns/op new ns/op delta BenchmarkBatch-4 20738739 17047158 -17.80% benchmark old allocs new allocs delta BenchmarkBatch-4 136423 136160 -0.19% benchmark old bytes new bytes delta BenchmarkBatch-4 20277781 7168772 -64.65%
This commit is contained in:
parent
c8538c835f
commit
f6f1628b15
@ -100,12 +100,14 @@ func (c *Compensator) Migrate(docID []byte, docNum uint64, oldDocNums []uint64)
|
|||||||
defer c.deletedMutex.Unlock()
|
defer c.deletedMutex.Unlock()
|
||||||
|
|
||||||
// clone deleted doc numbers and mutate
|
// clone deleted doc numbers and mutate
|
||||||
newDeletedDocNumbers := c.deletedDocNumbers.Clone()
|
if len(oldDocNums) > 0 {
|
||||||
for _, oldDocNum := range oldDocNums {
|
newDeletedDocNumbers := c.deletedDocNumbers.Clone()
|
||||||
newDeletedDocNumbers.Set(uint(oldDocNum))
|
for _, oldDocNum := range oldDocNums {
|
||||||
|
newDeletedDocNumbers.Set(uint(oldDocNum))
|
||||||
|
}
|
||||||
|
// update pointer
|
||||||
|
c.deletedDocNumbers = newDeletedDocNumbers
|
||||||
}
|
}
|
||||||
// update pointer
|
|
||||||
c.deletedDocNumbers = newDeletedDocNumbers
|
|
||||||
|
|
||||||
// remove entry from in-flight if it still has same doc num
|
// remove entry from in-flight if it still has same doc num
|
||||||
val := c.inFlight.Get(&InFlightItem{docID: docID})
|
val := c.inFlight.Get(&InFlightItem{docID: docID})
|
||||||
|
Loading…
Reference in New Issue
Block a user