Search in sources :

Example 6 with Transactions2TableInteraction

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

the class RepairRangeFetcherTest method testRepairGivesCorrectTokenRanges.

@Test
public void testRepairGivesCorrectTokenRanges() {
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions2TableInteraction(range(1L, 10_000_000L), POLICY));
    Map<String, Map<InetSocketAddress, RangeSet<LightweightOppToken>>> rangesForRepair = repairRangeFetcher.getTransactionTableRangesForRepair(interactions);
    assertThat(rangesForRepair.get(TXN_2).get(BackupTestUtils.HOST_1).asRanges()).containsExactlyInAnyOrder(Range.atMost(BackupTestUtils.TOKEN_1), Range.openClosed(BackupTestUtils.TOKEN_2, OTHER_TOKEN), Range.greaterThan(BackupTestUtils.TOKEN_3));
}
Also used : Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) Map(java.util.Map) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 7 with Transactions2TableInteraction

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

the class RepairRangeFetcherTest method testRepairGivesTwoReplicasForRF2.

@Test
public void testRepairGivesTwoReplicasForRF2() {
    when(cqlMetadata.getReplicas(eq(BackupTestUtils.NAMESPACE), any())).thenReturn(ImmutableSet.of(BackupTestUtils.HOST_1, BackupTestUtils.HOST_2));
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions2TableInteraction(range(1L, 10_000_000L), POLICY));
    Map<String, Map<InetSocketAddress, RangeSet<LightweightOppToken>>> rangesForRepair = repairRangeFetcher.getTransactionTableRangesForRepair(interactions);
    assertThat(rangesForRepair.get(TXN_2).keySet()).containsExactlyInAnyOrder(BackupTestUtils.HOST_1, BackupTestUtils.HOST_2);
}
Also used : Transactions2TableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction) LightweightOppToken(com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken) Map(java.util.Map) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 8 with Transactions2TableInteraction

use of com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction 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)

Example 9 with Transactions2TableInteraction

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

the class CassandraRepairEteTest method testRepairOnlyTxn2.

@Test
public void testRepairOnlyTxn2() {
    List<String> tablesRepaired = new ArrayList<>();
    BiConsumer<String, RangesForRepair> repairer = (table, _unused) -> tablesRepaired.add(table);
    List<TransactionsTableInteraction> interactions = ImmutableList.of(new Transactions2TableInteraction(range(1L, 10_000_000L), POLICY));
    cassandraRepairHelper.repairTransactionsTables(ATLAS_SERVICE, interactions, repairer);
    assertThat(tablesRepaired).containsExactly(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) TransactionsTableInteraction(com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction) Test(org.junit.Test)

Example 10 with Transactions2TableInteraction

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

the class CassandraRepairEteTest method testRepairsEachTableOnceOnly.

@Test
public void testRepairsEachTableOnceOnly() {
    List<String> tablesRepaired = new ArrayList<>();
    AtomicInteger numRepairs = new AtomicInteger(0);
    BiConsumer<String, RangesForRepair> repairer = (table, _unused) -> {
        numRepairs.incrementAndGet();
        tablesRepaired.add(table);
    };
    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));
    cassandraRepairHelper.repairTransactionsTables(ATLAS_SERVICE, interactions, repairer);
    assertThat(tablesRepaired).containsExactlyInAnyOrder(TransactionConstants.TRANSACTION_TABLE.getTableName(), TransactionConstants.TRANSACTIONS2_TABLE.getTableName());
    assertThat(numRepairs).hasValue(2);
}
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) AtomicInteger(java.util.concurrent.atomic.AtomicInteger) 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

Transactions2TableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.Transactions2TableInteraction)10 TransactionsTableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.TransactionsTableInteraction)10 Test (org.junit.Test)10 LightweightOppToken (com.palantir.atlasdb.keyvalue.cassandra.LightweightOppToken)9 Map (java.util.Map)9 Transactions1TableInteraction (com.palantir.atlasdb.cassandra.backup.transaction.Transactions1TableInteraction)6 Range (com.google.common.collect.Range)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