Skip to content

Commit 24c4822

Browse files
committed
Use CachedThreadPool for RecoveryExecutor
1 parent 309e61f commit 24c4822

File tree

8 files changed

+9
-53
lines changed

8 files changed

+9
-53
lines changed

core/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitConfig.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ public class ConsensusCommitConfig {
3535

3636
public static final String COORDINATOR_WRITE_OMISSION_ON_READ_ONLY_ENABLED =
3737
PREFIX + "coordinator.write_omission_on_read_only.enabled";
38-
public static final String RECOVERY_EXECUTOR_COUNT = PREFIX + "recovery_executor_count";
3938
public static final String PARALLEL_IMPLICIT_PRE_READ =
4039
PREFIX + "parallel_implicit_pre_read.enabled";
4140
public static final String INCLUDE_METADATA_ENABLED = PREFIX + "include_metadata.enabled";
@@ -57,7 +56,6 @@ public class ConsensusCommitConfig {
5756
COORDINATOR_GROUP_COMMIT_PREFIX + "metrics_monitor_log_enabled";
5857

5958
public static final int DEFAULT_PARALLEL_EXECUTOR_COUNT = 128;
60-
public static final int DEFAULT_RECOVERY_EXECUTOR_COUNT = 128;
6159

6260
public static final int DEFAULT_COORDINATOR_GROUP_COMMIT_SLOT_CAPACITY = 20;
6361
public static final int DEFAULT_COORDINATOR_GROUP_COMMIT_GROUP_SIZE_FIX_TIMEOUT_MILLIS = 40;
@@ -77,7 +75,6 @@ public class ConsensusCommitConfig {
7775
private final boolean asyncRollbackEnabled;
7876

7977
private final boolean coordinatorWriteOmissionOnReadOnlyEnabled;
80-
private final int recoveryExecutorCount;
8178
private final boolean parallelImplicitPreReadEnabled;
8279
private final boolean isIncludeMetadataEnabled;
8380

@@ -148,9 +145,6 @@ public ConsensusCommitConfig(DatabaseConfig databaseConfig) {
148145
coordinatorWriteOmissionOnReadOnlyEnabled =
149146
getBoolean(properties, COORDINATOR_WRITE_OMISSION_ON_READ_ONLY_ENABLED, true);
150147

151-
recoveryExecutorCount =
152-
getInt(properties, RECOVERY_EXECUTOR_COUNT, DEFAULT_RECOVERY_EXECUTOR_COUNT);
153-
154148
isIncludeMetadataEnabled = getBoolean(properties, INCLUDE_METADATA_ENABLED, false);
155149

156150
parallelImplicitPreReadEnabled = getBoolean(properties, PARALLEL_IMPLICIT_PRE_READ, true);
@@ -225,10 +219,6 @@ public boolean isCoordinatorWriteOmissionOnReadOnlyEnabled() {
225219
return coordinatorWriteOmissionOnReadOnlyEnabled;
226220
}
227221

228-
public int getRecoveryExecutorCount() {
229-
return recoveryExecutorCount;
230-
}
231-
232222
public boolean isParallelImplicitPreReadEnabled() {
233223
return parallelImplicitPreReadEnabled;
234224
}

core/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,7 @@ public ConsensusCommitManager(
7272
new TransactionTableMetadataManager(
7373
admin, databaseConfig.getMetadataCacheExpirationTimeSecs());
7474
RecoveryHandler recovery = new RecoveryHandler(storage, coordinator, tableMetadataManager);
75-
recoveryExecutor =
76-
new RecoveryExecutor(
77-
coordinator, recovery, tableMetadataManager, config.getRecoveryExecutorCount());
75+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
7876
groupCommitter = CoordinatorGroupCommitter.from(config).orElse(null);
7977
commit = createCommitHandler();
8078
isIncludeMetadataEnabled = config.isIncludeMetadataEnabled();
@@ -94,9 +92,7 @@ protected ConsensusCommitManager(DatabaseConfig databaseConfig) {
9492
new TransactionTableMetadataManager(
9593
admin, databaseConfig.getMetadataCacheExpirationTimeSecs());
9694
RecoveryHandler recovery = new RecoveryHandler(storage, coordinator, tableMetadataManager);
97-
recoveryExecutor =
98-
new RecoveryExecutor(
99-
coordinator, recovery, tableMetadataManager, config.getRecoveryExecutorCount());
95+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
10096
groupCommitter = CoordinatorGroupCommitter.from(config).orElse(null);
10197
commit = createCommitHandler();
10298
isIncludeMetadataEnabled = config.isIncludeMetadataEnabled();

core/src/main/java/com/scalar/db/transaction/consensuscommit/RecoveryExecutor.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,12 @@ public class RecoveryExecutor implements AutoCloseable {
4949
public RecoveryExecutor(
5050
Coordinator coordinator,
5151
RecoveryHandler recovery,
52-
TransactionTableMetadataManager tableMetadataManager,
53-
int threadPoolSize) {
52+
TransactionTableMetadataManager tableMetadataManager) {
5453
this.coordinator = Objects.requireNonNull(coordinator);
5554
this.recovery = Objects.requireNonNull(recovery);
5655
this.tableMetadataManager = Objects.requireNonNull(tableMetadataManager);
5756
executorService =
58-
Executors.newFixedThreadPool(
59-
threadPoolSize,
57+
Executors.newCachedThreadPool(
6058
new ThreadFactoryBuilder()
6159
.setNameFormat("recovery-executor-%d")
6260
.setDaemon(true)

core/src/main/java/com/scalar/db/transaction/consensuscommit/TwoPhaseConsensusCommitManager.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,7 @@ public TwoPhaseConsensusCommitManager(
7474
coordinator = new Coordinator(storage, config);
7575
parallelExecutor = new ParallelExecutor(config);
7676
RecoveryHandler recovery = new RecoveryHandler(storage, coordinator, tableMetadataManager);
77-
recoveryExecutor =
78-
new RecoveryExecutor(
79-
coordinator, recovery, tableMetadataManager, config.getRecoveryExecutorCount());
77+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
8078
commit =
8179
new CommitHandler(
8280
storage,
@@ -100,9 +98,7 @@ public TwoPhaseConsensusCommitManager(DatabaseConfig databaseConfig) {
10098
coordinator = new Coordinator(storage, config);
10199
parallelExecutor = new ParallelExecutor(config);
102100
RecoveryHandler recovery = new RecoveryHandler(storage, coordinator, tableMetadataManager);
103-
recoveryExecutor =
104-
new RecoveryExecutor(
105-
coordinator, recovery, tableMetadataManager, config.getRecoveryExecutorCount());
101+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
106102
commit =
107103
new CommitHandler(
108104
storage,

core/src/test/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitConfigTest.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ public void constructor_NoPropertiesGiven_ShouldLoadAsDefaultValues() {
2828
assertThat(config.isAsyncCommitEnabled()).isFalse();
2929
assertThat(config.isAsyncRollbackEnabled()).isFalse();
3030
assertThat(config.isCoordinatorWriteOmissionOnReadOnlyEnabled()).isTrue();
31-
assertThat(config.getRecoveryExecutorCount()).isEqualTo(128);
3231
assertThat(config.isParallelImplicitPreReadEnabled()).isTrue();
3332
assertThat(config.isIncludeMetadataEnabled()).isFalse();
3433
}
@@ -160,19 +159,6 @@ public void constructor_AsyncExecutionRelatedPropertiesGiven_ShouldLoadProperly(
160159
constructor_PropertiesWithCoordinatorWriteOmissionOnReadOnlyEnabledGiven_ShouldLoadProperly() {
161160
// Arrange
162161
Properties props = new Properties();
163-
props.setProperty(ConsensusCommitConfig.RECOVERY_EXECUTOR_COUNT, "256");
164-
165-
// Act
166-
ConsensusCommitConfig config = new ConsensusCommitConfig(new DatabaseConfig(props));
167-
168-
// Assert
169-
assertThat(config.getRecoveryExecutorCount()).isEqualTo(256);
170-
}
171-
172-
@Test
173-
public void constructor_PropertiesWithRecoveryExecutorCountGiven_ShouldLoadProperly() {
174-
// Arrange
175-
Properties props = new Properties();
176162
props.setProperty(
177163
ConsensusCommitConfig.COORDINATOR_WRITE_OMISSION_ON_READ_ONLY_ENABLED, "false");
178164

core/src/test/java/com/scalar/db/transaction/consensuscommit/RecoveryExecutorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public class RecoveryExecutorTest {
134134
public void setUp() throws Exception {
135135
MockitoAnnotations.openMocks(this).close();
136136

137-
executor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager, 1);
137+
executor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
138138

139139
// Arrange
140140
when(tableMetadataManager.getTransactionTableMetadata(selection))

integration-test/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitNullMetadataIntegrationTestBase.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,7 @@ public void setUp() throws Exception {
138138
TransactionTableMetadataManager tableMetadataManager =
139139
new TransactionTableMetadataManager(admin, -1);
140140
recovery = spy(new RecoveryHandler(storage, coordinator, tableMetadataManager));
141-
recoveryExecutor =
142-
new RecoveryExecutor(
143-
coordinator,
144-
recovery,
145-
tableMetadataManager,
146-
consensusCommitConfig.getRecoveryExecutorCount());
141+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
147142
groupCommitter = CoordinatorGroupCommitter.from(consensusCommitConfig).orElse(null);
148143
CommitHandler commit = spy(createCommitHandler(tableMetadataManager, groupCommitter));
149144
manager =

integration-test/src/main/java/com/scalar/db/transaction/consensuscommit/ConsensusCommitSpecificIntegrationTestBase.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -179,12 +179,7 @@ public void setUp() throws Exception {
179179
TransactionTableMetadataManager tableMetadataManager =
180180
new TransactionTableMetadataManager(admin, -1);
181181
recovery = spy(new RecoveryHandler(storage, coordinator, tableMetadataManager));
182-
recoveryExecutor =
183-
new RecoveryExecutor(
184-
coordinator,
185-
recovery,
186-
tableMetadataManager,
187-
consensusCommitConfig.getRecoveryExecutorCount());
182+
recoveryExecutor = new RecoveryExecutor(coordinator, recovery, tableMetadataManager);
188183
groupCommitter = CoordinatorGroupCommitter.from(consensusCommitConfig).orElse(null);
189184
commit = spy(createCommitHandler(tableMetadataManager, groupCommitter));
190185
manager =

0 commit comments

Comments
 (0)