Example usage for org.apache.cassandra.db ColumnFamilyStore truncateBlocking

List of usage examples for org.apache.cassandra.db ColumnFamilyStore truncateBlocking

Introduction

In this page you can find the example usage for org.apache.cassandra.db ColumnFamilyStore truncateBlocking.

Prototype

public void truncateBlocking() 

Source Link

Document

Truncate deletes the entire column family's data with no expensive tombstone creation

Usage

From source file:edu.dprg.morphous.MoveSSTableTest.java

License:Apache License

@Test
public void testMoveSSTablesBetweenDifferentColumnFamilies() throws Exception {
    final String ks1 = "testkeyspace_move_sstables";
    final String cfName1 = "table1_copy";
    final String cfName2 = "table1";

    List<KSMetaData> schema = new ArrayList<KSMetaData>();

    // A whole bucket of shorthand
    Class<? extends AbstractReplicationStrategy> simple = SimpleStrategy.class;
    Map<String, String> opts_rf1 = KSMetaData.optsWithRF(1);

    schema.add(KSMetaData.testMetadata(ks1, simple, opts_rf1,
            new CFMetaData(ks1, cfName1, ColumnFamilyType.Standard, BytesType.instance, null),
            new CFMetaData(ks1, cfName2, ColumnFamilyType.Standard, BytesType.instance, null)));

    for (KSMetaData ksm : schema) {
        MigrationManager.announceNewKeyspace(ksm);
    }//  ww w  .  j av a  2s . co  m

    Keyspace keyspace = Keyspace.open(ks1);
    ColumnFamilyStore cfs1 = keyspace.getColumnFamilyStore(cfName1);
    cfs1.truncateBlocking();
    ColumnFamilyStore cfs2 = keyspace.getColumnFamilyStore(cfName2);

    cfs1.truncateBlocking();
    cfs2.truncateBlocking();

    for (int i = 1; i <= 500; i++) {
        ByteBuffer key = ByteBufferUtil.bytes("key-cf1-" + i);
        RowMutation rm = new RowMutation(ks1, key);
        rm.add(cfName1, ByteBufferUtil.bytes("Column1"), ByteBufferUtil.bytes("cf1-value" + i), 0);
        rm.apply();
    }
    cfs1.forceBlockingFlush();

    for (int i = 1; i <= 100; i++) {
        ByteBuffer key = ByteBufferUtil.bytes("key-cf2-" + i);
        RowMutation rm = new RowMutation(ks1, key);
        rm.add(cfName2, ByteBufferUtil.bytes("Column1"), ByteBufferUtil.bytes("cf2-value" + i), 0);
        rm.apply();
    }
    cfs2.forceBlockingFlush();

    SlicePredicate sp = new SlicePredicate();
    sp.setColumn_names(Arrays.asList(ByteBufferUtil.bytes("Column1")));

    List<Row> rows1 = cfs1.getRangeSlice(Util.range("", ""), null,
            ThriftValidation.asIFilter(sp, cfs1.metadata, null), 1000, System.currentTimeMillis(), true, false);
    assertEquals(500, rows1.size());

    List<Row> rows2 = cfs2.getRangeSlice(Util.range("", ""), null,
            ThriftValidation.asIFilter(sp, cfs2.metadata, null), 1000, System.currentTimeMillis(), true, false);
    assertEquals(100, rows2.size());

    ColumnFamily cf = cfs1.getColumnFamily(
            QueryFilter.getIdentityFilter(Util.dk("key-cf1-1"), cfName1, System.currentTimeMillis()));
    assertNotNull(cf);

    new AtomicSwitchMorphousTaskHandler().swapSSTablesBetweenCfs(cfs1, cfs2);

    cfs1.reload();
    rows1 = cfs1.getRangeSlice(Util.range("", ""), null, ThriftValidation.asIFilter(sp, cfs1.metadata, null),
            1000, System.currentTimeMillis(), true, false);
    assertEquals(100, rows1.size());

    cfs2.reload();
    rows2 = cfs2.getRangeSlice(Util.range("", ""), null, ThriftValidation.asIFilter(sp, cfs2.metadata, null),
            1000, System.currentTimeMillis(), true, false);
    assertEquals(500, rows2.size());
}