Skip to content

Commit ffc0de6

Browse files
committed
Add more waits for cache expiry (#3046)
1 parent ab23dc4 commit ffc0de6

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;
@@ -233,8 +232,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
233232
public void
234233
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
235234
throws ExecutionException, TransactionException {
236-
try (DistributedTransactionManager transactionManager =
237-
transactionFactory.getTransactionManager()) {
235+
try {
238236
// Arrange
239237
Map<String, String> options = getCreationOptions();
240238
TableMetadata.Builder currentTableMetadataBuilder =
@@ -276,7 +274,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
276274
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
277275
insert.timestampTZValue("c12", Instant.now());
278276
}
279-
transactionalInsert(transactionManager, insert.build());
277+
transactionalInsert(insert.build());
280278

281279
// Act Assert
282280
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -311,8 +309,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
311309
public void
312310
alterColumnType_Db2_AlterColumnTypeFromEachExistingDataTypeToText_ShouldAlterColumnTypesCorrectlyIfSupported()
313311
throws ExecutionException, TransactionException {
314-
try (DistributedTransactionManager transactionManager =
315-
transactionFactory.getTransactionManager()) {
312+
try {
316313
// Arrange
317314
Map<String, String> options = getCreationOptions();
318315
TableMetadata.Builder currentTableMetadataBuilder =
@@ -354,7 +351,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
354351
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
355352
insert.timestampTZValue("c12", Instant.now());
356353
}
357-
transactionalInsert(transactionManager, insert.build());
354+
transactionalInsert(insert.build());
358355

359356
// Act Assert
360357
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -418,7 +415,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
418415
@EnabledIf("isOracle")
419416
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
420417
throws ExecutionException, TransactionException {
421-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
418+
try {
422419
// Arrange
423420
Map<String, String> options = getCreationOptions();
424421
TableMetadata.Builder currentTableMetadataBuilder =
@@ -442,7 +439,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
442439
.clusteringKey(Key.ofInt("c2", 2))
443440
.intValue("c3", expectedColumn3Value)
444441
.floatValue("c4", expectedColumn4Value);
445-
transactionalInsert(manager, insert.build());
442+
transactionalInsert(insert.build());
446443

447444
// Act
448445
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -471,7 +468,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
471468
.table(TABLE4)
472469
.partitionKey(Key.ofInt("c1", 1))
473470
.build();
474-
List<Result> results = transactionalScan(manager, scan);
471+
List<Result> results = transactionalScan(scan);
475472
assertThat(results).hasSize(1);
476473
Result result = results.get(0);
477474
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
@@ -217,8 +217,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
217217
public void
218218
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
219219
throws ExecutionException, TransactionException {
220-
try (DistributedTransactionManager transactionManager =
221-
transactionFactory.getTransactionManager()) {
220+
try {
222221
// Arrange
223222
Map<String, String> options = getCreationOptions();
224223
TableMetadata.Builder currentTableMetadataBuilder =
@@ -260,7 +259,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
260259
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
261260
insert.timestampTZValue("c12", Instant.now());
262261
}
263-
transactionalInsert(transactionManager, insert.build());
262+
transactionalInsert(insert.build());
264263

265264
// Act Assert
266265
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -402,7 +401,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
402401
@EnabledIf("isOracle")
403402
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
404403
throws ExecutionException, TransactionException {
405-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
404+
try {
406405
// Arrange
407406
Map<String, String> options = getCreationOptions();
408407
TableMetadata.Builder currentTableMetadataBuilder =
@@ -426,7 +425,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
426425
.clusteringKey(Key.ofInt("c2", 2))
427426
.intValue("c3", expectedColumn3Value)
428427
.floatValue("c4", expectedColumn4Value);
429-
transactionalInsert(manager, insert.build());
428+
transactionalInsert(insert.build());
430429

431430
// Act
432431
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -455,7 +454,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
455454
.table(TABLE4)
456455
.partitionKey(Key.ofInt("c1", 1))
457456
.build();
458-
List<Result> results = transactionalScan(manager, scan);
457+
List<Result> results = transactionalScan(scan);
459458
assertThat(results).hasSize(1);
460459
Result result = results.get(0);
461460
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
@@ -285,8 +285,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
285285
public void
286286
alterColumnType_Oracle_AlterColumnTypeFromEachExistingDataTypeToText_ShouldThrowUnsupportedOperationException()
287287
throws ExecutionException, TransactionException {
288-
try (DistributedTransactionManager transactionManager =
289-
transactionFactory.getTransactionManager()) {
288+
try {
290289
// Arrange
291290
Map<String, String> options = getCreationOptions();
292291
TableMetadata.Builder currentTableMetadataBuilder =
@@ -328,7 +327,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
328327
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
329328
insert.timestampTZValue("c12", Instant.now());
330329
}
331-
transactionalInsert(transactionManager, insert.build());
330+
transactionalInsert(insert.build());
332331

333332
// Act Assert
334333
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -406,7 +405,7 @@ public void renameColumn_Db2_ForPrimaryOrIndexKeyColumn_ShouldThrowUnsupportedOp
406405
insert.timestampValue("c11", LocalDateTime.now(ZoneOffset.UTC));
407406
insert.timestampTZValue("c12", Instant.now());
408407
}
409-
transactionalInsert(transactionManager, insert.build());
408+
transactionalInsert(insert.build());
410409

411410
// Act Assert
412411
assertThatCode(() -> admin.alterColumnType(namespace1, TABLE4, "c3", DataType.TEXT))
@@ -470,7 +469,7 @@ public void alterColumnType_WideningConversion_ShouldAlterColumnTypesCorrectly()
470469
@EnabledIf("isOracle")
471470
public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorrectly()
472471
throws ExecutionException, TransactionException {
473-
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
472+
try {
474473
// Arrange
475474
Map<String, String> options = getCreationOptions();
476475
TableMetadata.Builder currentTableMetadataBuilder =
@@ -494,7 +493,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
494493
.clusteringKey(Key.ofInt("c2", 2))
495494
.intValue("c3", expectedColumn3Value)
496495
.floatValue("c4", expectedColumn4Value);
497-
transactionalInsert(manager, insert.build());
496+
transactionalInsert(insert.build());
498497

499498
// Act
500499
admin.alterColumnType(namespace1, TABLE4, "c3", DataType.BIGINT);
@@ -523,7 +522,7 @@ public void alterColumnType_Oracle_WideningConversion_ShouldAlterColumnTypesCorr
523522
.table(TABLE4)
524523
.partitionKey(Key.ofInt("c1", 1))
525524
.build();
526-
List<Result> results = transactionalScan(manager, scan);
525+
List<Result> results = transactionalScan(scan);
527526
assertThat(results).hasSize(1);
528527
Result result = results.get(0);
529528
assertThat(result.getBigInt("c3")).isEqualTo(expectedColumn3Value);
@@ -563,19 +562,27 @@ protected boolean isIndexOnBlobColumnSupported() {
563562
}
564563

565564
@Override
566-
protected void transactionalInsert(DistributedTransactionManager manager, Insert insert)
567-
throws TransactionException {
568-
DistributedTransaction transaction = manager.start();
569-
transaction.insert(insert);
570-
transaction.commit();
565+
protected void transactionalInsert(Insert insert) throws TransactionException {
566+
// Wait for cache expiry
567+
Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
568+
569+
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
570+
DistributedTransaction transaction = manager.start();
571+
transaction.insert(insert);
572+
transaction.commit();
573+
}
571574
}
572575

573576
@Override
574-
protected List<Result> transactionalScan(DistributedTransactionManager manager, Scan scan)
575-
throws TransactionException {
576-
DistributedTransaction transaction = manager.start();
577-
List<Result> results = transaction.scan(scan);
578-
transaction.commit();
579-
return results;
577+
protected List<Result> transactionalScan(Scan scan) throws TransactionException {
578+
// Wait for cache expiry
579+
Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS);
580+
581+
try (DistributedTransactionManager manager = transactionFactory.getTransactionManager()) {
582+
DistributedTransaction transaction = manager.start();
583+
List<Result> results = transaction.scan(scan);
584+
transaction.commit();
585+
return results;
586+
}
580587
}
581588
}

0 commit comments

Comments
 (0)