@Override protected AbstractCompactor<Integer> createCompactor(SortedOplogFactory factory) throws IOException { return new SizeTieredCompactor(factory, NonCompactor.createFileset("test", new File(".")), new FileTracker(), Executors.newSingleThreadExecutor(), 2, 4); }
List<TrackedReference<SortedOplogReader>> snapshot = getSnapshot(null, null); try { SortedOplog merged = merge(snapshot, level == maxLevels - 1, aborted); levels.get(Math.min(level + 1, maxLevels - 1)).add(merged); markAsInactive(snapshot, level); soplogs.removeAll(snapshot);
@Override protected synchronized void clear() throws IOException { for (TrackedReference<SortedOplogReader> tr : soplogs) { tr.get().close(); } markAsInactive(soplogs, level); soplogs.clear(); }
public void testInUse() throws Exception { FlushCounter handler = new FlushCounter(); SortedOplogSet sos = createSoplogSet("inuse"); for (int i = 0; i < 1000; i++) { sos.put(wrapInt(i), wrapInt(i)); } flushAndWait(handler, sos); // start iterating over soplog SortedIterator<ByteBuffer> range = sos.scan(); assertEquals(0, ((SizeTieredCompactor) sos.getCompactor()).countInactiveReaders()); for (int i = 1000; i < 5000; i++) { sos.put(wrapInt(i), wrapInt(i)); if (i % 100 == 0) { sos.flush(null, handler); } } flushAndWait(handler, sos); compactAndWait(sos, false); assertEquals(1, ((SizeTieredCompactor) sos.getCompactor()).countInactiveReaders()); range.close(); compactAndWait(sos, false); assertEquals(0, ((SizeTieredCompactor) sos.getCompactor()).countInactiveReaders()); validate(sos, 5000); sos.close(); }
@Override protected AbstractCompactor<?> createCompactor(SortedOplogFactory factory) throws IOException { return new SizeTieredCompactor(factory, NonCompactor.createFileset("test", new File(".")), new FileTracker(), Executors.newSingleThreadExecutor(), 2, 4); } }
public void testTombstone() throws Exception { FlushCounter handler = new FlushCounter(); SortedOplogFactory factory = new HFileSortedOplogFactory("tombstone", null, new SortedOplogStatistics("stats", "tombstone"), new HFileStoreStatistics("storeStats", "tombstone")); Compactor compactor = new SizeTieredCompactor(factory, NonCompactor.createFileset("tombstone", new File(".")), new FileTracker(), Executors.newSingleThreadExecutor(), 2, 2); SortedOplogSet sos = new SortedOplogSetImpl(factory, Executors.newSingleThreadExecutor(), compactor); for (int i = 0; i < 1000; i++) { sos.put(wrapInt(i), wrapInt(i)); } sos.flush(null, handler); for (int i = 900; i < 1000; i++) { sos.put(wrapInt(i), new byte[] {SoplogToken.TOMBSTONE.toByte()}); } flushAndWait(handler, sos); compactAndWait(sos, true); validate(sos, 900); sos.close(); }