public Stream<LoggedEvent> events(final String logName) { final LogStream logStream = managedLogs.get(logName); final LogStreamReader reader = new BufferedLogStreamReader(logStream); closeables.manage(reader); reader.seekToFirstEvent(); final Iterable<LoggedEvent> iterable = () -> reader; return StreamSupport.stream(iterable.spliterator(), false); }
public Stream<LoggedEvent> events(final String logName) { final LogStream logStream = managedLogs.get(logName); final LogStreamReader reader = new BufferedLogStreamReader(logStream); closeables.manage(reader); reader.seekToFirstEvent(); final Iterable<LoggedEvent> iterable = () -> reader; return StreamSupport.stream(iterable.spliterator(), false); }
private long recoverFromSnapshot(final long commitPosition, final int term) throws Exception { final StateSnapshotMetadata recovered = snapshotController.recover(commitPosition, term, this::validateSnapshot); final long snapshotPosition = recovered.getLastSuccessfulProcessedEventPosition(); logStreamReader.seekToFirstEvent(); // reset seek position if (!recovered.isInitial()) { final boolean found = logStreamReader.seek(snapshotPosition); if (found && logStreamReader.hasNext()) { logStreamReader.seek(snapshotPosition + 1); } else { throw new IllegalStateException( String.format(ERROR_MESSAGE_RECOVER_FROM_SNAPSHOT_FAILED, getName())); } snapshotController.purgeAllExcept(recovered); } return snapshotPosition; }
public static void printRecords(final LogStream logStream) { final StringBuilder sb = new StringBuilder(); sb.append("Records on partition "); sb.append(logStream.getPartitionId()); sb.append(":\n"); try (final LogStreamReader streamReader = new BufferedLogStreamReader(logStream)) { streamReader.seekToFirstEvent(); while (streamReader.hasNext()) { final LoggedEvent event = streamReader.next(); writeRecord(event, sb); } } LOGGER.info(sb.toString()); }
private long recoverFromSnapshot(final long commitPosition, final int term) throws Exception { final StateSnapshotMetadata recovered = snapshotController.recover(commitPosition, term, this::validateSnapshot); final long snapshotPosition = recovered.getLastSuccessfulProcessedEventPosition(); logStreamReader.seekToFirstEvent(); // reset seek position if (!recovered.isInitial()) { final boolean found = logStreamReader.seek(snapshotPosition); if (found && logStreamReader.hasNext()) { logStreamReader.seek(snapshotPosition + 1); } else { throw new IllegalStateException( String.format(ERROR_MESSAGE_RECOVER_FROM_SNAPSHOT_FAILED, getName())); } snapshotController.purgeAllExcept(recovered); } return snapshotPosition; }
public static void printRecords(final LogStream logStream) { final StringBuilder sb = new StringBuilder(); sb.append("Records on partition "); sb.append(logStream.getPartitionId()); sb.append(":\n"); try (final LogStreamReader streamReader = new BufferedLogStreamReader(logStream)) { streamReader.seekToFirstEvent(); while (streamReader.hasNext()) { final LoggedEvent event = streamReader.next(); writeRecord(event, sb); } } LOGGER.info(sb.toString()); }
@Override public void onRecovered() { long lowestPosition = -1; for (final ExporterContainer container : containers) { container.exporter.open(container); container.position = state.getPosition(container.getId()); if (lowestPosition == -1 || lowestPosition > container.position) { lowestPosition = container.position; } } // in case the lowest known position is not found, start from the // beginning again if (lowestPosition <= 0 || !logStreamReader.seek(lowestPosition)) { logStreamReader.seekToFirstEvent(); } else { if (logStreamReader.hasNext()) { logStreamReader.seek(lowestPosition + 1); } } }
@Override public void onRecovered() { long lowestPosition = -1; for (final ExporterContainer container : containers) { container.exporter.open(container); container.position = state.getPosition(container.getId()); if (lowestPosition == -1 || lowestPosition > container.position) { lowestPosition = container.position; } } // in case the lowest known position is not found, start from the // beginning again if (lowestPosition <= 0 || !logStreamReader.seek(lowestPosition)) { logStreamReader.seekToFirstEvent(); } else { if (logStreamReader.hasNext()) { logStreamReader.seek(lowestPosition + 1); } } }