diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ClientConfiguration.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ClientConfiguration.java index 297a2f62f47..66dc160fd5f 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ClientConfiguration.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ClientConfiguration.java @@ -1148,7 +1148,7 @@ public ClientConfiguration setRecoveryReadBatchSize(int batchSize) { * @return true if reorder read sequence is enabled, otherwise false. */ public boolean isReorderReadSequenceEnabled() { - return getBoolean(REORDER_READ_SEQUENCE_ENABLED, false); + return getBoolean(REORDER_READ_SEQUENCE_ENABLED, true); } /** diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java index e7710124707..f43b6136c81 100644 --- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java +++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/MockBookKeeperTestCase.java @@ -96,6 +96,7 @@ public abstract class MockBookKeeperTestCase { protected BookieClient bookieClient; protected LedgerManager ledgerManager; protected LedgerIdGenerator ledgerIdGenerator; + protected EnsemblePlacementPolicy placementPolicy; private BookieWatcher bookieWatcher; @@ -152,6 +153,7 @@ public void setup() throws Exception { scheduler = OrderedScheduler.newSchedulerBuilder().numThreads(4).name("bk-test").build(); executor = OrderedExecutor.newBuilder().build(); bookieWatcher = mock(BookieWatcher.class); + placementPolicy = new DefaultEnsemblePlacementPolicy(); bookieClient = mock(BookieClient.class); ledgerManager = mock(LedgerManager.class); @@ -194,7 +196,7 @@ public BookieWatcher getBookieWatcher() { @Override public EnsemblePlacementPolicy getPlacementPolicy() { - return null; + return placementPolicy; } @Override diff --git a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOpTest.java b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOpTest.java index 8e3cfd72e42..760f2490182 100644 --- a/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOpTest.java +++ b/bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ReadLastConfirmedAndEntryOpTest.java @@ -85,7 +85,7 @@ public class ReadLastConfirmedAndEntryOpTest { private ScheduledExecutorService scheduler; private OrderedScheduler orderedScheduler; private ClientInternalConf internalConf; - private EnsemblePlacementPolicy mockPlacementPolicy; + private EnsemblePlacementPolicy placementPolicy; private LedgerMetadata ledgerMetadata; private DistributionSchedule distributionSchedule; private DigestManager digestManager; @@ -121,10 +121,11 @@ public void setup() throws Exception { .build(); this.mockBookieClient = mock(BookieClient.class); - this.mockPlacementPolicy = mock(EnsemblePlacementPolicy.class); + //this.mockPlacementPolicy = mock(EnsemblePlacementPolicy.class); + this.placementPolicy = new DefaultEnsemblePlacementPolicy(); this.mockClientCtx = mock(ClientContext.class); when(mockClientCtx.getBookieClient()).thenReturn(mockBookieClient); - when(mockClientCtx.getPlacementPolicy()).thenReturn(mockPlacementPolicy); + when(mockClientCtx.getPlacementPolicy()).thenReturn(placementPolicy); when(mockClientCtx.getConf()).thenReturn(internalConf); when(mockClientCtx.getScheduler()).thenReturn(orderedScheduler); when(mockClientCtx.getMainWorkerPool()).thenReturn(orderedScheduler); diff --git a/conf/bk_server.conf b/conf/bk_server.conf index 79e10f5851d..a87d0d00ac3 100755 --- a/conf/bk_server.conf +++ b/conf/bk_server.conf @@ -1057,6 +1057,9 @@ zkEnableSecurity=false # Enable/disable having read operations for a ledger to be sticky to a single bookie. stickyReadSEnabled=true +# Enable/disable reordering read sequence on reading entries. +reorderReadSequenceEnabled=true + # The grace period, in milliseconds, that the replication worker waits before fencing and # replicating a ledger fragment that's still being written to upon bookie failure. # openLedgerRereplicationGracePeriod=30000