Search in sources :

Example 1 with Transactions1TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction in project atlasdb by palantir.

the class CoordinationServiceUtilitiesTest method cleanMultipleRangesWithSchemasWithinBounds.

@Test
public void cleanMultipleRangesWithSchemasWithinBounds() {
    final long migrateToTxns2 = IMMUTABLE_TIMESTAMP + FASTFORWARD_TIMESTAMP / 2;
    Map<Range<Long>, Integer> rangesWithSchemas = ImmutableMap.of(Range.closedOpen(AtlasDbConstants.STARTING_TS, migrateToTxns2), 1, Range.atLeast(migrateToTxns2), 2);
    final long coordServiceBound = FASTFORWARD_TIMESTAMP + 1000L;
    Optional<InternalSchemaMetadataState> coordService = createCoordService(rangesWithSchemas, coordServiceBound);
    List<TransactionsTableInteraction> txnInteractions = TransactionsTableInteraction.getTransactionTableInteractions(CoordinationServiceUtilities.getCoordinationMapOnRestore(coordService, FASTFORWARD_TIMESTAMP, IMMUTABLE_TIMESTAMP), POLICY);
    assertThat(txnInteractions).hasSize(2);
    TransactionsTableInteraction txn1 = txnInteractions.stream().filter(txn -> txn instanceof Transactions1TableInteraction).findFirst().get();
    TransactionsTableInteraction txn2 = txnInteractions.stream().filter(txn -> txn instanceof Transactions2TableInteraction).findFirst().get();
    assertThat(txn1).extracting(TransactionsTableInteraction::getTimestampRange).isEqualTo(FullyBoundedTimestampRange.of(Range.closedOpen(IMMUTABLE_TIMESTAMP, migrateToTxns2)));
    assertThat(txn2).extracting(TransactionsTableInteraction::getTimestampRange).isEqualTo(FullyBoundedTimestampRange.of(Range.closed(migrateToTxns2, FASTFORWARD_TIMESTAMP)));
}
Also used : InternalSchemaMetadataState(com.palantir.atlasdb.internalschema.InternalSchemaMetadataState) Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) Range(com.google.common.collect.Range) FullyBoundedTimestampRange(com.palantir.timestamp.FullyBoundedTimestampRange) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 2 with Transactions1TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction in project atlasdb by palantir.

the class RepairRangeFetcherTest method testRepairBothTxnTables.

@Test
public void testRepairBothTxnTables() {
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions1TableInteraction(range(1L, 5L), POLICY), new Transactions2TableInteraction(range(6L, 10L), POLICY));
    Map<String, Map<InetSocketAddress, RangeSet<LightweightOppToken>>> rangesForRepair = repairRangeFetcher.getTransactionTableRangesForRepair(interactions);
    assertThat(rangesForRepair.keySet()).containsExactlyInAnyOrder(TXN_1, TXN_2);
}
Also used : Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) Map(java.util.Map) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 3 with Transactions1TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction in project atlasdb by palantir.

the class RepairRangeFetcherTest method testRepairOnlyTxn1.

@Test
public void testRepairOnlyTxn1() {
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions1TableInteraction(range(1L, 10_000_000L), POLICY));
    Map<String, Map<InetSocketAddress, RangeSet<LightweightOppToken>>> rangesForRepair = repairRangeFetcher.getTransactionTableRangesForRepair(interactions);
    assertThat(rangesForRepair.keySet()).containsExactly(TXN_1);
}
Also used : LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) Map(java.util.Map) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 4 with Transactions1TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction in project atlasdb by palantir.

the class RepairRangeFetcherTest method testRepairsEachTableOnceOnly.

@Test
public void testRepairsEachTableOnceOnly() {
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions1TableInteraction(range(1L, 5L), POLICY), new Transactions2TableInteraction(range(6L, 10L), POLICY), new Transactions1TableInteraction(range(11L, 15L), POLICY), new Transactions2TableInteraction(range(16L, 20L), POLICY));
    Map<String, Map<InetSocketAddress, RangeSet<LightweightOppToken>>> rangesForRepair = repairRangeFetcher.getTransactionTableRangesForRepair(interactions);
    assertThat(rangesForRepair.keySet()).containsExactlyInAnyOrder(TXN_1, TXN_2);
}
Also used : Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) Map(java.util.Map) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 5 with Transactions1TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction in project atlasdb by palantir.

the class CassandraRepairEteTest method testRepairBothTxnTables.

