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;
     }
 


Reply via email to