0
0

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:
Marty Schoch 2015-09-10 08:19:05 -04:00
parent c8538c835f
commit f6f1628b15

View File

@ -100,12 +100,14 @@ func (c *Compensator) Migrate(docID []byte, docNum uint64, oldDocNums []uint64)
defer c.deletedMutex.Unlock()
// clone deleted doc numbers and mutate
newDeletedDocNumbers := c.deletedDocNumbers.Clone()
for _, oldDocNum := range oldDocNums {
newDeletedDocNumbers.Set(uint(oldDocNum))
if len(oldDocNums) > 0 {
newDeletedDocNumbers := c.deletedDocNumbers.Clone()
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
val := c.inFlight.Get(&InFlightItem{docID: docID})