/** * Check if the column family exists. If it dosn't create it */ private void testAndCreateColumnFamilyDef( MultiTenantColumnFamilyDefinition columnFamily ) throws ConnectionException { final KeyspaceDefinition keyspaceDefinition = keyspace.describeKeyspace(); final ColumnFamilyDefinition existing = keyspaceDefinition.getColumnFamily( columnFamily.getColumnFamily().getName() ); if ( existing != null ) { logger.info("Not creating columnfamily {}, it already exists.", columnFamily.getColumnFamily().getName()); return; } keyspace.createColumnFamily( columnFamily.getColumnFamily(), columnFamily.getOptions() ); // the CF def creation uses Asytanax, so manually check the schema agreement astyanaxWaitForSchemaAgreement(); logger.info( "Created column family {}", columnFamily.getColumnFamily().getName() ); }
private ColumnFamily getLocksColumnFamily() { if ( columnFamily == null ) { columnFamily = ColumnFamily.newColumnFamily( CF_NAME, StringSerializer.get(), StringSerializer.get() ); if ( logger.isDebugEnabled() ) { try { final KeyspaceDefinition kd = keyspace.describeKeyspace(); final ColumnFamilyDefinition cfd = kd.getColumnFamily( columnFamily.getName() ); Map<String, Object> options = new HashMap<>( 1 ); options.put( "gc_grace_seconds", cfd.getGcGraceSeconds() ); options.put( "caching", cfd.getCaching() ); options.put( "compaction_strategy", cfd.getCompactionStrategy() ); options.put( "compaction_strategy_options", cfd.getCompactionStrategyOptions() ); logger.debug( "Locks column family {} exists with options: {}", cfd.getName(), options); } catch ( ConnectionException ce ) { logger.warn("Error connecting to Cassandra for debug column family info", ce); } } } return columnFamily; }
public static <K, C> void createColumnFamiliy(final Keyspace keyspace, final ColumnFamily<K, C> columnFamily, final Map<String, Object> options){ try{ if(keyspace.describeKeyspace().getColumnFamily(columnFamily.getName()) == null){ keyspace.createColumnFamily( columnFamily, new HashMap<String, Object>() ); } }catch(Exception e){ logger.error( "Error on creating column family, ignoring" , e); } } }
private ColumnFamily createLocksColumnFamily() throws ConnectionException { ColumnFamily<String, String> cflocks = ColumnFamily.newColumnFamily( CF_NAME, StringSerializer.get(), StringSerializer.get() ); final KeyspaceDefinition kd = keyspace.describeKeyspace(); final ColumnFamilyDefinition cfdef = kd.getColumnFamily( cflocks.getName() ); if ( cfdef == null ) { // create only if does not already exist MultiTenantColumnFamilyDefinition mtcfd = new MultiTenantColumnFamilyDefinition( cflocks, BytesType.class.getSimpleName(), UTF8Type.class.getSimpleName(), BytesType.class.getSimpleName(), MultiTenantColumnFamilyDefinition.CacheOption.ALL ); Map<String, Object> cfOptions = mtcfd.getOptions(); // Additionally set the gc grace low cfOptions.put( "gc_grace_seconds", 60 ); keyspace.createColumnFamily( mtcfd.getColumnFamily(), cfOptions ); logger.info( "Created column family {}", mtcfd.getOptions() ); cflocks = mtcfd.getColumnFamily(); } else { return getLocksColumnFamily(); } return cflocks; }
public String toString() { StringBuilder sb = new StringBuilder(); sb.append("CF=").append(columnFamily.getName()); sb.append(" RowKey: ").append(rowKey); sb.append(" RetryPolicy: ").append(retryPolicy); sb.append(" ConsistencyLevel: ").append(clLevel); return sb.toString(); } }
@Override public <K, C> OperationResult<Void> truncateColumnFamily(ColumnFamily<K, C> columnFamily) throws OperationException, ConnectionException { ResultSet result = session.execute("TRUNCATE " + keyspaceName + "." + columnFamily.getName()); return new CqlOperationResultImpl<Void>(result, null); }
@Override public <K, C> OperationResult<Void> truncateColumnFamily(final ColumnFamily<K, C> columnFamily) throws OperationException, ConnectionException { return truncateColumnFamily(columnFamily.getName()); }
@Override public <K, C> OperationResult<Void> truncateColumnFamily(final ColumnFamily<K, C> columnFamily) throws OperationException, ConnectionException { return truncateColumnFamily(columnFamily.getName()); }
@Override public <K, C> OperationResult<SchemaChangeResult> dropColumnFamily(final ColumnFamily<K, C> columnFamily) throws ConnectionException { return dropColumnFamily(columnFamily.getName()); }
DeltaPlacement(String name, CassandraKeyspace keyspace, ColumnFamily<ByteBuffer, UUID> deltaColumnFamily, ColumnFamily<ByteBuffer, DeltaKey> blockedDeltaColumnFamily, ColumnFamily<ByteBuffer, UUID> deltaHistoryColumnFamily) { _name = checkNotNull(name, "name"); _keyspace = checkNotNull(keyspace, "keyspace"); _deltaColumnFamily = checkNotNull(deltaColumnFamily, "deltaColumnFamily"); _blockedDeltaColumnFamily = checkNotNull(blockedDeltaColumnFamily, "blockedDeltaColumnFamily"); _deltaHistoryColumnFamily = checkNotNull(deltaHistoryColumnFamily, "deltaHistoryColumnFamily"); _deltaTableDDL = createTableDDL(_deltaColumnFamily.getName()); _blockedDeltaTableDDL = createBlockedDeltaTableDDL(blockedDeltaColumnFamily.getName()); _deltaHistoryTableDDL = createTableDDL(_deltaHistoryColumnFamily.getName()); }
@Override public <K, C> OperationResult<SchemaChangeResult> dropColumnFamily(ColumnFamily<K, C> columnFamily) throws ConnectionException { return dropColumnFamily(columnFamily.getName()); }
@Override public <K> void deleteRow(Iterable<? extends ColumnFamily<K, ?>> columnFamilies, K rowKey) { for (ColumnFamily<K, ?> cf : columnFamilies) { writeMetada.get().add(new WriteMetadata(dualKeyspaceMetadata, cf.getName(), rowKey.toString())); } primary.deleteRow(columnFamilies, rowKey); secondary.deleteRow(columnFamilies, rowKey); }
public ColumnFamilyDefinition describe(Keyspace keyspace) throws ConnectionException { KeyspaceDefinition ksDef = keyspace.describeKeyspace(); cfDef = ksDef.getColumnFamily(this.getName()); return cfDef; }
@Override public <K, C> ColumnListMutation<C> withRow(ColumnFamily<K, C> columnFamily, K rowKey) { writeMetada.get().add(new WriteMetadata(dualKeyspaceMetadata, columnFamily.getName(), rowKey.toString())); ColumnListMutation<C> clmPrimary = primary.withRow(columnFamily, rowKey); ColumnListMutation<C> clmSecondary = secondary.withRow(columnFamily, rowKey); return new DualWritesColumnListMutation<C>(clmPrimary, clmSecondary); }
@Override public List<org.apache.cassandra.thrift.KeySlice> internalExecute(Client client, ConnectionContext context) throws Exception { List<KeySlice> slice = client.get_range_slices( new ColumnParent().setColumn_family(columnFamily.getName()), predicate, range, ThriftConverter.ToThriftConsistencyLevel(query.consistencyLevel)); return slice; }
@Override public List<org.apache.cassandra.thrift.KeySlice> internalExecute(Client client, ConnectionContext context) throws Exception { List<KeySlice> slice = client.get_range_slices( new ColumnParent().setColumn_family(columnFamily.getName()), predicate, range, ThriftConverter.ToThriftConsistencyLevel(query.consistencyLevel)); return slice; }
public String getDeleteEntireRowQuery() { ColumnFamily<?,?> cf = cfContext.getColumnFamily(); CqlColumnFamilyDefinitionImpl cfDef = (CqlColumnFamilyDefinitionImpl)cf.getColumnFamilyDefinition(); return "DELETE FROM " + ksContext.getKeyspace() + "." + cf.getName() + " WHERE " + cfDef.getPartitionKeyColumnDefinition().getName() + " = ?;"; }