Java Code Examples for org.apache.distributedlog.DistributedLogConfiguration#setMaxPrefetchEntriesPerLogSegment()
The following examples show how to use
org.apache.distributedlog.DistributedLogConfiguration#setMaxPrefetchEntriesPerLogSegment() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestBKLogSegmentEntryReader.java From distributedlog with Apache License 2.0 | 5 votes |
@Test(timeout = 60000) public void testCloseReaderToCancelPendingReads() throws Exception { DistributedLogConfiguration confLocal = new DistributedLogConfiguration(); confLocal.addConfiguration(conf); confLocal.setNumPrefetchEntriesPerLogSegment(10); confLocal.setMaxPrefetchEntriesPerLogSegment(10); DistributedLogManager dlm = createNewDLM(confLocal, runtime.getMethodName()); DLMTestUtil.generateCompletedLogSegments(dlm, confLocal, 1, 20); List<LogSegmentMetadata> segments = dlm.getLogSegments(); assertEquals(segments.size() + " log segments found, expected to be only one", 1, segments.size()); BKLogSegmentEntryReader reader = createEntryReader(segments.get(0), 0, confLocal); List<CompletableFuture<List<Entry.Reader>>> futures = Lists.newArrayList(); for (int i = 0; i < 5; i++) { futures.add(reader.readNext(1)); } assertFalse("Reader should not be closed yet", reader.isClosed()); Utils.close(reader); for (CompletableFuture<List<Entry.Reader>> future : futures) { try { Utils.ioResult(future); fail("The read request should be cancelled"); } catch (ReadCancelledException rce) { // expected } } assertFalse(reader.hasCaughtUpOnInprogress()); assertTrue("Reader should be closed yet", reader.isClosed()); }
Example 2
Source File: TestBKLogSegmentEntryReader.java From distributedlog with Apache License 2.0 | 4 votes |
@Test(timeout = 60000) public void testReadEntriesFromCompleteLogSegment() throws Exception { DistributedLogConfiguration confLocal = new DistributedLogConfiguration(); confLocal.addConfiguration(conf); confLocal.setOutputBufferSize(0); confLocal.setPeriodicFlushFrequencyMilliSeconds(0); confLocal.setImmediateFlushEnabled(false); confLocal.setNumPrefetchEntriesPerLogSegment(10); confLocal.setMaxPrefetchEntriesPerLogSegment(10); DistributedLogManager dlm = createNewDLM(confLocal, runtime.getMethodName()); generateCompletedLogSegments(dlm, confLocal, 1, 20); List<LogSegmentMetadata> segments = dlm.getLogSegments(); assertEquals(segments.size() + " log segments found, expected to be only one", 1, segments.size()); BKLogSegmentEntryReader reader = createEntryReader(segments.get(0), 0, confLocal); reader.start(); boolean done = false; long txId = 1L; long entryId = 0L; while (!done) { Entry.Reader entryReader; try { entryReader = Utils.ioResult(reader.readNext(1)).get(0); } catch (EndOfLogSegmentException eol) { done = true; continue; } LogRecordWithDLSN record = entryReader.nextRecord(); while (null != record) { if (!record.isControl()) { DLMTestUtil.verifyLogRecord(record); assertEquals(txId, record.getTransactionId()); ++txId; } DLSN dlsn = record.getDlsn(); assertEquals(1L, dlsn.getLogSegmentSequenceNo()); assertEquals(entryId, dlsn.getEntryId()); record = entryReader.nextRecord(); } ++entryId; } assertEquals(21, txId); assertFalse(reader.hasCaughtUpOnInprogress()); Utils.close(reader); }
Example 3
Source File: TestBKLogSegmentEntryReader.java From distributedlog with Apache License 2.0 | 4 votes |
@Test(timeout = 60000) public void testMaxPrefetchEntriesSmallBatch() throws Exception { DistributedLogConfiguration confLocal = new DistributedLogConfiguration(); confLocal.addConfiguration(conf); confLocal.setOutputBufferSize(0); confLocal.setPeriodicFlushFrequencyMilliSeconds(0); confLocal.setImmediateFlushEnabled(false); confLocal.setNumPrefetchEntriesPerLogSegment(2); confLocal.setMaxPrefetchEntriesPerLogSegment(10); DistributedLogManager dlm = createNewDLM(confLocal, runtime.getMethodName()); generateCompletedLogSegments(dlm, confLocal, 1, 20); List<LogSegmentMetadata> segments = dlm.getLogSegments(); assertEquals(segments.size() + " log segments found, expected to be only one", 1, segments.size()); BKLogSegmentEntryReader reader = createEntryReader(segments.get(0), 0, confLocal); reader.start(); // wait for the read ahead entries to become available while (reader.readAheadEntries.size() < 10) { TimeUnit.MILLISECONDS.sleep(10); } long txId = 1L; long entryId = 0L; assertEquals(10, reader.readAheadEntries.size()); assertEquals(10, reader.getNextEntryId()); assertFalse(reader.hasCaughtUpOnInprogress()); // read first entry Entry.Reader entryReader = Utils.ioResult(reader.readNext(1)).get(0); LogRecordWithDLSN record = entryReader.nextRecord(); while (null != record) { if (!record.isControl()) { DLMTestUtil.verifyLogRecord(record); assertEquals(txId, record.getTransactionId()); ++txId; } DLSN dlsn = record.getDlsn(); assertEquals(1L, dlsn.getLogSegmentSequenceNo()); assertEquals(entryId, dlsn.getEntryId()); record = entryReader.nextRecord(); } ++entryId; assertEquals(2L, txId); // wait for the read ahead entries to become 10 again while (reader.readAheadEntries.size() < 10) { TimeUnit.MILLISECONDS.sleep(10); } assertEquals(10, reader.readAheadEntries.size()); assertEquals(11, reader.getNextEntryId()); assertFalse(reader.hasCaughtUpOnInprogress()); Utils.close(reader); }
Example 4
Source File: TestBKLogSegmentEntryReader.java From distributedlog with Apache License 2.0 | 4 votes |
@Test(timeout = 60000) public void testMaxPrefetchEntriesLargeBatch() throws Exception { DistributedLogConfiguration confLocal = new DistributedLogConfiguration(); confLocal.addConfiguration(conf); confLocal.setOutputBufferSize(0); confLocal.setPeriodicFlushFrequencyMilliSeconds(0); confLocal.setImmediateFlushEnabled(false); confLocal.setNumPrefetchEntriesPerLogSegment(10); confLocal.setMaxPrefetchEntriesPerLogSegment(5); DistributedLogManager dlm = createNewDLM(confLocal, runtime.getMethodName()); generateCompletedLogSegments(dlm, confLocal, 1, 20); List<LogSegmentMetadata> segments = dlm.getLogSegments(); assertEquals(segments.size() + " log segments found, expected to be only one", 1, segments.size()); BKLogSegmentEntryReader reader = createEntryReader(segments.get(0), 0, confLocal); reader.start(); // wait for the read ahead entries to become available while (reader.readAheadEntries.size() < 5) { TimeUnit.MILLISECONDS.sleep(10); } long txId = 1L; long entryId = 0L; assertEquals(5, reader.readAheadEntries.size()); assertEquals(5, reader.getNextEntryId()); // read first entry Entry.Reader entryReader = Utils.ioResult(reader.readNext(1)).get(0); LogRecordWithDLSN record = entryReader.nextRecord(); while (null != record) { if (!record.isControl()) { DLMTestUtil.verifyLogRecord(record); assertEquals(txId, record.getTransactionId()); ++txId; } DLSN dlsn = record.getDlsn(); assertEquals(1L, dlsn.getLogSegmentSequenceNo()); assertEquals(entryId, dlsn.getEntryId()); record = entryReader.nextRecord(); } ++entryId; assertEquals(2L, txId); // wait for the read ahead entries to become 10 again while (reader.readAheadEntries.size() < 5) { TimeUnit.MILLISECONDS.sleep(10); } assertEquals(5, reader.readAheadEntries.size()); assertEquals(6, reader.getNextEntryId()); assertFalse(reader.hasCaughtUpOnInprogress()); Utils.close(reader); }
Example 5
Source File: TestBKLogSegmentEntryReader.java From distributedlog with Apache License 2.0 | 4 votes |
@Test(timeout = 60000) public void testMaxPrefetchEntriesSmallSegment() throws Exception { DistributedLogConfiguration confLocal = new DistributedLogConfiguration(); confLocal.addConfiguration(conf); confLocal.setOutputBufferSize(0); confLocal.setPeriodicFlushFrequencyMilliSeconds(0); confLocal.setImmediateFlushEnabled(false); confLocal.setNumPrefetchEntriesPerLogSegment(10); confLocal.setMaxPrefetchEntriesPerLogSegment(20); DistributedLogManager dlm = createNewDLM(confLocal, runtime.getMethodName()); generateCompletedLogSegments(dlm, confLocal, 1, 5); List<LogSegmentMetadata> segments = dlm.getLogSegments(); assertEquals(segments.size() + " log segments found, expected to be only one", 1, segments.size()); BKLogSegmentEntryReader reader = createEntryReader(segments.get(0), 0, confLocal); reader.start(); // wait for the read ahead entries to become available while (reader.readAheadEntries.size() < (reader.getLastAddConfirmed() + 1)) { TimeUnit.MILLISECONDS.sleep(10); } long txId = 1L; long entryId = 0L; assertEquals((reader.getLastAddConfirmed() + 1), reader.readAheadEntries.size()); assertEquals((reader.getLastAddConfirmed() + 1), reader.getNextEntryId()); // read first entry Entry.Reader entryReader = Utils.ioResult(reader.readNext(1)).get(0); LogRecordWithDLSN record = entryReader.nextRecord(); while (null != record) { if (!record.isControl()) { DLMTestUtil.verifyLogRecord(record); assertEquals(txId, record.getTransactionId()); ++txId; } DLSN dlsn = record.getDlsn(); assertEquals(1L, dlsn.getLogSegmentSequenceNo()); assertEquals(entryId, dlsn.getEntryId()); record = entryReader.nextRecord(); } ++entryId; assertEquals(2L, txId); assertEquals(reader.getLastAddConfirmed(), reader.readAheadEntries.size()); assertEquals((reader.getLastAddConfirmed() + 1), reader.getNextEntryId()); assertFalse(reader.hasCaughtUpOnInprogress()); Utils.close(reader); }