ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker, loader); tracker.setKeepDeletes(true); log.open(); try { reader.read(log); } finally { log.close(); reader.finish();
private boolean isRequired(long procId) { return !isDeleted(procId) && !procedureMap.contains(procId); } }
private void loadProcedure(ProcedureWALEntry entry, ProcedureProtos.Procedure proc) { maxProcId = Math.max(maxProcId, proc.getProcId()); if (isRequired(proc.getProcId())) { LOG.trace("Read {} entry {}", entry.getType(), proc.getProcId()); localProcedureMap.add(proc); insertIfPartial(tracker, proc); } insertIfPartial(localTracker, proc); }
private void readDeleteEntry(ProcedureWALEntry entry) { assert entry.hasProcId() : "expected ProcID"; if (entry.getChildIdCount() > 0) { assert entry.getProcedureCount() == 1 : "Expected only one procedure"; // update the parent procedure loadProcedure(entry, entry.getProcedure(0)); // remove the child procedures of entry.getProcId() for (int i = 0, count = entry.getChildIdCount(); i < count; ++i) { deleteEntry(entry.getChildId(i)); } } else { assert entry.getProcedureCount() == 0 : "Expected no procedures"; // delete the procedure deleteEntry(entry.getProcId()); } }
switch (entry.getType()) { case PROCEDURE_WAL_INIT: readInitEntry(entry); break; case PROCEDURE_WAL_INSERT: readInsertEntry(entry); break; case PROCEDURE_WAL_UPDATE: case PROCEDURE_WAL_COMPACT: readUpdateEntry(entry); break; case PROCEDURE_WAL_DELETE: readDeleteEntry(entry); break; case PROCEDURE_WAL_EOF:
private void readInsertEntry(ProcedureWALEntry entry) { assert entry.getProcedureCount() >= 1 : "Expected one or more procedures"; loadProcedure(entry, entry.getProcedure(0)); for (int i = 1; i < entry.getProcedureCount(); ++i) { loadProcedure(entry, entry.getProcedure(i)); } }
public static void load(final Iterator<ProcedureWALFile> logs, final ProcedureStoreTracker tracker, final Loader loader) throws IOException { ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker); tracker.setKeepDeletes(true); try { while (logs.hasNext()) { ProcedureWALFile log = logs.next(); log.open(); try { reader.read(log, loader); } finally { log.close(); } } reader.finalize(loader); // The tracker is now updated with all the procedures read from the logs tracker.setPartialFlag(false); tracker.resetUpdates(); } finally { tracker.setKeepDeletes(false); } }
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); if (tracker.isPartial()) { tracker.insert(proc.getProcId()); } } if (localTracker != null) { localTracker.insert(proc.getProcId()); } }
readInitEntry(entry); break; case PROCEDURE_WAL_INSERT: readInsertEntry(entry); break; case PROCEDURE_WAL_UPDATE: case PROCEDURE_WAL_COMPACT: readUpdateEntry(entry); break; case PROCEDURE_WAL_DELETE: readDeleteEntry(entry); break; case PROCEDURE_WAL_EOF:
private void readUpdateEntry(ProcedureWALEntry entry) { assert entry.getProcedureCount() == 1 : "Expected only one procedure"; loadProcedure(entry, entry.getProcedure(0)); }
private void readDeleteEntry(ProcedureWALEntry entry) { assert entry.hasProcId() : "expected ProcID"; if (entry.getChildIdCount() > 0) { assert entry.getProcedureCount() == 1 : "Expected only one procedure"; // update the parent procedure loadProcedure(entry, entry.getProcedure(0)); // remove the child procedures of entry.getProcId() for (int i = 0, count = entry.getChildIdCount(); i < count; ++i) { deleteEntry(entry.getChildId(i)); } } else { assert entry.getProcedureCount() == 0 : "Expected no procedures"; // delete the procedure deleteEntry(entry.getProcId()); } }
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); } }
switch (entry.getType()) { case PROCEDURE_WAL_INIT: readInitEntry(entry); break; case PROCEDURE_WAL_INSERT: readInsertEntry(entry); break; case PROCEDURE_WAL_UPDATE: case PROCEDURE_WAL_COMPACT: readUpdateEntry(entry); break; case PROCEDURE_WAL_DELETE: readDeleteEntry(entry); break; case PROCEDURE_WAL_EOF:
public static void load(final Iterator<ProcedureWALFile> logs, final ProcedureStoreTracker tracker, final Loader loader) throws IOException { final ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker, loader); tracker.setKeepDeletes(true); try { // Ignore the last log which is current active log. while (logs.hasNext()) { ProcedureWALFile log = logs.next(); log.open(); try { reader.read(log); } finally { log.close(); } } reader.finish(); // The tracker is now updated with all the procedures read from the logs tracker.setPartialFlag(false); tracker.resetUpdates(); } finally { tracker.setKeepDeletes(false); } }
private void readInitEntry(ProcedureWALEntry entry) { assert entry.getProcedureCount() == 1 : "Expected only one procedure"; loadProcedure(entry, entry.getProcedure(0)); }
private void readDeleteEntry(final ProcedureWALEntry entry) throws IOException { assert entry.hasProcId() : "expected ProcID"; if (entry.getChildIdCount() > 0) { assert entry.getProcedureCount() == 1 : "Expected only one procedure"; // update the parent procedure loadProcedure(entry, entry.getProcedure(0)); // remove the child procedures of entry.getProcId() for (int i = 0, count = entry.getChildIdCount(); i < count; ++i) { deleteEntry(entry.getChildId(i)); } } else { assert entry.getProcedureCount() == 0 : "Expected no procedures"; // delete the procedure deleteEntry(entry.getProcId()); } }
private boolean isRequired(long procId) { return !isDeleted(procId) && !procedureMap.contains(procId); } }
private void loadProcedure(ProcedureWALEntry entry, ProcedureProtos.Procedure proc) { maxProcId = Math.max(maxProcId, proc.getProcId()); if (isRequired(proc.getProcId())) { LOG.trace("Read {} entry {}", entry.getType(), proc.getProcId()); localProcedureMap.add(proc); insertIfPartial(tracker, proc); } insertIfPartial(localTracker, proc); }
readInitEntry(entry); break; case INSERT: readInsertEntry(entry); break; case UPDATE: case COMPACT: readUpdateEntry(entry); break; case DELETE: readDeleteEntry(entry); break; case EOF:
ProcedureWALFormatReader reader = new ProcedureWALFormatReader(tracker, loader); tracker.setKeepDeletes(true); log.open(); try { reader.read(log); } finally { log.close(); reader.finish();