From 398dcb19b3c7bc96e74f42a838784307715a92da Mon Sep 17 00:00:00 2001 From: Steve Yen Date: Thu, 30 Nov 2017 10:37:02 -0800 Subject: [PATCH] scorch introducer uses the roaring.Or(x, y) API Instead of cloning an input bitmap, the roaring.Or(x, y) implementation fills a brand new result bitmap, which should be allow for more efficient packing and memory utilization. --- index/scorch/introducer.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index/scorch/introducer.go b/index/scorch/introducer.go index dc748ad8..37a66dc8 100644 --- a/index/scorch/introducer.go +++ b/index/scorch/introducer.go @@ -49,8 +49,7 @@ func (s *Scorch) mainLoop() { if s.root.segment[i].deleted == nil { newSnapshot.segment[i].deleted = delta } else { - newSnapshot.segment[i].deleted = s.root.segment[i].deleted.Clone() - newSnapshot.segment[i].deleted.Or(delta) + newSnapshot.segment[i].deleted = roaring.Or(s.root.segment[i].deleted, delta) } newSnapshot.offsets[i] = running