private static void readLoop(final DistributedLogManager dlm, final DLSN dlsn) throws Exception { final CountDownLatch keepAliveLatch = new CountDownLatch(1); System.out.println("Wait for records starting from " + dlsn); final AsyncLogReader reader = FutureUtils.result(dlm.openAsyncLogReader(dlsn)); final FutureEventListener<LogRecordWithDLSN> readListener = new FutureEventListener<LogRecordWithDLSN>() { @Override public void onFailure(Throwable cause) { System.err.println("Encountered error on reading records from stream " + dlm.getStreamName()); cause.printStackTrace(System.err); keepAliveLatch.countDown(); } @Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); reader.readNext().addEventListener(this); } }; reader.readNext().addEventListener(readListener); keepAliveLatch.await(); FutureUtils.result(reader.asyncClose(), Duration.apply(5, TimeUnit.SECONDS)); }
@Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn() + " from stream " + reader.getStreamName()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); reader.readNext().addEventListener(this); } };
void readLoop() { if (!running) { return; } logReaders[streamIdx].readBulk(10).addEventListener(this); }
private static void readLoop(final AsyncLogReader reader, final CountDownLatch keepAliveLatch) { final FutureEventListener<LogRecordWithDLSN> readListener = new FutureEventListener<LogRecordWithDLSN>() { @Override public void onFailure(Throwable cause) { System.err.println("Encountered error on reading records from stream " + reader.getStreamName()); cause.printStackTrace(System.err); keepAliveLatch.countDown(); } @Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn() + " from stream " + reader.getStreamName()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); reader.readNext().addEventListener(this); } }; reader.readNext().addEventListener(readListener); }
@Override public void onSuccess(AsyncLogReader reader) { acquiredLatch.countDown(); reader.asyncClose(); } @Override
@Override public void onSuccess(AsyncLogReader reader) { System.out.println("Open reader to read records from stream " + reader.getStreamName()); readLoop(reader, keepAliveLatch); } });
@Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); reader.readNext().addEventListener(this); } };
private void closeReader() { if (null != reader) { reader.asyncClose().onFailure(new AbstractFunction1<Throwable, BoxedUnit>() { @Override public BoxedUnit apply(Throwable cause) { LOG.warn("Exception on closing reader {} : ", readerName, cause); return BoxedUnit.UNIT; } }); } }
@Override public void onFailure(Throwable cause) { System.err.println("Encountered error on reading records from stream " + reader.getStreamName()); cause.printStackTrace(System.err); keepAliveLatch.countDown(); }
private static void readLoop(final DistributedLogManager dlm, final DLSN dlsn, final AtomicReference<DLSN> lastDLSN) throws Exception { final CountDownLatch keepAliveLatch = new CountDownLatch(1); System.out.println("Wait for records starting from " + dlsn); final AsyncLogReader reader = FutureUtils.result(dlm.openAsyncLogReader(dlsn)); final FutureEventListener<LogRecordWithDLSN> readListener = new FutureEventListener<LogRecordWithDLSN>() { @Override public void onFailure(Throwable cause) { System.err.println("Encountered error on reading records from stream " + dlm.getStreamName()); cause.printStackTrace(System.err); keepAliveLatch.countDown(); } @Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); lastDLSN.set(record.getDlsn()); reader.readNext().addEventListener(this); } }; reader.readNext().addEventListener(readListener); keepAliveLatch.await(); FutureUtils.result(reader.asyncClose(), Duration.apply(5, TimeUnit.SECONDS)); }
@Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); lastDLSN.set(record.getDlsn()); reader.readNext().addEventListener(this); } };
@Override public Future<Void> applyE(AsyncLogReader reader) throws IOException { return reader.asyncClose().map(new AbstractFunction1<Void, Void>() { @Override public Void apply(Void result) { latch.countDown(); return null; } }); } });
assertEquals("Expected stream name = " + name + " but " + asyncReader.getStreamName() + " found", name, asyncReader.getStreamName()); long numTrans = 0; DLSN lastDLSN = DLSN.InvalidDLSN; LogRecordWithDLSN record = Await.result(asyncReader.readNext()); while (null != record) { DLMTestUtil.verifyEmptyLogRecord(record); break; record = Await.result(asyncReader.readNext());
@Override public void onFailure(Throwable cause) { LOG.debug("Encountered Exception on reading {}", reader.getStreamName(), cause); errorsFound.set(true); completionLatch.countDown(); } });
try { stopwatch.start(); records = FutureUtils.result(reader.readBulk(batchSize)); long elapsedMicros = stopwatch.stop().elapsed(TimeUnit.MICROSECONDS); blockingReadStats.registerSuccessfulEvent(elapsedMicros);
reader.readNext().addEventListener(readListener); FutureUtils.result(reader.asyncClose(), Duration.apply(5, TimeUnit.SECONDS));
@Override public void onSuccess(LogRecordWithDLSN record) { System.out.println("Received record " + record.getDlsn()); System.out.println("\"\"\""); System.out.println(new String(record.getPayload(), UTF_8)); System.out.println("\"\"\""); long diffInMilliseconds = System.currentTimeMillis() - record.getTransactionId(); if (!caughtup.get() && diffInMilliseconds < 2000) { System.out.println("Reader caught with latest data"); caughtup.set(true); } reader.readNext().addEventListener(this); } };
FutureUtils.result(logReaders[idx].asyncClose()); } catch (IOException e) { LOG.warn("Failed on closing stream reader {} : ", streamName, e);
final AtomicBoolean writeErrors = new AtomicBoolean(false); final AsyncLogReader reader = dlm.getAsyncLogReader(DLSN.InvalidDLSN); assertEquals(name, reader.getStreamName());
break; List<LogRecordWithDLSN> records = Await.result(reader.readBulk(20)); LOG.info("Bulk read {} entries.", records.size());