List of usage examples for org.apache.cassandra.db ColumnFamilyStore reload
public void reload()
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); }/*from www. j a v a 2s. com*/ 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()); }
From source file:edu.dprg.morphous.MoveSSTableTest.java
License:Apache License
@Test public void testMigrateColumnFamilyDefinitionToUseNewPartitonKey() throws Exception { String ksName = "testkeyspace_migrate_cf"; String[] cfName = { "cf0", "cf1" }; edu.uiuc.dprg.morphous.Util.executeCql3Statement("CREATE KEYSPACE " + ksName + " WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};"); edu.uiuc.dprg.morphous.Util.executeCql3Statement( "CREATE TABLE " + ksName + "." + cfName[0] + " ( col0 varchar PRIMARY KEY, col1 varchar);"); edu.uiuc.dprg.morphous.Util.executeCql3Statement( "CREATE TABLE " + ksName + "." + cfName[1] + " ( col0 varchar, col1 varchar PRIMARY KEY);"); Keyspace ks = Keyspace.open(ksName); ColumnFamilyStore cfs0 = ks.getColumnFamilyStore(cfName[0]); ColumnFamilyStore cfs1 = ks.getColumnFamilyStore(cfName[1]); for (int i = 0; i < 2; i++) { for (int j = 0; j < 100; j++) { edu.uiuc.dprg.morphous.Util.executeCql3Statement(String.format("INSERT INTO " + ksName + "." + cfName[i] + " (col0, col1) VALUES ('cf%d-col0-%03d', 'cf%d-col1-%03d');", i, j, i, j)); }/*from www. j a v a 2s.c o m*/ } CqlResult selectCf0 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[0] + ";"); assertEquals(100, selectCf0.rows.size()); CqlResult selectCf1 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[1] + ";"); assertEquals(100, selectCf1.rows.size()); // Flush Memtables out to SSTables cfs0.forceBlockingFlush(); cfs1.forceBlockingFlush(); for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[0] + String.format(" WHERE col0 = 'cf0-col0-%03d';", i); logger.info("Executing query {}", query); selectCf0 = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, selectCf0.rows.size()); } AtomicSwitchMorphousTaskHandler handler = new AtomicSwitchMorphousTaskHandler(); handler.swapSSTablesBetweenCfs(cfs0, cfs1); Morphous.instance().migrateColumnFamilyDefinitionToUseNewPartitonKey(ksName, cfName[1], "col0"); Morphous.instance().migrateColumnFamilyDefinitionToUseNewPartitonKey(ksName, cfName[0], "col1"); cfs0.reload(); cfs1.reload(); selectCf0 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[0] + ";"); assertEquals(100, selectCf0.rows.size()); selectCf1 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[1] + ";"); assertEquals(100, selectCf1.rows.size()); List<CqlRow> rows = edu.uiuc.dprg.morphous.Util.executeCql3Statement( "SELECT * FROM system.schema_columns where keyspace_name = '" + ksName + "';").rows; for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[0] + String.format(" WHERE col1 = 'cf1-col1-%03d';", i); logger.info("Executing query {}", query); selectCf1 = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, selectCf1.rows.size()); } for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[1] + String.format(" WHERE col0 = 'cf0-col0-%03d';", i); logger.info("Executing query {}", query); selectCf1 = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, selectCf1.rows.size()); } }
From source file:edu.dprg.morphous.MoveSSTableTest.java
License:Apache License
@Test public void testMigrateColumnFamilyDefinitionToUseNewPartitonKey2() throws Exception { String ksName = "testkeyspace_migrate_cf_2"; String[] cfName = { "cf0", "cf1" }; edu.uiuc.dprg.morphous.Util.executeCql3Statement("CREATE KEYSPACE " + ksName + " WITH replication = {'class':'SimpleStrategy', 'replication_factor':1};"); edu.uiuc.dprg.morphous.Util.executeCql3Statement( "CREATE TABLE " + ksName + "." + cfName[0] + " ( col0 int PRIMARY KEY, col1 int, col2 varchar);"); edu.uiuc.dprg.morphous.Util.executeCql3Statement( "CREATE TABLE " + ksName + "." + cfName[1] + " ( col0 int, col1 int PRIMARY KEY, col2 varchar);"); Keyspace ks = Keyspace.open(ksName); ColumnFamilyStore cfs0 = ks.getColumnFamilyStore(cfName[0]); ColumnFamilyStore cfs1 = ks.getColumnFamilyStore(cfName[1]); for (int i = 0; i < 2; i++) { for (int j = 0; j < 100; j++) { edu.uiuc.dprg.morphous.Util.executeCql3Statement(String.format( "INSERT INTO " + ksName + "." + cfName[i] + " (col0, col1, col2) VALUES (%d, %d, 'cf%d-col2-%03d');", j + i * 1000, 100 + j + i * 1000, i, j)); }//from w ww . j ava 2 s. c o m } CqlResult selectCf0 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[0] + ";"); assertEquals(100, selectCf0.rows.size()); CqlResult selectCf1 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[1] + ";"); assertEquals(100, selectCf1.rows.size()); // Flush Memtables out to SSTables cfs0.forceBlockingFlush(); cfs1.forceBlockingFlush(); CqlResult originalResult; for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[0] + String.format(" WHERE col0 = %d;", i); logger.info("Executing query {}", query); originalResult = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, originalResult.rows.size()); } originalResult = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[0] + ";"); AtomicSwitchMorphousTaskHandler handler = new AtomicSwitchMorphousTaskHandler(); handler.swapSSTablesBetweenCfs(cfs0, cfs1); Morphous.instance().migrateColumnFamilyDefinitionToUseNewPartitonKey(ksName, cfName[1], "col0"); Morphous.instance().migrateColumnFamilyDefinitionToUseNewPartitonKey(ksName, cfName[0], "col1"); cfs0.reload(); cfs1.reload(); selectCf0 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[0] + ";"); assertEquals(100, selectCf0.rows.size()); selectCf1 = edu.uiuc.dprg.morphous.Util .executeCql3Statement("SELECT * FROM " + ksName + "." + cfName[1] + ";"); assertEquals(100, selectCf1.rows.size()); List<CqlRow> rows = edu.uiuc.dprg.morphous.Util.executeCql3Statement( "SELECT * FROM system.schema_columns where keyspace_name = '" + ksName + "';").rows; for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[0] + String.format(" WHERE col1 = %d;", i + 100 + 1000); logger.info("Executing query {}", query); selectCf1 = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, selectCf1.rows.size()); } for (int i = 0; i < 100; i++) { String query = "SELECT * FROM " + ksName + "." + cfName[1] + String.format(" WHERE col0 = %d;", i); logger.info("Executing query {}", query); selectCf1 = edu.uiuc.dprg.morphous.Util.executeCql3Statement(query); assertEquals(1, selectCf1.rows.size()); } }