Author: gdusbabek Date: Fri May 21 18:39:31 2010 New Revision: 947122 URL: http://svn.apache.org/viewvc?rev=947122&view=rev Log: remove name field from cf and clean up. Patch by Stu Hood, reviewed by Gary Dusbabek. CASSANDRA-956
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java cassandra/trunk/src/java/org/apache/cassandra/db/Table.java cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java cassandra/trunk/test/unit/org/apache/cassandra/Util.java cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java Fri May 21 18:39:31 2010 @@ -30,96 +30,93 @@ import java.util.concurrent.atomic.Atomi import java.util.concurrent.atomic.AtomicLong; import org.apache.cassandra.config.CFMetaData; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.io.ICompactSerializer2; import org.apache.cassandra.db.filter.QueryPath; import org.apache.cassandra.db.marshal.AbstractType; import org.apache.cassandra.utils.FBUtilities; - +import org.apache.cassandra.utils.Pair; public class ColumnFamily implements IColumnContainer { /* The column serializer for this Column Family. Create based on config. */ - private static ColumnFamilySerializer serializer_ = new ColumnFamilySerializer(); - - private static Logger logger_ = LoggerFactory.getLogger( ColumnFamily.class ); - ColumnFamilyType type_; + private static ColumnFamilySerializer serializer = new ColumnFamilySerializer(); public static ColumnFamilySerializer serializer() { - return serializer_; + return serializer; + } + + public static ColumnFamily create(int cfid) + { + return create(DatabaseDescriptor.getCFMetaData(cfid)); } public static ColumnFamily create(String tableName, String cfName) { - ColumnFamilyType cfType = DatabaseDescriptor.getColumnFamilyType(tableName, cfName); - AbstractType comparator = DatabaseDescriptor.getComparator(tableName, cfName); - AbstractType subcolumnComparator = DatabaseDescriptor.getSubComparator(tableName, cfName); - Integer id = CFMetaData.getId(tableName, cfName); - if (id == null) - throw new RuntimeException("Cannot create ColumnFamily for non-existant table/cf pair."); - return new ColumnFamily(cfName, cfType, comparator, subcolumnComparator, id); - } - - private String name_; - private final int id_; - - private transient ICompactSerializer2<IColumn> columnSerializer_; - AtomicLong markedForDeleteAt = new AtomicLong(Long.MIN_VALUE); - AtomicInteger localDeletionTime = new AtomicInteger(Integer.MIN_VALUE); - private ConcurrentSkipListMap<byte[], IColumn> columns_; - - public ColumnFamily(String cfName, ColumnFamilyType cfType, AbstractType comparator, AbstractType subcolumnComparator, int id) - { - name_ = cfName; - type_ = cfType; - columnSerializer_ = cfType == ColumnFamilyType.Standard ? Column.serializer() : SuperColumn.serializer(subcolumnComparator); - columns_ = new ConcurrentSkipListMap<byte[], IColumn>(comparator); - id_ = id; + return create(DatabaseDescriptor.getCFMetaData(tableName, cfName)); } - - /** called during CL recovery when it is determined that a CF name was changed. */ - public void rename(String newName) + + public static ColumnFamily create(CFMetaData cfm) { - name_ = newName; + if (cfm == null) + throw new IllegalArgumentException("Unknown column family."); + return new ColumnFamily(cfm.cfType, cfm.comparator, cfm.subcolumnComparator, cfm.cfId); } + private final int cfid; + private final ColumnFamilyType type; + + private transient ICompactSerializer2<IColumn> columnSerializer; + final AtomicLong markedForDeleteAt = new AtomicLong(Long.MIN_VALUE); + final AtomicInteger localDeletionTime = new AtomicInteger(Integer.MIN_VALUE); + private ConcurrentSkipListMap<byte[], IColumn> columns; + + public ColumnFamily(ColumnFamilyType type, AbstractType comparator, AbstractType subcolumnComparator, int cfid) + { + this.type = type; + columnSerializer = type == ColumnFamilyType.Standard ? Column.serializer() : SuperColumn.serializer(subcolumnComparator); + columns = new ConcurrentSkipListMap<byte[], IColumn>(comparator); + this.cfid = cfid; + } + public ColumnFamily cloneMeShallow() { - ColumnFamily cf = new ColumnFamily(name_, type_, getComparator(), getSubComparator(), id_); - cf.markedForDeleteAt = markedForDeleteAt; - cf.localDeletionTime = localDeletionTime; + ColumnFamily cf = new ColumnFamily(type, getComparator(), getSubComparator(), cfid); + cf.markedForDeleteAt.set(markedForDeleteAt.get()); + cf.localDeletionTime.set(localDeletionTime.get()); return cf; } - private AbstractType getSubComparator() + public AbstractType getSubComparator() { - return (columnSerializer_ instanceof SuperColumnSerializer) ? ((SuperColumnSerializer)columnSerializer_).getComparator() : null; + return (columnSerializer instanceof SuperColumnSerializer) ? ((SuperColumnSerializer)columnSerializer).getComparator() : null; } public ColumnFamilyType getColumnFamilyType() { - return type_; + return type; } public ColumnFamily cloneMe() { ColumnFamily cf = cloneMeShallow(); - cf.columns_ = columns_.clone(); - return cf; + cf.columns = columns.clone(); + return cf; } - public String name() + public int id() { - return name_; + return cfid; } - - public int id() + + /** + * @return The CFMetaData for this row, or null if the column family was dropped. + */ + public CFMetaData metadata() { - return id_; + return DatabaseDescriptor.getCFMetaData(cfid); } /* @@ -135,31 +132,28 @@ public class ColumnFamily implements ICo delete(cf); } + /** + * FIXME: Gross. + */ public ICompactSerializer2<IColumn> getColumnSerializer() { - return columnSerializer_; + return columnSerializer; } int getColumnCount() { - int count = 0; - if(type_ == ColumnFamilyType.Standard) - { - count = columns_.size(); - } - else - { - for(IColumn column: columns_.values()) - { - count += column.getObjectCount(); - } - } - return count; + if (!isSuper()) + return columns.size(); + + int count = 0; + for (IColumn column: columns.values()) + count += column.getObjectCount(); + return count; } public boolean isSuper() { - return type_ == ColumnFamilyType.Super; + return type == ColumnFamilyType.Super; } public void addColumn(QueryPath path, byte[] value, long timestamp) @@ -203,12 +197,12 @@ public class ColumnFamily implements ICo c = new SuperColumn(superColumnName, getSubComparator()); c.addColumn(column); // checks subcolumn name } - addColumn(c); + addColumn(c); } public void clear() { - columns_.clear(); + columns.clear(); } /* @@ -218,7 +212,7 @@ public class ColumnFamily implements ICo public void addColumn(IColumn column) { byte[] name = column.name(); - IColumn oldColumn = columns_.putIfAbsent(name, column); + IColumn oldColumn = columns.putIfAbsent(name, column); if (oldColumn != null) { if (oldColumn instanceof SuperColumn) @@ -229,9 +223,9 @@ public class ColumnFamily implements ICo { while (((Column) oldColumn).comparePriority((Column)column) <= 0) { - if (columns_.replace(name, oldColumn, column)) + if (columns.replace(name, oldColumn, column)) break; - oldColumn = columns_.get(name); + oldColumn = columns.get(name); } } } @@ -239,27 +233,27 @@ public class ColumnFamily implements ICo public IColumn getColumn(byte[] name) { - return columns_.get(name); + return columns.get(name); } public SortedSet<byte[]> getColumnNames() { - return columns_.keySet(); + return columns.keySet(); } public Collection<IColumn> getSortedColumns() { - return columns_.values(); + return columns.values(); } public Map<byte[], IColumn> getColumnsMap() { - return columns_; + return columns; } public void remove(byte[] columnName) { - columns_.remove(columnName); + columns.remove(columnName); } @Deprecated // TODO this is a hack to set initial value outside constructor @@ -286,7 +280,7 @@ public class ColumnFamily implements ICo */ public ColumnFamily diff(ColumnFamily cfComposite) { - ColumnFamily cfDiff = new ColumnFamily(cfComposite.name(), cfComposite.type_, getComparator(), getSubComparator(), cfComposite.id()); + ColumnFamily cfDiff = new ColumnFamily(cfComposite.type, getComparator(), getSubComparator(), cfComposite.id()); if (cfComposite.getMarkedForDeleteAt() > getMarkedForDeleteAt()) { cfDiff.delete(cfComposite.getLocalDeletionTime(), cfComposite.getMarkedForDeleteAt()); @@ -299,7 +293,7 @@ public class ColumnFamily implements ICo Set<byte[]> cNames = columns.keySet(); for (byte[] cName : cNames) { - IColumn columnInternal = columns_.get(cName); + IColumn columnInternal = this.columns.get(cName); IColumn columnExternal = columns.get(cName); if (columnInternal == null) { @@ -316,60 +310,46 @@ public class ColumnFamily implements ICo } if (!cfDiff.getColumnsMap().isEmpty() || cfDiff.isMarkedForDelete()) - return cfDiff; - else - return null; + return cfDiff; + return null; } public AbstractType getComparator() { - return (AbstractType)columns_.comparator(); + return (AbstractType)columns.comparator(); } int size() { int size = 0; - for (IColumn column : columns_.values()) + for (IColumn column : columns.values()) { size += column.size(); } return size; } - private transient int hash_ = 0; public int hashCode() { - if (hash_ == 0) - { - int h = id_ * 7 + name().hashCode(); - hash_ = h; - } - return hash_; + throw new RuntimeException("Not implemented."); } public boolean equals(Object o) { - if ( !(o instanceof ColumnFamily) ) - return false; - ColumnFamily cf = (ColumnFamily)o; - return name().equals(cf.name()); + throw new RuntimeException("Not implemented."); } public String toString() { - StringBuilder sb = new StringBuilder(); - sb.append("ColumnFamily("); - sb.append(name_); + StringBuilder sb = new StringBuilder("ColumnFamily("); + CFMetaData cfm = metadata(); + sb.append(cfm == null ? "-deleted-" : cfm.cfName); - if (isMarkedForDelete()) { - sb.append(" -delete at " + getMarkedForDeleteAt() + "-"); - } - - sb.append(" ["); - sb.append(getComparator().getColumnsString(getSortedColumns())); - sb.append("])"); + if (isMarkedForDelete()) + sb.append(" -deleted at " + getMarkedForDeleteAt() + "-"); - return sb.toString(); + sb.append(" [").append(getComparator().getColumnsString(getSortedColumns())).append("])"); + return sb.toString(); } public static byte[] digest(ColumnFamily cf) @@ -391,10 +371,8 @@ public class ColumnFamily implements ICo public void updateDigest(MessageDigest digest) { - for (IColumn column : columns_.values()) - { + for (IColumn column : columns.values()) column.updateDigest(digest); - } } public long getMarkedForDeleteAt() Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilySerializer.java Fri May 21 18:39:31 2010 @@ -36,10 +36,8 @@ public class ColumnFamilySerializer impl * Serialized ColumnFamily format: * * [serialized for intra-node writes only, e.g. returning a query result] - * <cf name> - * <cf type [super or standard]> - * <cf comparator name> - * <cf subcolumn comparator name> + * <cf nullability boolean: false if the cf is null> + * <cf id> * * [in sstable only] * <column bloom filter> @@ -57,15 +55,12 @@ public class ColumnFamilySerializer impl { if (columnFamily == null) { - dos.writeUTF(""); // not a legal CF name + dos.writeBoolean(false); return; } - dos.writeUTF(columnFamily.name()); + dos.writeBoolean(true); dos.writeInt(columnFamily.id()); - dos.writeUTF(columnFamily.type_.name()); - dos.writeUTF(columnFamily.getComparatorName()); - dos.writeUTF(columnFamily.getSubComparatorName()); } catch (IOException e) { @@ -102,12 +97,12 @@ public class ColumnFamilySerializer impl public ColumnFamily deserialize(DataInput dis) throws IOException { - String cfName = dis.readUTF(); - if (cfName.isEmpty()) + if (!dis.readBoolean()) return null; - int id = dis.readInt(); - ColumnFamilyType cfType = ColumnFamilyType.create(dis.readUTF()); - ColumnFamily cf = deserializeFromSSTableNoColumns(cfName, cfType, readComparator(dis), readComparator(dis), id, dis); + + // create a ColumnFamily based on the cf id + ColumnFamily cf = ColumnFamily.create(dis.readInt()); + deserializeFromSSTableNoColumns(cf, dis); deserializeColumns(dis, cf); return cf; } @@ -144,12 +139,6 @@ public class ColumnFamilySerializer impl } } - private ColumnFamily deserializeFromSSTableNoColumns(String name, ColumnFamilyType type, AbstractType comparator, AbstractType subComparator, int id, DataInput input) throws IOException - { - ColumnFamily cf = new ColumnFamily(name, type, comparator, subComparator, id); - return deserializeFromSSTableNoColumns(cf, input); - } - public ColumnFamily deserializeFromSSTableNoColumns(ColumnFamily cf, DataInput input) throws IOException { cf.delete(input.readInt(), input.readLong()); Modified: cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/RowMutation.java Fri May 21 18:39:31 2010 @@ -22,11 +22,7 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ExecutionException; import java.nio.ByteBuffer; @@ -42,6 +38,7 @@ import org.apache.cassandra.thrift.Delet import org.apache.cassandra.thrift.Mutation; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.db.filter.QueryPath; +import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.concurrent.StageManager; @@ -62,7 +59,8 @@ public class RowMutation private String table_; private byte[] key_; - protected Map<String, ColumnFamily> modifications_ = new HashMap<String, ColumnFamily>(); + // map of column family id to mutations for that column family. + protected Map<Integer, ColumnFamily> modifications_ = new HashMap<Integer, ColumnFamily>(); public RowMutation(String table, byte[] key) { @@ -77,7 +75,7 @@ public class RowMutation add(row.cf); } - protected RowMutation(String table, byte[] key, Map<String, ColumnFamily> modifications) + protected RowMutation(String table, byte[] key, Map<Integer, ColumnFamily> modifications) { table_ = table; key_ = key; @@ -94,11 +92,6 @@ public class RowMutation return key_; } - public Set<String> columnFamilyNames() - { - return modifications_.keySet(); - } - public Collection<ColumnFamily> getColumnFamilies() { return modifications_.values(); @@ -119,19 +112,12 @@ public class RowMutation public void add(ColumnFamily columnFamily) { assert columnFamily != null; - if (modifications_.containsKey(columnFamily.name())) - { - throw new IllegalArgumentException("ColumnFamily " + columnFamily.name() + " is already being modified"); - } - modifications_.put(columnFamily.name(), columnFamily); + ColumnFamily prev = modifications_.put(columnFamily.id(), columnFamily); + if (prev != null) + // developer error + throw new IllegalArgumentException("ColumnFamily " + columnFamily + " already has modifications in this mutation: " + prev); } - /** should only be called by commitlog replay code */ - public void removeColumnFamily(String cfName) - { - modifications_.remove(cfName); - } - public boolean isEmpty() { return modifications_.isEmpty(); @@ -152,13 +138,14 @@ public class RowMutation */ public void add(QueryPath path, byte[] value, long timestamp, int timeToLive) { - ColumnFamily columnFamily = modifications_.get(path.columnFamilyName); + Integer id = CFMetaData.getId(table_, path.columnFamilyName); + ColumnFamily columnFamily = modifications_.get(id); if (columnFamily == null) { columnFamily = ColumnFamily.create(table_, path.columnFamilyName); + modifications_.put(id, columnFamily); } columnFamily.addColumn(path, value, timestamp, timeToLive); - modifications_.put(path.columnFamilyName, columnFamily); } public void add(QueryPath path, byte[] value, long timestamp) @@ -168,14 +155,16 @@ public class RowMutation public void delete(QueryPath path, long timestamp) { - assert path.columnFamilyName != null; - String cfName = path.columnFamilyName; + Integer id = CFMetaData.getId(table_, path.columnFamilyName); int localDeleteTime = (int) (System.currentTimeMillis() / 1000); - ColumnFamily columnFamily = modifications_.get(cfName); + ColumnFamily columnFamily = modifications_.get(id); if (columnFamily == null) - columnFamily = ColumnFamily.create(table_, cfName); + { + columnFamily = ColumnFamily.create(table_, path.columnFamilyName); + modifications_.put(id, columnFamily); + } if (path.superColumnName == null && path.columnName == null) { @@ -183,7 +172,7 @@ public class RowMutation } else if (path.columnName == null) { - SuperColumn sc = new SuperColumn(path.superColumnName, DatabaseDescriptor.getSubComparator(table_, cfName)); + SuperColumn sc = new SuperColumn(path.superColumnName, columnFamily.getSubComparator()); sc.markForDeleteAt(localDeleteTime, timestamp); columnFamily.addColumn(sc); } @@ -191,8 +180,6 @@ public class RowMutation { columnFamily.deleteColumn(path, localDeleteTime, timestamp); } - - modifications_.put(cfName, columnFamily); } /* @@ -282,11 +269,28 @@ public class RowMutation public String toString() { - return "RowMutation(" + - "table='" + table_ + '\'' + - ", key='" + FBUtilities.bytesToHex(key_) + '\'' + - ", modifications=[" + StringUtils.join(modifications_.values(), ", ") + "]" + - ')'; + return toString(false); + } + + public String toString(boolean shallow) + { + StringBuilder buff = new StringBuilder("RowMutation("); + buff.append("keyspace='").append(table_).append('\''); + buff.append(", key='").append(FBUtilities.bytesToHex(key_)).append('\''); + buff.append(", modifications=["); + if (shallow) + { + List<String> cfnames = new ArrayList<String>(); + for (Integer cfid : modifications_.keySet()) + { + CFMetaData cfm = DatabaseDescriptor.getCFMetaData(cfid); + cfnames.add(cfm == null ? "-dropped-" : cfm.cfName); + } + buff.append(StringUtils.join(cfnames, ", ")); + } + else + buff.append(StringUtils.join(modifications_.values(), ", ")); + return buff.append("])").toString(); } private static void addColumnOrSuperColumnToRowMutation(RowMutation rm, String cfName, ColumnOrSuperColumn cosc) @@ -325,15 +329,15 @@ public class RowMutation class RowMutationSerializer implements ICompactSerializer<RowMutation> { - private void freezeTheMaps(Map<String, ColumnFamily> map, DataOutputStream dos) throws IOException + private void freezeTheMaps(Map<Integer, ColumnFamily> map, DataOutputStream dos) throws IOException { int size = map.size(); dos.writeInt(size); if (size > 0) { - for (Map.Entry<String,ColumnFamily> entry : map.entrySet()) + for (Map.Entry<Integer,ColumnFamily> entry : map.entrySet()) { - dos.writeUTF(entry.getKey()); + dos.writeInt(entry.getKey()); ColumnFamily.serializer().serialize(entry.getValue(), dos); } } @@ -348,15 +352,15 @@ class RowMutationSerializer implements I freezeTheMaps(rm.modifications_, dos); } - private Map<String, ColumnFamily> defreezeTheMaps(DataInputStream dis) throws IOException + private Map<Integer, ColumnFamily> defreezeTheMaps(DataInputStream dis) throws IOException { - Map<String, ColumnFamily> map = new HashMap<String, ColumnFamily>(); + Map<Integer, ColumnFamily> map = new HashMap<Integer, ColumnFamily>(); int size = dis.readInt(); for (int i = 0; i < size; ++i) { - String key = dis.readUTF(); + Integer cfid = Integer.valueOf(dis.readInt()); ColumnFamily cf = ColumnFamily.serializer().deserialize(dis); - map.put(key, cf); + map.put(cfid, cf); } return map; } @@ -365,7 +369,7 @@ class RowMutationSerializer implements I { String table = dis.readUTF(); byte[] key = FBUtilities.readShortByteArray(dis); - Map<String, ColumnFamily> modifications = defreezeTheMaps(dis); + Map<Integer, ColumnFamily> modifications = defreezeTheMaps(dis); return new RowMutation(table, key, modifications); } } Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Table.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Table.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/Table.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/Table.java Fri May 21 18:39:31 2010 @@ -351,7 +351,7 @@ public class Table ColumnFamilyStore cfs = columnFamilyStores.get(columnFamily.id()); if (cfs == null) { - logger.error("Attempting to mutate non-existant column family " + columnFamily.name()); + logger.error("Attempting to mutate non-existant column family " + columnFamily.id()); } else { Modified: cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java Fri May 21 18:39:31 2010 @@ -111,10 +111,10 @@ public class CommitLogSegment // we can ignore the serialized map in the header (and avoid deserializing it) since we know we are // writing the cfs as they exist now. check for null cfm in case a cl write goes through after the cf is // defined but before a new segment is created. - CFMetaData cfm = DatabaseDescriptor.getTableDefinition(table.name).cfMetaData().get(columnFamily.name()); + CFMetaData cfm = DatabaseDescriptor.getCFMetaData(columnFamily.id()); if (cfm == null) { - logger.error("Attempted to write commit log entry for unrecognized column family: " + columnFamily.name()); + logger.error("Attempted to write commit log entry for unrecognized column family: " + columnFamily.id()); } else { Modified: cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java Fri May 21 18:39:31 2010 @@ -144,7 +144,7 @@ public class StorageProxy implements Sto if (destination.equals(FBUtilities.getLocalAddress())) { if (logger.isDebugEnabled()) - logger.debug("insert writing local key " + FBUtilities.bytesToHex(rm.key()) + " (keyspace: " + rm.getTable() + ", CFs:" + rm.columnFamilyNames() + ")"); + logger.debug("insert writing local " + rm.toString(true)); Runnable runnable = new WrappedRunnable() { public void runMayThrow() throws IOException @@ -293,7 +293,7 @@ public class StorageProxy implements Sto private static void insertLocalMessage(final RowMutation rm, final AbstractWriteResponseHandler responseHandler) { if (logger.isDebugEnabled()) - logger.debug("insert writing local key " + FBUtilities.bytesToHex(rm.key()) + " (keyspace: " + rm.getTable() + ", CFs:" + rm.columnFamilyNames() + ")"); + logger.debug("insert writing local " + rm.toString(true)); Runnable runnable = new WrappedRunnable() { public void runMayThrow() throws IOException Modified: cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/tools/SSTableImport.java Fri May 21 18:39:31 2010 @@ -21,6 +21,7 @@ package org.apache.cassandra.tools; import java.io.FileReader; import java.io.IOException; import java.util.*; +import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.DecoratedKey; @@ -85,10 +86,12 @@ public class SSTableImport */ private static void addToStandardCF(JSONArray row, ColumnFamily cfamily) { + CFMetaData cfm = cfamily.metadata(); + assert cfm != null; for (Object c : row) { JsonColumn col = new JsonColumn(c); - QueryPath path = new QueryPath(cfamily.name(), null, hexToBytes(col.name)); + QueryPath path = new QueryPath(cfm.cfName, null, hexToBytes(col.name)); if (col.isDeleted) { cfamily.addColumn(path, hexToBytes(col.value), col.timestamp); } else { @@ -105,6 +108,8 @@ public class SSTableImport */ private static void addToSuperCF(JSONObject row, ColumnFamily cfamily) { + CFMetaData cfm = cfamily.metadata(); + assert cfm != null; // Super columns for (Map.Entry<String, JSONObject> entry : (Set<Map.Entry<String, JSONObject>>)row.entrySet()) { @@ -116,7 +121,7 @@ public class SSTableImport for (Object c : subColumns) { JsonColumn col = new JsonColumn(c); - QueryPath path = new QueryPath(cfamily.name(), superName, hexToBytes(col.name)); + QueryPath path = new QueryPath(cfm.cfName, superName, hexToBytes(col.name)); if (col.isDeleted) { cfamily.addColumn(path, hexToBytes(col.value), col.timestamp); } else { Modified: cassandra/trunk/test/unit/org/apache/cassandra/Util.java URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/Util.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/test/unit/org/apache/cassandra/Util.java (original) +++ cassandra/trunk/test/unit/org/apache/cassandra/Util.java Fri May 21 18:39:31 2010 @@ -87,7 +87,7 @@ public class Util { RowMutation first = rms.get(0); String tablename = first.getTable(); - String cfname = first.columnFamilyNames().iterator().next(); + String cfname = first.getColumnFamilies().iterator().next().metadata().cfName; Table table = Table.open(tablename); ColumnFamilyStore store = table.getColumnFamilyStore(cfname); Modified: cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java URL: http://svn.apache.org/viewvc/cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java?rev=947122&r1=947121&r2=947122&view=diff ============================================================================== --- cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java (original) +++ cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java Fri May 21 18:39:31 2010 @@ -48,7 +48,7 @@ public class ColumnFamilyTest extends Sc ByteArrayInputStream bufIn = new ByteArrayInputStream(bufOut.getData(), 0, bufOut.getLength()); cf = ColumnFamily.serializer().deserialize(new DataInputStream(bufIn)); assert cf != null; - assert cf.name().equals("Standard1"); + assert cf.metadata().cfName.equals("Standard1"); assert cf.getSortedColumns().size() == 1; }