private void checkDeliveryTimeout(final int bucketId) { LOG.debug("Checking for a delivery timeout of the bucket with id: [{}] ", bucketId); Future<?> timeoutFuture = timeouts.remove(bucketId); if (timeoutFuture != null) { LOG.info("Log delivery timeout detected for the bucket with id: [{}]", bucketId); storage.rollbackBucket(bucketId); final LogFailoverCommand controller = this.controller; executorContext.getCallbackExecutor().execute(new Runnable() { @Override public void run() { strategy.onTimeout(controller); } }); if (logDeliveryListener != null) { executorContext.getCallbackExecutor().execute(new Runnable() { @Override public void run() { logDeliveryListener.onLogDeliveryTimeout(bucketInfoMap.get(bucketId)); } }); } timeoutFuture.cancel(true); } else { LOG.trace("No log delivery timeout for the bucket with id [{}] was detected", bucketId); } }
storage.rollbackBucket(response.getRequestId());
@Test public void testGetSameLogBlock() { long bucketSize = 3; int recordCount = 3; LogStorage storage = (LogStorage) getStorage(bucketSize, recordCount); LogRecord record = new LogRecord(); int insertionCount = 3; /* * Size of each record is 3B */ int iter = insertionCount; while (iter-- > 0) { storage.addLogRecord(record); } LogBucket group1 = storage.getNextBucket(); storage.rollbackBucket(group1.getBucketId()); LogBucket group2 = storage.getNextBucket(); Assert.assertTrue("Expected: " + group1.getRecords().size() + ", actual: " + group2.getRecords().size() , group1.getRecords().size() == group2.getRecords().size()); Iterator<LogRecord> expectedIt = group1.getRecords().iterator(); Iterator<LogRecord> actualIt = group2.getRecords().iterator(); while (expectedIt.hasNext()) { LogRecord expected = expectedIt.next(); LogRecord actual = actualIt.next(); Assert.assertTrue(expected.getSize() == actual.getSize()); Assert.assertArrayEquals(expected.getData(), actual.getData()); } storage.close(); }
storage.rollbackBucket(removingBlock1.getBucketId()); insertionCount += removingBlock1.getRecords().size();
Assert.assertEquals((insertionCount - receivedCount) * 3, storage.getStatus().getConsumedVolume()); storage.rollbackBucket(logBlock.getBucketId()); receivedCount -= logBlock.getRecords().size(); Assert.assertEquals(insertionCount - receivedCount, storage.getStatus().getRecordCount());