Skip to content

Commit 693288e

Browse files
authored
Add more waits for cache expiry (#3046)
1 parent 514d720 commit 693288e

File tree

6 files changed

+190
-163
lines changed

6 files changed

+190
-163
lines changed

core/src/integration-test/java/com/scalar/db/storage/jdbc/ConsensusCommitAdminIntegrationTestWithJdbcDatabase.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import static org.assertj.core.api.Assertions.catchThrowable;
66

77
import com.google.common.util.concurrent.Uninterruptibles;
8-
import com.scalar.db.api.DistributedTransactionManager;
98
import com.scalar.db.api.Insert;
109
import com.scalar.db.api.InsertBuilder;
1110
import com.scalar.db.api.Result;
@@ -147,8 +146,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
147146
public void
148147
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
149148
throws ExecutionException, TransactionException {
150-
try (DistributedTransactionManager transactionManager =
151-
transactionFactory.getTransactionManager()) {
149+
try {
152150
// Arrange
153151
Map<String, String> options = getCreationOptions();
154152
TableMetadata.Builder currentTableMetadataBuilder =
@@ -190,7 +188,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
190188
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
191189
insert.timestampTZValue("c12", Instant.now());
192190
}
193-
transactionalInsert(transactionManager, insert.build());
191+
transactionalInsert(insert.build());
194192

195193
// Act Assert
196194
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -225,8 +223,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
225223
public void
226224
alterColumnType_Db2_AlterColumnTypeFromEachExistingDataTypeToText_ShouldAlterColumnTypesCorrectlyIfSupported()
227225
throws ExecutionException, TransactionException {
228-
try (DistributedTransactionManager transactionManager =
229-
transactionFactory.getTransactionManager()) {
226+
try {
230227
// Arrange
231228
Map<String, String> options = getCreationOptions();
232229
TableMetadata.Builder currentTableMetadataBuilder =
@@ -268,7 +265,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
268265
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
269266
insert.timestampTZValue("c12", Instant.now());
270267
}
271-
transactionalInsert(transactionManager, insert.build());
268+
transactionalInsert(insert.build());
272269

273270
// Act Assert
274271
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -332,7 +329,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
332329
@EnabledIf("isOracle")
333330
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
334331
throws ExecutionException, TransactionException {
335-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
332+
try {
336333
// Arrange
337334
Map<String, String> options = getCreationOptions();
338335
TableMetadata.Builder currentTableMetadataBuilder =
@@ -356,7 +353,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
356353
.clusteringKey(Key.ofInt("c2", 2))
357354
.intValue("c3", expectedColumn3Value)
358355
.floatValue("c4", expectedColumn4Value);
359-
transactionalInsert(manager, insert.build());
356+
transactionalInsert(insert.build());
360357

361358
// Act
362359
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -385,7 +382,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
385382
.table(TABLE4)
386383
.partitionKey(Key.ofInt("c1", 1))
387384
.build();
388-
List<Result> results = transactionalScan(manager, scan);
385+
List<Result> results = transactionalScan(scan);
389386
assertThat(results).hasSize(1);
390387
Result result = results.get(0);
391388
assertThat(result.getBigInt("c3")).isEqualTo(expectedColumn3Value);

core/src/integration-test/java/com/scalar/db/storage/jdbc/SingleCrudOperationTransactionAdminIntegrationTestWithJdbcDatabase.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
147147
public void
148148
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
149149
throws ExecutionException, TransactionException {
150-
try (DistributedTransactionManager transactionManager =
151-
transactionFactory.getTransactionManager()) {
150+
try {
152151
// Arrange
153152
Map<String, String> options = getCreationOptions();
154153
TableMetadata.Builder currentTableMetadataBuilder =
@@ -190,7 +189,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
190189
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
191190
insert.timestampTZValue("c12", Instant.now());
192191
}
193-
transactionalInsert(transactionManager, insert.build());
192+
transactionalInsert(insert.build());
194193

195194
// Act Assert
196195
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -332,7 +331,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
332331
@EnabledIf("isOracle")
333332
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
334333
throws ExecutionException, TransactionException {
335-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
334+
try {
336335
// Arrange
337336
Map<String, String> options = getCreationOptions();
338337
TableMetadata.Builder currentTableMetadataBuilder =
@@ -356,7 +355,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
356355
.clusteringKey(Key.ofInt("c2", 2))
357356
.intValue("c3", expectedColumn3Value)
358357
.floatValue("c4", expectedColumn4Value);
359-
transactionalInsert(manager, insert.build());
358+
transactionalInsert(insert.build());
360359

361360
// Act
362361
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -385,7 +384,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
385384
.table(TABLE4)
386385
.partitionKey(Key.ofInt("c1", 1))
387386
.build();
388-
List<Result> results = transactionalScan(manager, scan);
387+
List<Result> results = transactionalScan(scan);
389388
assertThat(results).hasSize(1);
390389
Result result = results.get(0);
391390
assertThat(result.getBigInt("c3")).isEqualTo(expectedColumn3Value);

core/src/integration-test/java/com/scalar/db/transaction/jdbc/JdbcTransactionAdminIntegrationTest.java

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
219219
public void
220220
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
221221
throws ExecutionException, TransactionException {
222-
try (DistributedTransactionManager transactionManager =
223-
transactionFactory.getTransactionManager()) {
222+
try {
224223
// Arrange
225224
Map<String, String> options = getCreationOptions();
226225
TableMetadata.Builder currentTableMetadataBuilder =
@@ -262,7 +261,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
262261
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
263262
insert.timestampTZValue("c12", Instant.now());
264263
}
265-
transactionalInsert(transactionManager, insert.build());
264+
transactionalInsert(insert.build());
266265

267266
// Act Assert
268267
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -340,7 +339,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
340339
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
341340
insert.timestampTZValue("c12", Instant.now());
342341
}
343-
transactionalInsert(transactionManager, insert.build());
342+
transactionalInsert(insert.build());
344343

345344
// Act Assert
346345
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -404,7 +403,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
404403
@EnabledIf("isOracle")
405404
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
406405
throws ExecutionException, TransactionException {
407-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
406+
try {
408407
// Arrange
409408
Map<String, String> options = getCreationOptions();
410409
TableMetadata.Builder currentTableMetadataBuilder =
@@ -428,7 +427,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
428427
.clusteringKey(Key.ofInt("c2", 2))
429428
.intValue("c3", expectedColumn3Value)
430429
.floatValue("c4", expectedColumn4Value);
431-
transactionalInsert(manager, insert.build());
430+
transactionalInsert(insert.build());
432431

433432
// Act
434433
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -457,7 +456,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
457456
.table(TABLE4)
458457
.partitionKey(Key.ofInt("c1", 1))
459458
.build();
460-
List<Result> results = transactionalScan(manager, scan);
459+
List<Result> results = transactionalScan(scan);
461460
assertThat(results).hasSize(1);
462461
Result result = results.get(0);
463462
assertThat(result.getBigInt("c3")).isEqualTo(expectedColumn3Value);
@@ -497,19 +496,27 @@ protected boolean isIndexOnBlobColumnSupported() {
497496
}
498497

499498
@Override
500-
protected void transactionalInsert(DistributedTransactionManager manager, Insert insert)
501-
throws TransactionException {
502-
DistributedTransaction transaction = manager.start();
503-
transaction.insert(insert);
504-
transaction.commit();
499+
protected void transactionalInsert(Insert insert) throws TransactionException {
500+
// Wait for cache expiry
501+
Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
502+
503+
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
504+
DistributedTransaction transaction = manager.start();
505+
transaction.insert(insert);
506+
transaction.commit();
507+
}
505508
}
506509

507510
@Override
508-
protected List<Result> transactionalScan(DistributedTransactionManager manager, Scan scan)
509-
throws TransactionException {
510-
DistributedTransaction transaction = manager.start();
511-
List<Result> results = transaction.scan(scan);
512-
transaction.commit();
513-
return results;
511+
protected List<Result> transactionalScan(Scan scan) throws TransactionException {
512+
// Wait for cache expiry
513+
Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
514+
515+
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
516+
DistributedTransaction transaction = manager.start();
517+
List<Result> results = transaction.scan(scan);
518+
transaction.commit();
519+
return results;
520+
}
514521
}
515522
}

0 commit comments

Comments
 (0)