@Override protected TransactionManager createManager() { MultiTableSweepQueueWriter sweepQueue = getSweepQueueWriterUninitialized(); SerializableTransactionManager txManager = SerializableTransactionManager.createForTest( MetricsManagers.createForTests(), keyValueService, timestampService, timestampManagementService, lockClient, lockService, transactionService, Suppliers.ofInstance(AtlasDbConstraintCheckingMode.FULL_CONSTRAINT_CHECKING_THROWS_EXCEPTIONS), conflictDetectionManager, SweepStrategyManagers.createDefault(keyValueService), NoOpCleaner.INSTANCE, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, sweepQueue); sweepQueue.initialize(txManager); return txManager; }
@Test public void shouldNotMakeRemoteCallsInAReadonlyTransactionIfNoWorkIsDone() { TimestampService mockTimestampService = mock(TimestampService.class); TimestampManagementService mockTimestampManagementService = mock(TimestampManagementService.class); LockService mockLockService = mock(LockService.class); TransactionManager txnManagerWithMocks = SerializableTransactionManager.createForTest( metricsManager, getKeyValueService(), mockTimestampService, mockTimestampManagementService, LockClient.of("foo"), mockLockService, transactionService, () -> AtlasDbConstraintCheckingMode.FULL_CONSTRAINT_CHECKING_THROWS_EXCEPTIONS, conflictDetectionManager, sweepStrategyManager, NoOpCleaner.INSTANCE, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, MultiTableSweepQueueWriter.NO_OP); // fetch an immutable timestamp once so it's cached when(mockTimestampService.getFreshTimestamp()).thenReturn(1L); when(mockLockService.getMinLockedInVersionId("foo")).thenReturn(1L); txnManagerWithMocks.getImmutableTimestamp(); verify(mockTimestampService).getFreshTimestamp(); verify(mockLockService).getMinLockedInVersionId("foo"); // now execute a read transaction txnManagerWithMocks.runTaskReadOnly(txn -> null); verifyNoMoreInteractions(mockLockService); verifyNoMoreInteractions(mockTimestampService); verifyNoMoreInteractions(mockTimestampManagementService); }
when(mockServices.getKeyValueService()).thenReturn(kvs); TargetedSweeper sweeper = TargetedSweeper.createUninitializedForTest(() -> 1); SerializableTransactionManager txManager = SerializableTransactionManager.createForTest( MetricsManagers.createForTests(), kvs,
ImmutableList.of(follower), transactionService).buildCleaner(); TransactionManager ret = SerializableTransactionManager.createForTest( MetricsManagers.createForTests(), keyValueService,
public static TransactionManager setupTxManager(KeyValueService kvs, TimestampService tsService, TimestampManagementService tsmService, SweepStrategyManager ssm, TransactionService txService) { MetricsManager metricsManager = MetricsManagers.createForTests(); LockClient lockClient = LockClient.of("sweep client"); LockService lockService = LockServiceImpl.create( LockServerOptions.builder().isStandaloneServer(false).build()); Supplier<AtlasDbConstraintCheckingMode> constraints = () -> AtlasDbConstraintCheckingMode.NO_CONSTRAINT_CHECKING; ConflictDetectionManager cdm = ConflictDetectionManagers.createWithoutWarmingCache(kvs); Cleaner cleaner = new NoOpCleaner(); MultiTableSweepQueueWriter writer = TargetedSweeper.createUninitializedForTest(() -> 1); TransactionManager txManager = SerializableTransactionManager.createForTest( metricsManager, kvs, tsService, tsmService, lockClient, lockService, txService, constraints, cdm, ssm, cleaner, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, writer); setupTables(kvs); writer.initialize(txManager); return txManager; }
@Before public void setup() { kvs = new InMemoryKeyValueService(true); InMemoryTimestampService tsService = new InMemoryTimestampService(); LockClient lockClient = LockClient.of("sweep client"); lockService = LockServiceImpl.create(LockServerOptions.builder().isStandaloneServer(false).build()); txService = TransactionServices.createForTesting(kvs, tsService, false); Supplier<AtlasDbConstraintCheckingMode> constraints = Suppliers.ofInstance( AtlasDbConstraintCheckingMode.NO_CONSTRAINT_CHECKING); ConflictDetectionManager cdm = ConflictDetectionManagers.createWithoutWarmingCache(kvs); SweepStrategyManager ssm = SweepStrategyManagers.createDefault(kvs); Cleaner cleaner = new NoOpCleaner(); metricsManager = MetricsManagers.createForTests(); TransactionManager transactionManager = SerializableTransactionManager.createForTest( metricsManager, kvs, tsService, tsService, lockClient, lockService, txService, constraints, cdm, ssm, cleaner, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, MultiTableSweepQueueWriter.NO_OP); txManager = transactionManager; }
@Override protected TransactionManager createManager() { MultiTableSweepQueueWriter sweepQueue = getSweepQueueWriterUninitialized(); SerializableTransactionManager txManager = SerializableTransactionManager.createForTest( MetricsManagers.createForTests(), keyValueService, timestampService, timestampManagementService, lockClient, lockService, transactionService, Suppliers.ofInstance(AtlasDbConstraintCheckingMode.FULL_CONSTRAINT_CHECKING_THROWS_EXCEPTIONS), conflictDetectionManager, SweepStrategyManagers.createDefault(keyValueService), NoOpCleaner.INSTANCE, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, sweepQueue); sweepQueue.initialize(txManager); return txManager; }
ImmutableList.of(follower), transactionService).buildCleaner(); TransactionManager ret = SerializableTransactionManager.createForTest( MetricsManagers.createForTests(), keyValueService,
public static TransactionManager setupTxManager(KeyValueService kvs, TimestampService tsService, TimestampManagementService tsmService, SweepStrategyManager ssm, TransactionService txService) { MetricsManager metricsManager = MetricsManagers.createForTests(); LockClient lockClient = LockClient.of("sweep client"); LockService lockService = LockServiceImpl.create( LockServerOptions.builder().isStandaloneServer(false).build()); Supplier<AtlasDbConstraintCheckingMode> constraints = () -> AtlasDbConstraintCheckingMode.NO_CONSTRAINT_CHECKING; ConflictDetectionManager cdm = ConflictDetectionManagers.createWithoutWarmingCache(kvs); Cleaner cleaner = new NoOpCleaner(); MultiTableSweepQueueWriter writer = TargetedSweeper.createUninitializedForTest(() -> 1); TransactionManager txManager = SerializableTransactionManager.createForTest( metricsManager, kvs, tsService, tsmService, lockClient, lockService, txService, constraints, cdm, ssm, cleaner, AbstractTransactionTest.GET_RANGES_THREAD_POOL_SIZE, AbstractTransactionTest.DEFAULT_GET_RANGES_CONCURRENCY, writer); setupTables(kvs); writer.initialize(txManager); return txManager; }