/** * Returns a new UnionBuilder * @return a new UnionBuilder */ public static DoublesUnionBuilder builder() { return new DoublesUnionBuilder(); }
/** * Returns a new UnionBuilder * @return a new UnionBuilder */ public static DoublesUnionBuilder builder() { return new DoublesUnionBuilder(); }
@Test public void checkBuilds() { UpdateDoublesSketch qs1 = DoublesSketch.builder().build(); for (int i=0; i<1000; i++) { qs1.update(i); } int bytes = qs1.getCompactStorageBytes(); WritableMemory dstMem = WritableMemory.wrap(new byte[bytes]); qs1.putMemory(dstMem); Memory srcMem = dstMem; DoublesUnionBuilder bldr = new DoublesUnionBuilder(); bldr.setMaxK(128); DoublesUnion union = bldr.build(); //virgin union union = DoublesUnion.heapify(srcMem); DoublesSketch qs2 = union.getResult(); assertEquals(qs1.getCompactStorageBytes(), qs2.getCompactStorageBytes()); union = DoublesUnion.heapify(qs2); DoublesSketch qs3 = union.getResult(); assertEquals(qs2.getCompactStorageBytes(), qs3.getCompactStorageBytes()); assertFalse(qs2 == qs3); }
@Test public void checkDeprecated1() { UpdateDoublesSketch qs1 = DoublesSketch.builder().build(); for (int i=0; i<1000; i++) { qs1.update(i); } int bytes = qs1.getCompactStorageBytes(); WritableMemory dstMem = WritableMemory.wrap(new byte[bytes]); qs1.putMemory(dstMem); Memory srcMem = dstMem; DoublesUnionBuilder bldr = new DoublesUnionBuilder(); bldr.setMaxK(128); DoublesUnion union = bldr.build(); //virgin union union = DoublesUnion.heapify(srcMem); //heapify DoublesSketch qs2 = union.getResult(); assertEquals(qs1.getCompactStorageBytes(), qs2.getCompactStorageBytes()); assertEquals(qs1.getUpdatableStorageBytes(), qs2.getUpdatableStorageBytes()); union = DoublesUnion.heapify(qs2); //heapify again DoublesSketch qs3 = union.getResult(); assertEquals(qs2.getCompactStorageBytes(), qs3.getCompactStorageBytes()); assertEquals(qs2.getUpdatableStorageBytes(), qs3.getUpdatableStorageBytes()); assertFalse(qs2 == qs3); //different objects }
private QuantileSketch(int k, Distribution.Type type) { updateSketch = new DoublesSketchBuilder().build(k); unionSketch = new DoublesUnionBuilder().setMaxK(k).build(); this.type = type; }
public void rotateLatencyCollection() { // Swap current with replacement ThreadLocalAccessor local = current; current = replacement; replacement = local; final DoublesUnion aggregateSuccesss = new DoublesUnionBuilder().build(); final DoublesUnion aggregateFail = new DoublesUnionBuilder().build(); local.map.forEach((localData, b) -> { long stamp = localData.lock.writeLock(); try { aggregateSuccesss.update(localData.successSketch); localData.successSketch.reset(); aggregateFail.update(localData.failSketch); localData.failSketch.reset(); } finally { localData.lock.unlockWrite(stamp); } }); successResult = aggregateSuccesss.getResultAndReset(); failResult = aggregateFail.getResultAndReset(); }