@Test
public void testRepairBothTxnTables() {
    List<String> tablesRepaired = new ArrayList<>();
    BiConsumer<String, RangesForRepair> repairer = (table, _unused) -> tablesRepaired.add(table);
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions1TableInteraction(range(1L, 5L), POLICY), new Transactions2TableInteraction(range(6L, 10L), POLICY));
    cassandraRepairHelper.repairTransactionsTables(ATLAS_SERVICE, interactions, repairer);
    assertThat(tablesRepaired).containsExactlyInAnyOrder(TransactionConstants.TRANSACTION_TABLE.getTableName(), TransactionConstants.TRANSACTIONS2_TABLE.getTableName());
}
Also used : RangesForRepair(com.palantir.atlasdb.cassandra.backup.RangesForRepair) RangeSet(com.google.common.collect.RangeSet) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ServiceId(com.palantir.atlasdb.backup.api.ServiceId) ThreeNodeCassandraCluster(com.palantir.atlasdb.containers.ThreeNodeCassandraCluster) Blacklist(com.palantir.atlasdb.keyvalue.cassandra.Blacklist) ImmutableRangeSet.toImmutableRangeSet(com.google.common.collect.ImmutableRangeSet.toImmutableRangeSet) CqlMetadata(com.palantir.atlasdb.cassandra.backup.CqlMetadata) FullyBoundedTimestampRange(com.palantir.timestamp.FullyBoundedTimestampRange) LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) CassandraClientPoolMetrics(com.palantir.atlasdb.keyvalue.cassandra.pool.CassandraClientPoolMetrics) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) CassandraKeyValueServiceImpl(com.palantir.atlasdb.keyvalue.cassandra.CassandraKeyValueServiceImpl) Map(java.util.Map) After(org.junit.After) TableReference(com.palantir.atlasdb.keyvalue.api.TableReference) CassandraKeyValueService(com.palantir.atlasdb.keyvalue.cassandra.CassandraKeyValueService) DefaultRetryPolicy(com.datastax.driver.core.policies.DefaultRetryPolicy) AtlasDbConstants(com.palantir.atlasdb.AtlasDbConstants) CassandraServersConfig(com.palantir.atlasdb.cassandra.CassandraServersConfigs.CassandraServersConfig) Refreshable(com.palantir.refreshable.Refreshable) CassandraServer(com.palantir.atlasdb.keyvalue.cassandra.pool.CassandraServer) ImmutableMap(com.google.common.collect.ImmutableMap) Cell(com.palantir.atlasdb.keyvalue.api.Cell) KeyedStream(com.palantir.common.streams.KeyedStream) Predicate(java.util.function.Predicate) Range(com.google.common.collect.Range) Set(java.util.Set) RangesForRepair(com.palantir.atlasdb.cassandra.backup.RangesForRepair) InetSocketAddress(java.net.InetSocketAddress) MetricsManagers(com.palantir.atlasdb.util.MetricsManagers) List(java.util.List) Cluster(com.datastax.driver.core.Cluster) Optional(java.util.Optional) Transactions3TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions3TableInteraction) CassandraKeyValueServiceConfig(com.palantir.atlasdb.cassandra.CassandraKeyValueServiceConfig) CassandraRepairHelper(com.palantir.atlasdb.cassandra.backup.CassandraRepairHelper) CassandraKeyValueServiceRuntimeConfig(com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) ClusterFactory(com.palantir.atlasdb.keyvalue.cassandra.async.client.creation.ClusterFactory) KvsRunner(com.palantir.atlasdb.backup.KvsRunner) CqlCluster(com.palantir.atlasdb.cassandra.backup.CqlCluster) HashMap(java.util.HashMap) Function(java.util.function.Function) PtBytes(com.palantir.atlasdb.encoding.PtBytes) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) ImmutableList(com.google.common.collect.ImmutableList) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) TransactionTables(com.palantir.atlasdb.transaction.impl.TransactionTables) BiConsumer(java.util.function.BiConsumer) Before(org.junit.Before) CassandraService(com.palantir.atlasdb.keyvalue.cassandra.pool.CassandraService) Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) CassandraClusterConfig(com.palantir.atlasdb.keyvalue.cassandra.async.client.creation.ClusterFactory.CassandraClusterConfig) Test(org.junit.Test) Namespace(com.palantir.atlasdb.timelock.api.Namespace) TransactionConstants(com.palantir.atlasdb.transaction.impl.TransactionConstants) RangeMap(com.google.common.collect.RangeMap) AtlasService(com.palantir.atlasdb.backup.api.AtlasService) Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) ArrayList(java.util.ArrayList) Transactions1TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Aggregations

Transactions1TableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction)7 TransactionsTableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction)7 Transactions2TableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction)6 LightweightOppToken (com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken)6 Range (com.google.common.collect.Range)4 Test (org.junit.Test)4 Cluster (com.datastax.driver.core.Cluster)3 DefaultRetryPolicy (com.datastax.driver.core.policies.DefaultRetryPolicy)3 ImmutableList (com.google.common.collect.ImmutableList)3 ImmutableMap (com.google.common.collect.ImmutableMap)3 ImmutableRangeSet.toImmutableRangeSet (com.google.common.collect.ImmutableRangeSet.toImmutableRangeSet)3 RangeMap (com.google.common.collect.RangeMap)3 RangeSet (com.google.common.collect.RangeSet)3 AtlasDbConstants (com.palantir.atlasdb.AtlasDbConstants)3 KvsRunner (com.palantir.atlasdb.backup.KvsRunner)3 AtlasService (com.palantir.atlasdb.backup.api.AtlasService)3 ServiceId (com.palantir.atlasdb.backup.api.ServiceId)3 CassandraKeyValueServiceConfig (com.palantir.atlasdb.cassandra.CassandraKeyValueServiceConfig)3 CassandraKeyValueServiceRuntimeConfig (com.palantir.atlasdb.cassandra.CassandraKeyValueServiceRuntimeConfig)3 CassandraServersConfig (com.palantir.atlasdb.cassandra.CassandraServersConfigs.CassandraServersConfig)3