in sketches/Sampler.py [0:0]
def compact(self):
if self.getNumHeavy() <= self.topk and self.size() <= self.maxsize:
return
self.buffer.sort()
#print("compact", self.size(), self.getNumHeavy(), self.threshold, self.getTotal(), self.processed)
while self.size() > self.maxsize or self.getNumHeavy() > self.topk:
topk_item = self.buffer.pop()
del self.item_dict[topk_item.item]
if topk_item.item in self.heavy_set:
self.heavy_set.remove(topk_item.item)
self.threshold = min(self.threshold, topk_item.priority) # shouldn't need take min