private void setDeletedIfPartial(ProcedureStoreTracker tracker, long procId) { if (tracker.isPartial()) { tracker.setDeleted(procId, true); } }
@Test public void testLoad() { final int MAX_PROCS = 1000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); for (int numProcs = 1; numProcs < MAX_PROCS; ++numProcs) { for (int start = 1; start <= numProcs; ++start) { assertTrue(tracker.isEmpty()); LOG.debug("loading " + numProcs + " procs from start=" + start); for (int i = start; i <= numProcs; ++i) { tracker.setDeleted(i, false); } for (int i = 1; i < start; ++i) { tracker.setDeleted(i, false); } tracker.reset(); } } }
@Test public void testRandLoad() { final int NPROCEDURES = 2500; final int NRUNS = 5000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); Random rand = new Random(1); for (int i = 0; i < NRUNS; ++i) { assertTrue(tracker.isEmpty()); int count = 0; while (count < NPROCEDURES) { long procId = rand.nextLong(); if (procId < 1) continue; tracker.setDeleted(procId, i % 2 == 0); count++; } tracker.reset(); } }
backupStore3.getStoreTracker().setDeleted(1, false); try { backupStore3.delete(1);
@Test public void testPartialTracker() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); tracker.setPartialFlag(true); // nothing in the tracker, the state is unknown assertTrue(tracker.isEmpty()); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 1 as deleted, now that is a known state tracker.setDeleted(1, true); tracker.dump(); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 579 as non-deleted, now that is a known state tracker.setDeleted(579, false); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.NO, tracker.isDeleted(579)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(577)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(580)); tracker.setDeleted(579, true); tracker.setPartialFlag(false); assertTrue(tracker.isEmpty()); }
private void setDeletedIfPartial(ProcedureStoreTracker tracker, long procId) { if (tracker.isPartial()) { tracker.setDeleted(procId, true); } }
private void deleteEntry(final long procId) { if (LOG.isTraceEnabled()) { LOG.trace("delete entry " + procId); } maxProcId = Math.max(maxProcId, procId); localProcedureMap.remove(procId); assert !procedureMap.contains(procId); if (tracker.isPartial()) { tracker.setDeleted(procId, true); } if (localTracker != null) { // In case there is only delete entry for this procedure in current log. localTracker.setDeleted(procId, true); } }
private void loadProcedure(final ProcedureWALEntry entry, final ProcedureProtos.Procedure proc) { maxProcId = Math.max(maxProcId, proc.getProcId()); if (isRequired(proc.getProcId())) { if (LOG.isTraceEnabled()) { LOG.trace("read " + entry.getType() + " entry " + proc.getProcId()); } localProcedureMap.add(proc); tracker.setDeleted(proc.getProcId(), false); } }
@Test public void testLoad() { final int MAX_PROCS = 1000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); for (int numProcs = 1; numProcs < MAX_PROCS; ++numProcs) { for (int start = 1; start <= numProcs; ++start) { assertTrue(tracker.isEmpty()); LOG.debug("loading " + numProcs + " procs from start=" + start); for (int i = start; i <= numProcs; ++i) { tracker.setDeleted(i, false); } for (int i = 1; i < start; ++i) { tracker.setDeleted(i, false); } tracker.reset(); } } }
@Test public void testLoad() { final int MAX_PROCS = 1000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); for (int numProcs = 1; numProcs < MAX_PROCS; ++numProcs) { for (int start = 1; start <= numProcs; ++start) { assertTrue(tracker.isEmpty()); LOG.debug("loading " + numProcs + " procs from start=" + start); for (int i = start; i <= numProcs; ++i) { tracker.setDeleted(i, false); } for (int i = 1; i < start; ++i) { tracker.setDeleted(i, false); } tracker.reset(); } } }
private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException { assert entry.getProcedureCount() == 0 : "Expected no procedures"; assert entry.hasProcId() : "expected ProcID"; if (LOG.isTraceEnabled()) { LOG.trace("read delete entry " + entry.getProcId()); } maxProcId = Math.max(maxProcId, entry.getProcId()); localProcedureMap.remove(entry.getProcId()); assert !procedureMap.contains(entry.getProcId()); tracker.setDeleted(entry.getProcId(), true); }
@Test public void testRandLoad() { final int NPROCEDURES = 2500; final int NRUNS = 5000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); Random rand = new Random(1); for (int i = 0; i < NRUNS; ++i) { assertTrue(tracker.isEmpty()); int count = 0; while (count < NPROCEDURES) { long procId = rand.nextLong(); if (procId < 1) continue; tracker.setDeleted(procId, i % 2 == 0); count++; } tracker.reset(); } }
@Test public void testRandLoad() { final int NPROCEDURES = 2500; final int NRUNS = 5000; final ProcedureStoreTracker tracker = new ProcedureStoreTracker(); Random rand = new Random(1); for (int i = 0; i < NRUNS; ++i) { assertTrue(tracker.isEmpty()); int count = 0; while (count < NPROCEDURES) { long procId = rand.nextLong(); if (procId < 1) continue; tracker.setDeleted(procId, i % 2 == 0); count++; } tracker.reset(); } }
backupStore3.getStoreTracker().setDeleted(1, false); try { backupStore3.delete(1);
@Test public void testPartialTracker() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); tracker.setPartialFlag(true); // nothing in the tracker, the state is unknown assertTrue(tracker.isEmpty()); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 1 as deleted, now that is a known state tracker.setDeleted(1, true); tracker.dump(); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 579 as non-deleted, now that is a known state tracker.setDeleted(579, false); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.NO, tracker.isDeleted(579)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(577)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(580)); tracker.setDeleted(579, true); tracker.setPartialFlag(false); assertTrue(tracker.isEmpty()); }
@Test public void testPartialTracker() { ProcedureStoreTracker tracker = new ProcedureStoreTracker(); tracker.setPartialFlag(true); // nothing in the tracker, the state is unknown assertTrue(tracker.isEmpty()); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 1 as deleted, now that is a known state tracker.setDeleted(1, true); tracker.dump(); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(579)); // Mark 579 as non-deleted, now that is a known state tracker.setDeleted(579, false); assertEquals(ProcedureStoreTracker.DeleteState.YES, tracker.isDeleted(1)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(2)); assertEquals(ProcedureStoreTracker.DeleteState.NO, tracker.isDeleted(579)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(577)); assertEquals(ProcedureStoreTracker.DeleteState.MAYBE, tracker.isDeleted(580)); tracker.setDeleted(579, true); tracker.setPartialFlag(false); assertTrue(tracker.isEmpty()); }