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