Search in sources :

Example 31 with DeletionTime

use of org.apache.cassandra.db.DeletionTime in project cassandra by apache.

the class DataResolverTest method testResolveNewCollection.

@Test
public void testResolveNewCollection() {
    EndpointsForRange replicas = makeReplicas(2);
    ReadCommand cmd = Util.cmd(cfs2, dk).withNowInSeconds(nowInSec).build();
    TestableReadRepair readRepair = new TestableReadRepair(cmd);
    DataResolver resolver = new DataResolver(cmd, plan(replicas, ALL), readRepair, nanoTime());
    long[] ts = { 100, 200 };
    // map column
    Row.Builder builder = BTreeRow.unsortedBuilder();
    builder.newRow(Clustering.EMPTY);
    DeletionTime expectedCmplxDelete = new DeletionTime(ts[0] - 1, nowInSec);
    builder.addComplexDeletion(m, expectedCmplxDelete);
    Cell<?> expectedCell = mapCell(0, 0, ts[0]);
    builder.addCell(expectedCell);
    // empty map column
    InetAddressAndPort peer1 = replicas.get(0).endpoint();
    resolver.preprocess(response(cmd, peer1, iter(PartitionUpdate.singleRowUpdate(cfm2, dk, builder.build()))));
    InetAddressAndPort peer2 = replicas.get(1).endpoint();
    resolver.preprocess(response(cmd, peer2, iter(PartitionUpdate.emptyUpdate(cfm2, dk))));
    try (PartitionIterator data = resolver.resolve()) {
        try (RowIterator rows = Iterators.getOnlyElement(data)) {
            Row row = Iterators.getOnlyElement(rows);
            assertColumns(row, "m");
            ComplexColumnData cd = row.getComplexColumnData(m);
            assertEquals(Collections.singleton(expectedCell), Sets.newHashSet(cd));
        }
    }
    Assert.assertNull(readRepair.sent.get(peer1));
    Mutation mutation = readRepair.getForEndpoint(peer2);
    Iterator<Row> rowIter = mutation.getPartitionUpdate(cfm2).iterator();
    assertTrue(rowIter.hasNext());
    Row row = rowIter.next();
    assertFalse(rowIter.hasNext());
    ComplexColumnData cd = row.getComplexColumnData(m);
    assertEquals(Sets.newHashSet(expectedCell), Sets.newHashSet(cd));
    assertEquals(expectedCmplxDelete, cd.complexDeletion());
}
Also used : InetAddressAndPort(org.apache.cassandra.locator.InetAddressAndPort) TestableReadRepair(org.apache.cassandra.service.reads.repair.TestableReadRepair) DeletionTime(org.apache.cassandra.db.DeletionTime) ReadCommand(org.apache.cassandra.db.ReadCommand) ComplexColumnData(org.apache.cassandra.db.rows.ComplexColumnData) UnfilteredPartitionIterator(org.apache.cassandra.db.partitions.UnfilteredPartitionIterator) PartitionIterator(org.apache.cassandra.db.partitions.PartitionIterator) RowIterator(org.apache.cassandra.db.rows.RowIterator) EndpointsForRange(org.apache.cassandra.locator.EndpointsForRange) BTreeRow(org.apache.cassandra.db.rows.BTreeRow) Row(org.apache.cassandra.db.rows.Row) Mutation(org.apache.cassandra.db.Mutation) Test(org.junit.Test)

Example 32 with DeletionTime

use of org.apache.cassandra.db.DeletionTime in project cassandra by apache.

the class AbstractReadResponseTest method tombstone.

public RangeTombstone tombstone(Object start, boolean inclusiveStart, Object end, boolean inclusiveEnd, long markedForDeleteAt, int localDeletionTime) {
    ClusteringBound<?> startBound = rtBound(start, true, inclusiveStart);
    ClusteringBound<?> endBound = rtBound(end, false, inclusiveEnd);
    return new RangeTombstone(Slice.make(startBound, endBound), new DeletionTime(markedForDeleteAt, localDeletionTime));
}
Also used : DeletionTime(org.apache.cassandra.db.DeletionTime) RangeTombstone(org.apache.cassandra.db.RangeTombstone)

Aggregations

DeletionTime (org.apache.cassandra.db.DeletionTime)32 Test (org.junit.Test)21 UnfilteredPartitionIterator (org.apache.cassandra.db.partitions.UnfilteredPartitionIterator)10 RowUpdateBuilder (org.apache.cassandra.db.RowUpdateBuilder)8 PartitionIterator (org.apache.cassandra.db.partitions.PartitionIterator)8 EndpointsForRange (org.apache.cassandra.locator.EndpointsForRange)8 InetAddressAndPort (org.apache.cassandra.locator.InetAddressAndPort)8 Mutation (org.apache.cassandra.db.Mutation)7 RangeTombstone (org.apache.cassandra.db.RangeTombstone)7 Row (org.apache.cassandra.db.rows.Row)7 LivenessInfo (org.apache.cassandra.db.LivenessInfo)6 BTreeRow (org.apache.cassandra.db.rows.BTreeRow)6 ArrayList (java.util.ArrayList)5 ReadCommand (org.apache.cassandra.db.ReadCommand)4 ComplexColumnData (org.apache.cassandra.db.rows.ComplexColumnData)4 RowIterator (org.apache.cassandra.db.rows.RowIterator)4 TestableReadRepair (org.apache.cassandra.service.reads.repair.TestableReadRepair)4 ByteBuffer (java.nio.ByteBuffer)2 List (java.util.List)2 ColumnIdentifier (org.apache.cassandra.cql3.ColumnIdentifier)2