You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by sl...@apache.org on 2013/12/17 17:53:14 UTC

[6/6] git commit: Rename Column to Cell

Rename Column to Cell


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e50d6af1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e50d6af1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e50d6af1

Branch: refs/heads/trunk
Commit: e50d6af12fabac98e3cb4bd589e2b92212b041f4
Parents: 362cc05
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Tue Dec 17 17:51:55 2013 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Tue Dec 17 17:52:20 2013 +0100

----------------------------------------------------------------------
 examples/hadoop_word_count/src/WordCount.java   |  16 +-
 .../src/WordCountCounters.java                  |  14 +-
 .../cassandra/triggers/InvertedIndex.java       |   4 +-
 .../org/apache/cassandra/config/CFMetaData.java |   8 +-
 .../apache/cassandra/cql/QueryProcessor.java    |  14 +-
 .../org/apache/cassandra/cql3/Attributes.java   |   6 +-
 src/java/org/apache/cassandra/cql3/CQL3Row.java |   8 +-
 src/java/org/apache/cassandra/cql3/Lists.java   |  10 +-
 .../apache/cassandra/cql3/QueryProcessor.java   |   4 +-
 .../apache/cassandra/cql3/UpdateParameters.java |  12 +-
 .../cql3/statements/AlterTableStatement.java    |   4 +-
 .../cql3/statements/SelectStatement.java        |  14 +-
 .../cassandra/cql3/statements/Selection.java    |  16 +-
 .../cassandra/db/ArrayBackedSortedColumns.java  | 160 ++++----
 .../cassandra/db/AtomicSortedColumns.java       |  70 ++--
 .../apache/cassandra/db/BatchlogManager.java    |   6 +-
 .../org/apache/cassandra/db/CFRowAdder.java     |   6 +-
 src/java/org/apache/cassandra/db/Cell.java      | 310 ++++++++++++++++
 .../cassandra/db/CollationController.java       |   4 +-
 src/java/org/apache/cassandra/db/Column.java    | 310 ----------------
 .../org/apache/cassandra/db/ColumnFamily.java   | 126 +++----
 .../cassandra/db/ColumnFamilySerializer.java    |   8 +-
 .../apache/cassandra/db/ColumnFamilyStore.java  |   8 +-
 .../org/apache/cassandra/db/ColumnIndex.java    |   2 +-
 .../apache/cassandra/db/ColumnSerializer.java   |  46 +--
 .../org/apache/cassandra/db/CounterCell.java    | 372 +++++++++++++++++++
 .../org/apache/cassandra/db/CounterColumn.java  | 372 -------------------
 .../apache/cassandra/db/CounterMutation.java    |   6 +-
 .../apache/cassandra/db/CounterUpdateCell.java  |  99 +++++
 .../cassandra/db/CounterUpdateColumn.java       |  99 -----
 .../org/apache/cassandra/db/DefsTables.java     |   2 +-
 .../org/apache/cassandra/db/DeletedCell.java    | 127 +++++++
 .../org/apache/cassandra/db/DeletedColumn.java  | 127 -------
 .../org/apache/cassandra/db/DeletionInfo.java   |  14 +-
 .../org/apache/cassandra/db/EmptyColumns.java   |  16 +-
 .../org/apache/cassandra/db/ExpiringCell.java   | 202 ++++++++++
 .../org/apache/cassandra/db/ExpiringColumn.java | 202 ----------
 .../cassandra/db/HintedHandOffManager.java      |   2 +-
 src/java/org/apache/cassandra/db/Keyspace.java  |   6 +-
 src/java/org/apache/cassandra/db/Memtable.java  |   5 +-
 .../org/apache/cassandra/db/OnDiskAtom.java     |   8 +-
 .../org/apache/cassandra/db/RangeTombstone.java |  12 +-
 .../org/apache/cassandra/db/SuperColumns.java   |  46 +--
 .../org/apache/cassandra/db/SystemKeyspace.java |   6 +-
 .../db/TreeMapBackedSortedColumns.java          |  54 +--
 .../apache/cassandra/db/UnsortedColumns.java    |  46 +--
 .../db/columniterator/SSTableNamesIterator.java |   2 +-
 .../db/columniterator/SSTableSliceIterator.java |   2 +-
 .../db/commitlog/CommitLogReplayer.java         |   2 +-
 .../db/compaction/CompactionManager.java        |  10 +-
 .../db/compaction/LazilyCompactedRow.java       |  16 +-
 .../db/composites/AbstractCellNameType.java     |  42 +--
 .../cassandra/db/composites/CellNameType.java   |   6 +-
 .../cassandra/db/composites/CellNames.java      |   8 +-
 .../cassandra/db/filter/ColumnCounter.java      |  18 +-
 .../apache/cassandra/db/filter/ColumnSlice.java |  10 +-
 .../cassandra/db/filter/ExtendedFilter.java     |  12 +-
 .../cassandra/db/filter/IDiskAtomFilter.java    |   4 +-
 .../cassandra/db/filter/NamesQueryFilter.java   |  14 +-
 .../apache/cassandra/db/filter/QueryFilter.java |  36 +-
 .../cassandra/db/filter/SliceQueryFilter.java   |  22 +-
 .../AbstractSimplePerColumnSecondaryIndex.java  |  28 +-
 .../db/index/PerColumnSecondaryIndex.java       |  12 +-
 .../db/index/PerRowSecondaryIndex.java          |   4 +-
 .../cassandra/db/index/SecondaryIndex.java      |   4 +-
 .../db/index/SecondaryIndexManager.java         |  64 ++--
 .../db/index/composites/CompositesIndex.java    |   6 +-
 .../CompositesIndexOnClusteringKey.java         |   6 +-
 .../CompositesIndexOnCollectionKey.java         |  10 +-
 .../CompositesIndexOnCollectionValue.java       |  12 +-
 .../CompositesIndexOnPartitionKey.java          |   4 +-
 .../composites/CompositesIndexOnRegular.java    |  12 +-
 .../db/index/composites/CompositesSearcher.java |  36 +-
 .../cassandra/db/index/keys/KeysIndex.java      |  14 +-
 .../cassandra/db/index/keys/KeysSearcher.java   |  30 +-
 .../db/marshal/AbstractCommutativeType.java     |   5 +-
 .../cassandra/db/marshal/CollectionType.java    |  15 +-
 .../cassandra/db/marshal/CounterColumnType.java |   4 +-
 .../apache/cassandra/db/marshal/ListType.java   |  13 +-
 .../apache/cassandra/db/marshal/MapType.java    |  12 +-
 .../apache/cassandra/db/marshal/SetType.java    |  13 +-
 .../hadoop/ColumnFamilyInputFormat.java         |   8 +-
 .../hadoop/ColumnFamilyRecordReader.java        |  92 ++---
 .../hadoop/pig/AbstractCassandraStorage.java    |   5 +-
 .../cassandra/hadoop/pig/CassandraStorage.java  |  24 +-
 .../apache/cassandra/hadoop/pig/CqlStorage.java |   8 +-
 .../io/sstable/AbstractSSTableSimpleWriter.java |  14 +-
 .../cassandra/io/sstable/SSTableWriter.java     |   4 +-
 .../cassandra/service/RowDataResolver.java      |   2 +-
 .../apache/cassandra/service/StorageProxy.java  |   4 +-
 .../service/pager/AbstractQueryPager.java       |   8 +-
 .../apache/cassandra/service/paxos/Commit.java  |   6 +-
 .../cassandra/thrift/CassandraServer.java       |  84 ++---
 .../cassandra/thrift/ThriftValidation.java      |  14 +-
 .../apache/cassandra/tools/SSTableExport.java   |  34 +-
 .../apache/cassandra/tools/SSTableImport.java   |   6 +-
 .../cassandra/tools/SSTableMetadataViewer.java  |   2 +-
 .../org/apache/cassandra/tracing/Tracing.java   |   4 +-
 .../cassandra/utils/BloomCalculations.java      |   2 +-
 .../org/apache/cassandra/utils/CounterId.java   |   4 +-
 .../apache/cassandra/db/MeteredFlusherTest.java |   2 +-
 .../db/compaction/LongCompactionsTest.java      |   2 +-
 test/unit/org/apache/cassandra/Util.java        |  14 +-
 .../org/apache/cassandra/config/DefsTest.java   |   7 +-
 .../db/ArrayBackedSortedColumnsTest.java        |  24 +-
 .../cassandra/db/ColumnFamilyStoreTest.java     | 108 +++---
 .../apache/cassandra/db/CounterCellTest.java    | 323 ++++++++++++++++
 .../apache/cassandra/db/CounterColumnTest.java  | 323 ----------------
 .../cassandra/db/CounterMutationTest.java       |  14 +-
 .../org/apache/cassandra/db/KeyspaceTest.java   |  41 +-
 .../org/apache/cassandra/db/NameSortTest.java   |  10 +-
 .../apache/cassandra/db/RangeTombstoneTest.java |  34 +-
 .../apache/cassandra/db/ReadMessageTest.java    |   2 +-
 .../cassandra/db/RecoveryManagerTest.java       |   7 +-
 .../db/RecoveryManagerTruncateTest.java         |   3 +-
 .../org/apache/cassandra/db/RemoveCellTest.java |  86 +++++
 .../apache/cassandra/db/RemoveColumnTest.java   |  86 -----
 .../apache/cassandra/db/RemoveSubCellTest.java  | 100 +++++
 .../cassandra/db/RemoveSubColumnTest.java       | 100 -----
 .../org/apache/cassandra/db/RowCacheTest.java   |  24 +-
 test/unit/org/apache/cassandra/db/RowTest.java  |   2 +-
 .../unit/org/apache/cassandra/db/ScrubTest.java |   2 +-
 .../db/SecondaryIndexCellSizeTest.java          | 230 ++++++++++++
 .../db/SecondaryIndexColumnSizeTest.java        | 230 ------------
 .../apache/cassandra/db/SerializationsTest.java |  31 +-
 .../org/apache/cassandra/db/TimeSortTest.java   |  24 +-
 .../db/compaction/CompactionsPurgeTest.java     |   6 +-
 .../db/index/PerRowSecondaryIndexTest.java      |   8 +-
 .../cassandra/db/marshal/CompositeTypeTest.java |   2 +-
 .../db/marshal/DynamicCompositeTypeTest.java    |   2 +-
 .../io/sstable/IndexSummaryManagerTest.java     |   7 +-
 .../io/sstable/SSTableSimpleWriterTest.java     |   4 +-
 .../cassandra/io/sstable/SSTableUtils.java      |  10 +-
 .../cassandra/service/QueryPagerTest.java       |   4 +-
 .../streaming/StreamingTransferTest.java        |   8 +-
 .../cassandra/tools/SSTableExportTest.java      |   6 +-
 .../cassandra/tools/SSTableImportTest.java      |  43 ++-
 tools/stress/README.txt                         |   4 +-
 .../org/apache/cassandra/stress/Session.java    |   6 +-
 .../stress/operations/CqlInserter.java          |   2 +-
 140 files changed, 2880 insertions(+), 2903 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/examples/hadoop_word_count/src/WordCount.java
----------------------------------------------------------------------
diff --git a/examples/hadoop_word_count/src/WordCount.java b/examples/hadoop_word_count/src/WordCount.java
index 398a7cb..ce9565d 100644
--- a/examples/hadoop_word_count/src/WordCount.java
+++ b/examples/hadoop_word_count/src/WordCount.java
@@ -18,14 +18,12 @@
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.*;
 
-import org.apache.cassandra.thrift.*;
+import org.apache.cassandra.db.Cell;
 import org.apache.cassandra.hadoop.ColumnFamilyOutputFormat;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.cassandra.db.Column;
 import org.apache.cassandra.hadoop.ColumnFamilyInputFormat;
 import org.apache.cassandra.hadoop.ConfigHelper;
 import org.apache.cassandra.utils.ByteBufferUtil;
@@ -70,7 +68,7 @@ public class WordCount extends Configured implements Tool
         System.exit(0);
     }
 
-    public static class TokenizerMapper extends Mapper<ByteBuffer, SortedMap<ByteBuffer, Column>, Text, IntWritable>
+    public static class TokenizerMapper extends Mapper<ByteBuffer, SortedMap<ByteBuffer, Cell>, Text, IntWritable>
     {
         private final static IntWritable one = new IntWritable(1);
         private Text word = new Text();
@@ -81,17 +79,17 @@ public class WordCount extends Configured implements Tool
         {
         }
 
-        public void map(ByteBuffer key, SortedMap<ByteBuffer, Column> columns, Context context) throws IOException, InterruptedException
+        public void map(ByteBuffer key, SortedMap<ByteBuffer, Cell> columns, Context context) throws IOException, InterruptedException
         {
-            for (Column column : columns.values())
+            for (Cell cell : columns.values())
             {
-                String name  = ByteBufferUtil.string(column.name());
+                String name  = ByteBufferUtil.string(cell.name());
                 String value = null;
                 
                 if (name.contains("int"))
-                    value = String.valueOf(ByteBufferUtil.toInt(column.value()));
+                    value = String.valueOf(ByteBufferUtil.toInt(cell.value()));
                 else
-                    value = ByteBufferUtil.string(column.value());
+                    value = ByteBufferUtil.string(cell.value());
                                
                 logger.debug("read {}:{}={} from {}",
                              new Object[] {ByteBufferUtil.string(key), name, value, context.getInputSplit()});

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/examples/hadoop_word_count/src/WordCountCounters.java
----------------------------------------------------------------------
diff --git a/examples/hadoop_word_count/src/WordCountCounters.java b/examples/hadoop_word_count/src/WordCountCounters.java
index 55d0889..4ea063b 100644
--- a/examples/hadoop_word_count/src/WordCountCounters.java
+++ b/examples/hadoop_word_count/src/WordCountCounters.java
@@ -18,8 +18,8 @@
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
-import java.util.*;
 
+import org.apache.cassandra.db.Cell;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,10 +34,8 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.util.Tool;
 import org.apache.hadoop.util.ToolRunner;
 
-import org.apache.cassandra.db.Column;
 import org.apache.cassandra.hadoop.ColumnFamilyInputFormat;
 import org.apache.cassandra.hadoop.ConfigHelper;
-import org.apache.cassandra.thrift.*;
 import org.apache.cassandra.utils.ByteBufferUtil;
 
 /**
@@ -60,15 +58,15 @@ public class WordCountCounters extends Configured implements Tool
         System.exit(0);
     }
 
-    public static class SumMapper extends Mapper<ByteBuffer, SortedMap<ByteBuffer, Column>, Text, LongWritable>
+    public static class SumMapper extends Mapper<ByteBuffer, SortedMap<ByteBuffer, Cell>, Text, LongWritable>
     {
-        public void map(ByteBuffer key, SortedMap<ByteBuffer, Column> columns, Context context) throws IOException, InterruptedException
+        public void map(ByteBuffer key, SortedMap<ByteBuffer, Cell> columns, Context context) throws IOException, InterruptedException
         {
             long sum = 0;
-            for (Column column : columns.values())
+            for (Cell cell : columns.values())
             {
-                logger.debug("read " + key + ":" + column.name() + " from " + context.getInputSplit());
-                sum += ByteBufferUtil.toLong(column.value());
+                logger.debug("read " + key + ":" + cell.name() + " from " + context.getInputSplit());
+                sum += ByteBufferUtil.toLong(cell.value());
             }
             context.write(new Text(ByteBufferUtil.string(key)), new LongWritable(sum));
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/examples/triggers/src/org/apache/cassandra/triggers/InvertedIndex.java
----------------------------------------------------------------------
diff --git a/examples/triggers/src/org/apache/cassandra/triggers/InvertedIndex.java b/examples/triggers/src/org/apache/cassandra/triggers/InvertedIndex.java
index a2d7644..2e1d4cc 100644
--- a/examples/triggers/src/org/apache/cassandra/triggers/InvertedIndex.java
+++ b/examples/triggers/src/org/apache/cassandra/triggers/InvertedIndex.java
@@ -24,10 +24,10 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.cassandra.db.Cell;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import org.apache.cassandra.db.Column;
 import org.apache.cassandra.db.ColumnFamily;
 import org.apache.cassandra.db.RowMutation;
 import org.apache.cassandra.io.util.FileUtils;
@@ -40,7 +40,7 @@ public class InvertedIndex implements ITrigger
     public Collection<RowMutation> augment(ByteBuffer key, ColumnFamily update)
     {
         List<RowMutation> mutations = new ArrayList<>();
-        for (Column cell : update)
+        for (Cell cell : update)
         {
             RowMutation mutation = new RowMutation(properties.getProperty("keyspace"), cell.value());
             mutation.add(properties.getProperty("columnfamily"), cell.name(), key, System.currentTimeMillis());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java
index e56c1dd..097f150 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -1347,7 +1347,7 @@ public final class CFMetaData
     {
         if (version.hasSuperColumns && cfType == ColumnFamilyType.Super)
             return SuperColumns.onDiskIterator(in, count, flag, expireBefore, comparator);
-        return Column.onDiskIterator(in, count, flag, expireBefore, version, comparator);
+        return Cell.onDiskIterator(in, count, flag, expireBefore, version, comparator);
     }
 
     public AtomDeserializer getOnDiskDeserializer(DataInput in, Descriptor.Version version)
@@ -2101,10 +2101,10 @@ public final class CFMetaData
         return true;
     }
 
-    public void validateColumns(Iterable<Column> columns)
+    public void validateColumns(Iterable<Cell> columns)
     {
-        for (Column column : columns)
-            column.validateFields(this);
+        for (Cell cell : columns)
+            cell.validateFields(this);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql/QueryProcessor.java b/src/java/org/apache/cassandra/cql/QueryProcessor.java
index 12a0c22..3d5c3f1 100644
--- a/src/java/org/apache/cassandra/cql/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java
@@ -33,7 +33,7 @@ import org.apache.cassandra.cql.hooks.ExecutionContext;
 import org.apache.cassandra.cql.hooks.PostPreparationHook;
 import org.apache.cassandra.cql.hooks.PreExecutionHook;
 import org.apache.cassandra.cql.hooks.PreparationContext;
-import org.apache.cassandra.db.CounterColumn;
+import org.apache.cassandra.db.CounterCell;
 import org.apache.cassandra.db.*;
 import org.apache.cassandra.db.composites.CellName;
 import org.apache.cassandra.db.composites.CellNameType;
@@ -310,10 +310,10 @@ public class QueryProcessor
     {
         for (CellName name : columns)
         {
-            if (name.dataSize() > org.apache.cassandra.db.Column.MAX_NAME_LENGTH)
+            if (name.dataSize() > org.apache.cassandra.db.Cell.MAX_NAME_LENGTH)
                 throw new InvalidRequestException(String.format("column name is too long (%s > %s)",
                                                                 name.dataSize(),
-                                                                org.apache.cassandra.db.Column.MAX_NAME_LENGTH));
+                                                                org.apache.cassandra.db.Cell.MAX_NAME_LENGTH));
             if (name.isEmpty())
                 throw new InvalidRequestException("zero-length column name");
         }
@@ -467,7 +467,7 @@ public class QueryProcessor
                         // preserve comparator order
                         if (row.cf != null)
                         {
-                            for (org.apache.cassandra.db.Column c : row.cf.getSortedColumns())
+                            for (org.apache.cassandra.db.Cell c : row.cf.getSortedColumns())
                             {
                                 if (c.isMarkedForDelete(now))
                                     continue;
@@ -514,7 +514,7 @@ public class QueryProcessor
                             ColumnDefinition cd = metadata.getColumnDefinition(name);
                             if (cd != null)
                                 result.schema.value_types.put(nameBytes, TypeParser.getShortName(cd.type));
-                            org.apache.cassandra.db.Column c = row.cf.getColumn(name);
+                            org.apache.cassandra.db.Cell c = row.cf.getColumn(name);
                             if (c == null || c.isMarkedForDelete(System.currentTimeMillis()))
                                 thriftColumns.add(new Column().setName(nameBytes));
                             else
@@ -854,9 +854,9 @@ public class QueryProcessor
         return cql.hashCode();
     }
 
-    private static Column thriftify(org.apache.cassandra.db.Column c)
+    private static Column thriftify(org.apache.cassandra.db.Cell c)
     {
-        ByteBuffer value = (c instanceof CounterColumn)
+        ByteBuffer value = (c instanceof CounterCell)
                            ? ByteBufferUtil.bytes(CounterContext.instance().total(c.value()))
                            : c.value();
         return new Column(c.name().toByteBuffer()).setValue(value).setTimestamp(c.timestamp());

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/Attributes.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Attributes.java b/src/java/org/apache/cassandra/cql3/Attributes.java
index a92cc80..97ce31a 100644
--- a/src/java/org/apache/cassandra/cql3/Attributes.java
+++ b/src/java/org/apache/cassandra/cql3/Attributes.java
@@ -20,7 +20,7 @@ package org.apache.cassandra.cql3;
 import java.nio.ByteBuffer;
 import java.util.List;
 
-import org.apache.cassandra.db.ExpiringColumn;
+import org.apache.cassandra.db.ExpiringCell;
 import org.apache.cassandra.db.marshal.Int32Type;
 import org.apache.cassandra.db.marshal.LongType;
 import org.apache.cassandra.exceptions.InvalidRequestException;
@@ -99,8 +99,8 @@ public class Attributes
         if (ttl < 0)
             throw new InvalidRequestException("A TTL must be greater or equal to 0");
 
-        if (ttl > ExpiringColumn.MAX_TTL)
-            throw new InvalidRequestException(String.format("ttl is too large. requested (%d) maximum (%d)", ttl, ExpiringColumn.MAX_TTL));
+        if (ttl > ExpiringCell.MAX_TTL)
+            throw new InvalidRequestException(String.format("ttl is too large. requested (%d) maximum (%d)", ttl, ExpiringCell.MAX_TTL));
 
         return ttl;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/CQL3Row.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/CQL3Row.java b/src/java/org/apache/cassandra/cql3/CQL3Row.java
index bc6bb2c..afeb095 100644
--- a/src/java/org/apache/cassandra/cql3/CQL3Row.java
+++ b/src/java/org/apache/cassandra/cql3/CQL3Row.java
@@ -21,16 +21,16 @@ import java.nio.ByteBuffer;
 import java.util.Iterator;
 import java.util.List;
 
-import org.apache.cassandra.db.Column;
+import org.apache.cassandra.db.Cell;
 
 public interface CQL3Row
 {
     public ByteBuffer getClusteringColumn(int i);
-    public Column getColumn(ColumnIdentifier name);
-    public List<Column> getCollection(ColumnIdentifier name);
+    public Cell getColumn(ColumnIdentifier name);
+    public List<Cell> getCollection(ColumnIdentifier name);
 
     public interface Builder
     {
-        Iterator<CQL3Row> group(Iterator<Column> cells);
+        Iterator<CQL3Row> group(Iterator<Cell> cells);
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/Lists.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/Lists.java b/src/java/org/apache/cassandra/cql3/Lists.java
index 6bcdfcd..ab21a64 100644
--- a/src/java/org/apache/cassandra/cql3/Lists.java
+++ b/src/java/org/apache/cassandra/cql3/Lists.java
@@ -24,8 +24,8 @@ import java.util.List;
 import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.cassandra.config.ColumnDefinition;
+import org.apache.cassandra.db.Cell;
 import org.apache.cassandra.db.ColumnFamily;
-import org.apache.cassandra.db.Column;
 import org.apache.cassandra.db.composites.CellName;
 import org.apache.cassandra.db.composites.Composite;
 import org.apache.cassandra.db.marshal.CollectionType;
@@ -305,7 +305,7 @@ public abstract class Lists
             if (index == null)
                 throw new InvalidRequestException("Invalid null value for list index");
 
-            List<Column> existingList = params.getPrefetchedList(rowKey, column.name);
+            List<Cell> existingList = params.getPrefetchedList(rowKey, column.name);
             int idx = ByteBufferUtil.toInt(index);
             if (idx < 0 || idx >= existingList.size())
                 throw new InvalidRequestException(String.format("List index %d out of bound, list has size %d", idx, existingList.size()));
@@ -399,7 +399,7 @@ public abstract class Lists
 
         public void execute(ByteBuffer rowKey, ColumnFamily cf, Composite prefix, UpdateParameters params) throws InvalidRequestException
         {
-            List<Column> existingList = params.getPrefetchedList(rowKey, column.name);
+            List<Cell> existingList = params.getPrefetchedList(rowKey, column.name);
             if (existingList.isEmpty())
                 return;
 
@@ -414,7 +414,7 @@ public abstract class Lists
             // the read-before-write this operation requires limits its usefulness on big lists, so in practice
             // toDiscard will be small and keeping a list will be more efficient.
             List<ByteBuffer> toDiscard = ((Lists.Value)value).elements;
-            for (Column cell : existingList)
+            for (Cell cell : existingList)
             {
                 if (toDiscard.contains(cell.value()))
                     cf.addColumn(params.makeTombstone(cell.name()));
@@ -443,7 +443,7 @@ public abstract class Lists
 
             assert index instanceof Constants.Value;
 
-            List<Column> existingList = params.getPrefetchedList(rowKey, column.name);
+            List<Cell> existingList = params.getPrefetchedList(rowKey, column.name);
             int idx = ByteBufferUtil.toInt(((Constants.Value)index).bytes);
             if (idx < 0 || idx >= existingList.size())
                 throw new InvalidRequestException(String.format("List index %d out of bound, list has size %d", idx, existingList.size()));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/QueryProcessor.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index 772c103..77542cd 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -174,10 +174,10 @@ public class QueryProcessor
 
     public static void validateComposite(Composite name) throws InvalidRequestException
     {
-        if (name.dataSize() > Column.MAX_NAME_LENGTH)
+        if (name.dataSize() > Cell.MAX_NAME_LENGTH)
             throw new InvalidRequestException(String.format("The sum of all clustering columns is too long (%s > %s)",
                                                             name.dataSize(),
-                                                            Column.MAX_NAME_LENGTH));
+                                                            Cell.MAX_NAME_LENGTH));
     }
 
     private static ResultMessage processStatement(CQLStatement statement,

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/UpdateParameters.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/UpdateParameters.java b/src/java/org/apache/cassandra/cql3/UpdateParameters.java
index cc3fe4d..a3553f4 100644
--- a/src/java/org/apache/cassandra/cql3/UpdateParameters.java
+++ b/src/java/org/apache/cassandra/cql3/UpdateParameters.java
@@ -52,16 +52,16 @@ public class UpdateParameters
         this.prefetchedLists = prefetchedLists;
     }
 
-    public Column makeColumn(CellName name, ByteBuffer value) throws InvalidRequestException
+    public Cell makeColumn(CellName name, ByteBuffer value) throws InvalidRequestException
     {
         QueryProcessor.validateCellName(name);
-        return Column.create(name, value, timestamp, ttl, metadata);
+        return Cell.create(name, value, timestamp, ttl, metadata);
     }
 
-    public Column makeTombstone(CellName name) throws InvalidRequestException
+    public Cell makeTombstone(CellName name) throws InvalidRequestException
     {
         QueryProcessor.validateCellName(name);
-        return new DeletedColumn(name, localDeletionTime, timestamp);
+        return new DeletedCell(name, localDeletionTime, timestamp);
     }
 
     public RangeTombstone makeRangeTombstone(ColumnSlice slice) throws InvalidRequestException
@@ -78,12 +78,12 @@ public class UpdateParameters
         return new RangeTombstone(slice.start, slice.finish, timestamp - 1, localDeletionTime);
     }
 
-    public List<Column> getPrefetchedList(ByteBuffer rowKey, ColumnIdentifier cql3ColumnName)
+    public List<Cell> getPrefetchedList(ByteBuffer rowKey, ColumnIdentifier cql3ColumnName)
     {
         if (prefetchedLists == null)
             return Collections.emptyList();
 
         CQL3Row row = prefetchedLists.get(rowKey);
-        return row == null ? Collections.<Column>emptyList() : row.getCollection(cql3ColumnName);
+        return row == null ? Collections.<Cell>emptyList() : row.getCollection(cql3ColumnName);
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
index d1452d2..eb52a13 100644
--- a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
@@ -106,7 +106,7 @@ public class AlterTableStatement extends SchemaAlteringStatement
 
             case ALTER:
                 if (def == null)
-                    throw new InvalidRequestException(String.format("Column %s was not found in table %s", columnName, columnFamily()));
+                    throw new InvalidRequestException(String.format("Cell %s was not found in table %s", columnName, columnFamily()));
 
                 switch (def.kind)
                 {
@@ -181,7 +181,7 @@ public class AlterTableStatement extends SchemaAlteringStatement
                 if (!cfm.isCQL3Table())
                     throw new InvalidRequestException("Cannot drop columns from a non-CQL3 CF");
                 if (def == null)
-                    throw new InvalidRequestException(String.format("Column %s was not found in table %s", columnName, columnFamily()));
+                    throw new InvalidRequestException(String.format("Cell %s was not found in table %s", columnName, columnFamily()));
 
                 switch (def.kind)
                 {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
index d9b4e04..b29a044 100644
--- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java
@@ -808,7 +808,7 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
         return value;
     }
 
-    private Iterator<Column> applySliceRestriction(final Iterator<Column> cells, final List<ByteBuffer> variables) throws InvalidRequestException
+    private Iterator<Cell> applySliceRestriction(final Iterator<Cell> cells, final List<ByteBuffer> variables) throws InvalidRequestException
     {
         assert sliceRestriction != null;
 
@@ -816,14 +816,14 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
         final CellName excludedStart = sliceRestriction.isInclusive(Bound.START) ? null : type.makeCellName(sliceRestriction.bound(Bound.START, variables));
         final CellName excludedEnd = sliceRestriction.isInclusive(Bound.END) ? null : type.makeCellName(sliceRestriction.bound(Bound.END, variables));
 
-        return new AbstractIterator<Column>()
+        return new AbstractIterator<Cell>()
         {
-            protected Column computeNext()
+            protected Cell computeNext()
             {
                 if (!cells.hasNext())
                     return endOfData();
 
-                Column c = cells.next();
+                Cell c = cells.next();
 
                 // For dynamic CF, the column could be out of the requested bounds (because we don't support strict bounds internally (unless
                 // the comparator is composite that is)), filter here
@@ -876,7 +876,7 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
             keyComponents = new ByteBuffer[]{ key };
         }
 
-        Iterator<Column> cells = cf.getSortedColumns().iterator();
+        Iterator<Cell> cells = cf.getSortedColumns().iterator();
         if (sliceRestriction != null)
             cells = applySliceRestriction(cells, variables);
 
@@ -903,7 +903,7 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
                     case REGULAR:
                         if (def.type.isCollection())
                         {
-                            List<Column> collection = cql3Row.getCollection(def.name);
+                            List<Cell> collection = cql3Row.getCollection(def.name);
                             ByteBuffer value = collection == null
                                              ? null
                                              : ((CollectionType)def.type).serialize(collection);
@@ -1325,7 +1325,7 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
                 Boolean isReversed = null;
                 for (Boolean b : reversedMap)
                 {
-                    // Column on which order is specified can be in any order
+                    // Cell on which order is specified can be in any order
                     if (b == null)
                         continue;
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/cql3/statements/Selection.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/cql3/statements/Selection.java b/src/java/org/apache/cassandra/cql3/statements/Selection.java
index 6a8cfe6..f8b3f52 100644
--- a/src/java/org/apache/cassandra/cql3/statements/Selection.java
+++ b/src/java/org/apache/cassandra/cql3/statements/Selection.java
@@ -28,9 +28,9 @@ import org.apache.cassandra.cql3.functions.Function;
 import org.apache.cassandra.cql3.functions.Functions;
 import org.apache.cassandra.config.CFMetaData;
 import org.apache.cassandra.config.ColumnDefinition;
-import org.apache.cassandra.db.CounterColumn;
-import org.apache.cassandra.db.ExpiringColumn;
-import org.apache.cassandra.db.Column;
+import org.apache.cassandra.db.Cell;
+import org.apache.cassandra.db.CounterCell;
+import org.apache.cassandra.db.ExpiringCell;
 import org.apache.cassandra.db.context.CounterContext;
 import org.apache.cassandra.db.marshal.AbstractType;
 import org.apache.cassandra.db.marshal.Int32Type;
@@ -247,9 +247,9 @@ public abstract class Selection
         return new ResultSetBuilder(now);
     }
 
-    private static ByteBuffer value(Column c)
+    private static ByteBuffer value(Cell c)
     {
-        return (c instanceof CounterColumn)
+        return (c instanceof CounterCell)
             ? ByteBufferUtil.bytes(CounterContext.instance().total(c.value()))
             : c.value();
     }
@@ -284,7 +284,7 @@ public abstract class Selection
             current.add(v);
         }
 
-        public void add(Column c)
+        public void add(Cell c)
         {
             current.add(isDead(c) ? null : value(c));
             if (timestamps != null)
@@ -294,13 +294,13 @@ public abstract class Selection
             if (ttls != null)
             {
                 int ttl = -1;
-                if (!isDead(c) && c instanceof ExpiringColumn)
+                if (!isDead(c) && c instanceof ExpiringCell)
                     ttl = c.getLocalDeletionTime() - (int) (now / 1000);
                 ttls[current.size() - 1] = ttl;
             }
         }
 
-        private boolean isDead(Column c)
+        private boolean isDead(Cell c)
         {
             return c == null || c.isMarkedForDelete(now);
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
index 432b47e..5d5178c 100644
--- a/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/ArrayBackedSortedColumns.java
@@ -35,13 +35,13 @@ import org.apache.cassandra.utils.Allocator;
  * A ColumnFamily backed by an ArrayList.
  * This implementation is not synchronized and should only be used when
  * thread-safety is not required. This implementation makes sense when the
- * main operations performed are iterating over the map and adding columns
+ * main operations performed are iterating over the map and adding cells
  * (especially if insertion is in sorted order).
  */
 public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
 {
     private final boolean reversed;
-    private final ArrayList<Column> columns;
+    private final ArrayList<Cell> cells;
 
     public static final ColumnFamily.Factory<ArrayBackedSortedColumns> factory = new Factory<ArrayBackedSortedColumns>()
     {
@@ -55,14 +55,14 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
     {
         super(metadata);
         this.reversed = reversed;
-        this.columns = new ArrayList<Column>();
+        this.cells = new ArrayList<Cell>();
     }
 
-    private ArrayBackedSortedColumns(Collection<Column> columns, CFMetaData metadata, boolean reversed)
+    private ArrayBackedSortedColumns(Collection<Cell> cells, CFMetaData metadata, boolean reversed)
     {
         super(metadata);
         this.reversed = reversed;
-        this.columns = new ArrayList<Column>(columns);
+        this.cells = new ArrayList<Cell>(cells);
     }
 
     public ColumnFamily.Factory getFactory()
@@ -72,7 +72,7 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
 
     public ColumnFamily cloneMe()
     {
-        return new ArrayBackedSortedColumns(columns, metadata, reversed);
+        return new ArrayBackedSortedColumns(cells, metadata, reversed);
     }
 
     public boolean isInsertReversed()
@@ -85,15 +85,15 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
         return reversed ? getComparator().reverseComparator() : getComparator();
     }
 
-    public Column getColumn(CellName name)
+    public Cell getColumn(CellName name)
     {
         int pos = binarySearch(name);
-        return pos >= 0 ? columns.get(pos) : null;
+        return pos >= 0 ? cells.get(pos) : null;
     }
 
     /**
-     * AddColumn throws an exception if the column added does not sort after
-     * the last column in the map.
+     * AddColumn throws an exception if the cell added does not sort after
+     * the last cell in the map.
      * The reasoning is that this implementation can get slower if too much
      * insertions are done in unsorted order and right now we only use it when
      * *all* insertion (with this method) are done in sorted order. The
@@ -101,37 +101,37 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
      * without knowing about (we can revisit that decision later if we have
      * use cases where most insert are in sorted order but a few are not).
      */
-    public void addColumn(Column column, Allocator allocator)
+    public void addColumn(Cell cell, Allocator allocator)
     {
-        if (columns.isEmpty())
+        if (cells.isEmpty())
         {
-            columns.add(column);
+            cells.add(cell);
             return;
         }
 
         // Fast path if inserting at the tail
-        int c = internalComparator().compare(columns.get(getColumnCount() - 1).name(), column.name());
+        int c = internalComparator().compare(cells.get(getColumnCount() - 1).name(), cell.name());
         // note that we want an assertion here (see addColumn javadoc), but we also want that if
         // assertion are disabled, addColumn works correctly with unsorted input
-        assert c <= 0 : "Added column does not sort as the " + (reversed ? "first" : "last") + " column";
+        assert c <= 0 : "Added cell does not sort as the " + (reversed ? "first" : "last") + " cell";
 
         if (c < 0)
         {
             // Insert as last
-            columns.add(column);
+            cells.add(cell);
         }
         else if (c == 0)
         {
             // Resolve against last
-            resolveAgainst(getColumnCount() - 1, column, allocator);
+            resolveAgainst(getColumnCount() - 1, cell, allocator);
         }
         else
         {
-            int pos = binarySearch(column.name());
+            int pos = binarySearch(cell.name());
             if (pos >= 0)
-                resolveAgainst(pos, column, allocator);
+                resolveAgainst(pos, cell, allocator);
             else
-                columns.add(-pos-1, column);
+                cells.add(-pos-1, cell);
         }
     }
 
@@ -139,36 +139,36 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
      * Resolve against element at position i.
      * Assume that i is a valid position.
      */
-    private void resolveAgainst(int i, Column column, Allocator allocator)
+    private void resolveAgainst(int i, Cell cell, Allocator allocator)
     {
-        Column oldColumn = columns.get(i);
+        Cell oldCell = cells.get(i);
 
         // calculate reconciled col from old (existing) col and new col
-        Column reconciledColumn = column.reconcile(oldColumn, allocator);
-        columns.set(i, reconciledColumn);
+        Cell reconciledCell = cell.reconcile(oldCell, allocator);
+        cells.set(i, reconciledCell);
     }
 
     private int binarySearch(CellName name)
     {
-        return binarySearch(columns, internalComparator(), name, 0);
+        return binarySearch(cells, internalComparator(), name, 0);
     }
 
     /**
      * Simple binary search for a given column name.
      * The return value has the exact same meaning that the one of Collections.binarySearch().
      * (We don't use Collections.binarySearch() directly because it would require us to create
-     * a fake Column (as well as an Column comparator) to do the search, which is ugly.
+     * a fake Cell (as well as an Cell comparator) to do the search, which is ugly.
      */
-    private static int binarySearch(List<Column> columns, Comparator<Composite> comparator, Composite name, int start)
+    private static int binarySearch(List<Cell> cells, Comparator<Composite> comparator, Composite name, int start)
     {
         int low = start;
-        int mid = columns.size();
+        int mid = cells.size();
         int high = mid - 1;
         int result = -1;
         while (low <= high)
         {
             mid = (low + high) >> 1;
-            if ((result = comparator.compare(name, columns.get(mid).name())) > 0)
+            if ((result = comparator.compare(name, cells.get(mid).name())) > 0)
             {
                 low = mid + 1;
             }
@@ -184,71 +184,71 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
         return -mid - (result < 0 ? 1 : 2);
     }
 
-    public void addAll(ColumnFamily cm, Allocator allocator, Function<Column, Column> transformation)
+    public void addAll(ColumnFamily cm, Allocator allocator, Function<Cell, Cell> transformation)
     {
         delete(cm.deletionInfo());
         if (cm.getColumnCount() == 0)
             return;
 
-        Column[] copy = columns.toArray(new Column[getColumnCount()]);
+        Cell[] copy = cells.toArray(new Cell[getColumnCount()]);
         int idx = 0;
-        Iterator<Column> other = reversed ? cm.reverseIterator(ColumnSlice.ALL_COLUMNS_ARRAY) : cm.iterator();
-        Column otherColumn = other.next();
+        Iterator<Cell> other = reversed ? cm.reverseIterator(ColumnSlice.ALL_COLUMNS_ARRAY) : cm.iterator();
+        Cell otherCell = other.next();
 
-        columns.clear();
+        cells.clear();
 
-        while (idx < copy.length && otherColumn != null)
+        while (idx < copy.length && otherCell != null)
         {
-            int c = internalComparator().compare(copy[idx].name(), otherColumn.name());
+            int c = internalComparator().compare(copy[idx].name(), otherCell.name());
             if (c < 0)
             {
-                columns.add(copy[idx]);
+                cells.add(copy[idx]);
                 idx++;
             }
             else if (c > 0)
             {
-                columns.add(transformation.apply(otherColumn));
-                otherColumn = other.hasNext() ? other.next() : null;
+                cells.add(transformation.apply(otherCell));
+                otherCell = other.hasNext() ? other.next() : null;
             }
             else // c == 0
             {
-                columns.add(copy[idx]);
-                resolveAgainst(getColumnCount() - 1, transformation.apply(otherColumn), allocator);
+                cells.add(copy[idx]);
+                resolveAgainst(getColumnCount() - 1, transformation.apply(otherCell), allocator);
                 idx++;
-                otherColumn = other.hasNext() ? other.next() : null;
+                otherCell = other.hasNext() ? other.next() : null;
             }
         }
         while (idx < copy.length)
         {
-            columns.add(copy[idx++]);
+            cells.add(copy[idx++]);
         }
-        while (otherColumn != null)
+        while (otherCell != null)
         {
-            columns.add(transformation.apply(otherColumn));
-            otherColumn = other.hasNext() ? other.next() : null;
+            cells.add(transformation.apply(otherCell));
+            otherCell = other.hasNext() ? other.next() : null;
         }
     }
 
-    public boolean replace(Column oldColumn, Column newColumn)
+    public boolean replace(Cell oldCell, Cell newCell)
     {
-        if (!oldColumn.name().equals(newColumn.name()))
+        if (!oldCell.name().equals(newCell.name()))
             throw new IllegalArgumentException();
 
-        int pos = binarySearch(oldColumn.name());
+        int pos = binarySearch(oldCell.name());
         if (pos >= 0)
         {
-            columns.set(pos, newColumn);
+            cells.set(pos, newCell);
         }
 
         return pos >= 0;
     }
 
-    public Collection<Column> getSortedColumns()
+    public Collection<Cell> getSortedColumns()
     {
-        return reversed ? new ReverseSortedCollection() : columns;
+        return reversed ? new ReverseSortedCollection() : cells;
     }
 
-    public Collection<Column> getReverseSortedColumns()
+    public Collection<Cell> getReverseSortedColumns()
     {
         // If reversed, the element are sorted reversely, so we could expect
         // to return *this*, but *this* redefine the iterator to be in sorted
@@ -258,59 +258,59 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
 
     public int getColumnCount()
     {
-        return columns.size();
+        return cells.size();
     }
 
     public void clear()
     {
         setDeletionInfo(DeletionInfo.live());
-        columns.clear();
+        cells.clear();
     }
 
     public Iterable<CellName> getColumnNames()
     {
-        return Iterables.transform(columns, new Function<Column, CellName>()
+        return Iterables.transform(cells, new Function<Cell, CellName>()
         {
-            public CellName apply(Column column)
+            public CellName apply(Cell cell)
             {
-                return column.name;
+                return cell.name;
             }
         });
     }
 
-    public Iterator<Column> iterator()
+    public Iterator<Cell> iterator()
     {
-        return reversed ? Lists.reverse(columns).iterator() : columns.iterator();
+        return reversed ? Lists.reverse(cells).iterator() : cells.iterator();
     }
 
-    public Iterator<Column> iterator(ColumnSlice[] slices)
+    public Iterator<Cell> iterator(ColumnSlice[] slices)
     {
-        return new SlicesIterator(columns, getComparator(), slices, reversed);
+        return new SlicesIterator(cells, getComparator(), slices, reversed);
     }
 
-    public Iterator<Column> reverseIterator(ColumnSlice[] slices)
+    public Iterator<Cell> reverseIterator(ColumnSlice[] slices)
     {
-        return new SlicesIterator(columns, getComparator(), slices, !reversed);
+        return new SlicesIterator(cells, getComparator(), slices, !reversed);
     }
 
-    private static class SlicesIterator extends AbstractIterator<Column>
+    private static class SlicesIterator extends AbstractIterator<Cell>
     {
-        private final List<Column> list;
+        private final List<Cell> list;
         private final ColumnSlice[] slices;
         private final Comparator<Composite> comparator;
 
         private int idx = 0;
         private int previousSliceEnd = 0;
-        private Iterator<Column> currentSlice;
+        private Iterator<Cell> currentSlice;
 
-        public SlicesIterator(List<Column> list, CellNameType comparator, ColumnSlice[] slices, boolean reversed)
+        public SlicesIterator(List<Cell> list, CellNameType comparator, ColumnSlice[] slices, boolean reversed)
         {
             this.list = reversed ? Lists.reverse(list) : list;
             this.slices = slices;
             this.comparator = reversed ? comparator.reverseComparator() : comparator;
         }
 
-        protected Column computeNext()
+        protected Cell computeNext()
         {
             if (currentSlice == null)
             {
@@ -346,16 +346,16 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
         }
     }
 
-    private class ReverseSortedCollection extends AbstractCollection<Column>
+    private class ReverseSortedCollection extends AbstractCollection<Cell>
     {
         public int size()
         {
-            return columns.size();
+            return cells.size();
         }
 
-        public Iterator<Column> iterator()
+        public Iterator<Cell> iterator()
         {
-            return new Iterator<Column>()
+            return new Iterator<Cell>()
             {
                 int idx = size() - 1;
 
@@ -364,29 +364,29 @@ public class ArrayBackedSortedColumns extends AbstractThreadUnsafeSortedColumns
                     return idx >= 0;
                 }
 
-                public Column next()
+                public Cell next()
                 {
-                    return columns.get(idx--);
+                    return cells.get(idx--);
                 }
 
                 public void remove()
                 {
-                    columns.remove(idx--);
+                    cells.remove(idx--);
                 }
             };
         }
     }
 
-    private class ForwardSortedCollection extends AbstractCollection<Column>
+    private class ForwardSortedCollection extends AbstractCollection<Cell>
     {
         public int size()
         {
-            return columns.size();
+            return cells.size();
         }
 
-        public Iterator<Column> iterator()
+        public Iterator<Cell> iterator()
         {
-            return columns.iterator();
+            return cells.iterator();
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
index 5056c26..6e4fd01 100644
--- a/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
+++ b/src/java/org/apache/cassandra/db/AtomicSortedColumns.java
@@ -135,19 +135,19 @@ public class AtomicSortedColumns extends ColumnFamily
         }
     }
 
-    public void addColumn(Column column, Allocator allocator)
+    public void addColumn(Cell cell, Allocator allocator)
     {
         Holder current, modified;
         do
         {
             current = ref.get();
             modified = current.cloneMe();
-            modified.addColumn(column, allocator, SecondaryIndexManager.nullUpdater);
+            modified.addColumn(cell, allocator, SecondaryIndexManager.nullUpdater);
         }
         while (!ref.compareAndSet(current, modified));
     }
 
-    public void addAll(ColumnFamily cm, Allocator allocator, Function<Column, Column> transformation)
+    public void addAll(ColumnFamily cm, Allocator allocator, Function<Cell, Cell> transformation)
     {
         addAllWithSizeDelta(cm, allocator, transformation, SecondaryIndexManager.nullUpdater);
     }
@@ -157,7 +157,7 @@ public class AtomicSortedColumns extends ColumnFamily
      *
      *  @return the difference in size seen after merging the given columns
      */
-    public long addAllWithSizeDelta(ColumnFamily cm, Allocator allocator, Function<Column, Column> transformation, SecondaryIndexManager.Updater indexer)
+    public long addAllWithSizeDelta(ColumnFamily cm, Allocator allocator, Function<Cell, Cell> transformation, SecondaryIndexManager.Updater indexer)
     {
         /*
          * This operation needs to atomicity and isolation. To that end, we
@@ -183,16 +183,16 @@ public class AtomicSortedColumns extends ColumnFamily
 
             if (cm.deletionInfo().hasRanges())
             {
-                for (Column currentColumn : Iterables.concat(current.map.values(), cm))
+                for (Cell currentCell : Iterables.concat(current.map.values(), cm))
                 {
-                    if (cm.deletionInfo().isDeleted(currentColumn))
-                        indexer.remove(currentColumn);
+                    if (cm.deletionInfo().isDeleted(currentCell))
+                        indexer.remove(currentCell);
                 }
             }
 
-            for (Column column : cm)
+            for (Cell cell : cm)
             {
-                sizeDelta += modified.addColumn(transformation.apply(column), allocator, indexer);
+                sizeDelta += modified.addColumn(transformation.apply(cell), allocator, indexer);
                 // bail early if we know we've been beaten
                 if (ref.get() != current)
                     continue main_loop;
@@ -205,9 +205,9 @@ public class AtomicSortedColumns extends ColumnFamily
         return sizeDelta;
     }
 
-    public boolean replace(Column oldColumn, Column newColumn)
+    public boolean replace(Cell oldCell, Cell newCell)
     {
-        if (!oldColumn.name().equals(newColumn.name()))
+        if (!oldCell.name().equals(newCell.name()))
             throw new IllegalArgumentException();
 
         Holder current, modified;
@@ -216,7 +216,7 @@ public class AtomicSortedColumns extends ColumnFamily
         {
             current = ref.get();
             modified = current.cloneMe();
-            replaced = modified.map.replace(oldColumn.name(), oldColumn, newColumn);
+            replaced = modified.map.replace(oldCell.name(), oldCell, newCell);
         }
         while (!ref.compareAndSet(current, modified));
         return replaced;
@@ -233,7 +233,7 @@ public class AtomicSortedColumns extends ColumnFamily
         while (!ref.compareAndSet(current, modified));
     }
 
-    public Column getColumn(CellName name)
+    public Cell getColumn(CellName name)
     {
         return ref.get().map.get(name);
     }
@@ -243,12 +243,12 @@ public class AtomicSortedColumns extends ColumnFamily
         return ref.get().map.keySet();
     }
 
-    public Collection<Column> getSortedColumns()
+    public Collection<Cell> getSortedColumns()
     {
         return ref.get().map.values();
     }
 
-    public Collection<Column> getReverseSortedColumns()
+    public Collection<Cell> getReverseSortedColumns()
     {
         return ref.get().map.descendingMap().values();
     }
@@ -258,12 +258,12 @@ public class AtomicSortedColumns extends ColumnFamily
         return ref.get().map.size();
     }
 
-    public Iterator<Column> iterator(ColumnSlice[] slices)
+    public Iterator<Cell> iterator(ColumnSlice[] slices)
     {
         return new ColumnSlice.NavigableMapIterator(ref.get().map, slices);
     }
 
-    public Iterator<Column> reverseIterator(ColumnSlice[] slices)
+    public Iterator<Cell> reverseIterator(ColumnSlice[] slices)
     {
         return new ColumnSlice.NavigableMapIterator(ref.get().map.descendingMap(), slices);
     }
@@ -279,15 +279,15 @@ public class AtomicSortedColumns extends ColumnFamily
         // so we can safely alias one DeletionInfo.live() reference and avoid some allocations.
         private static final DeletionInfo LIVE = DeletionInfo.live();
 
-        final SnapTreeMap<CellName, Column> map;
+        final SnapTreeMap<CellName, Cell> map;
         final DeletionInfo deletionInfo;
 
         Holder(CellNameType comparator)
         {
-            this(new SnapTreeMap<CellName, Column>(comparator), LIVE);
+            this(new SnapTreeMap<CellName, Cell>(comparator), LIVE);
         }
 
-        Holder(SnapTreeMap<CellName, Column> map, DeletionInfo deletionInfo)
+        Holder(SnapTreeMap<CellName, Cell> map, DeletionInfo deletionInfo)
         {
             this.map = map;
             this.deletionInfo = deletionInfo;
@@ -303,7 +303,7 @@ public class AtomicSortedColumns extends ColumnFamily
             return new Holder(map, info);
         }
 
-        Holder with(SnapTreeMap<CellName, Column> newMap)
+        Holder with(SnapTreeMap<CellName, Cell> newMap)
         {
             return new Holder(newMap, deletionInfo);
         }
@@ -312,33 +312,33 @@ public class AtomicSortedColumns extends ColumnFamily
         // afterwards.
         Holder clear()
         {
-            return new Holder(new SnapTreeMap<CellName, Column>(map.comparator()), LIVE);
+            return new Holder(new SnapTreeMap<CellName, Cell>(map.comparator()), LIVE);
         }
 
-        long addColumn(Column column, Allocator allocator, SecondaryIndexManager.Updater indexer)
+        long addColumn(Cell cell, Allocator allocator, SecondaryIndexManager.Updater indexer)
         {
-            CellName name = column.name();
+            CellName name = cell.name();
             while (true)
             {
-                Column oldColumn = map.putIfAbsent(name, column);
-                if (oldColumn == null)
+                Cell oldCell = map.putIfAbsent(name, cell);
+                if (oldCell == null)
                 {
-                    indexer.insert(column);
-                    return column.dataSize();
+                    indexer.insert(cell);
+                    return cell.dataSize();
                 }
 
-                Column reconciledColumn = column.reconcile(oldColumn, allocator);
-                if (map.replace(name, oldColumn, reconciledColumn))
+                Cell reconciledCell = cell.reconcile(oldCell, allocator);
+                if (map.replace(name, oldCell, reconciledCell))
                 {
                     // for memtable updates we only care about oldcolumn, reconciledcolumn, but when compacting
                     // we need to make sure we update indexes no matter the order we merge
-                    if (reconciledColumn == column)
-                        indexer.update(oldColumn, reconciledColumn);
+                    if (reconciledCell == cell)
+                        indexer.update(oldCell, reconciledCell);
                     else
-                        indexer.update(column, reconciledColumn);
-                    return reconciledColumn.dataSize() - oldColumn.dataSize();
+                        indexer.update(cell, reconciledCell);
+                    return reconciledCell.dataSize() - oldCell.dataSize();
                 }
-                // We failed to replace column due to a concurrent update or a concurrent removal. Keep trying.
+                // We failed to replace cell due to a concurrent update or a concurrent removal. Keep trying.
                 // (Currently, concurrent removal should not happen (only updates), but let us support that anyway.)
             }
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/BatchlogManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BatchlogManager.java b/src/java/org/apache/cassandra/db/BatchlogManager.java
index 9bc857b..24fb0c5 100644
--- a/src/java/org/apache/cassandra/db/BatchlogManager.java
+++ b/src/java/org/apache/cassandra/db/BatchlogManager.java
@@ -128,9 +128,9 @@ public class BatchlogManager implements BatchlogManagerMBean
         ByteBuffer data = serializeRowMutations(mutations);
 
         ColumnFamily cf = ArrayBackedSortedColumns.factory.create(CFMetaData.BatchlogCf);
-        cf.addColumn(new Column(cellName(""), ByteBufferUtil.EMPTY_BYTE_BUFFER, timestamp));
-        cf.addColumn(new Column(cellName("data"), data, timestamp));
-        cf.addColumn(new Column(cellName("written_at"), writtenAt, timestamp));
+        cf.addColumn(new Cell(cellName(""), ByteBufferUtil.EMPTY_BYTE_BUFFER, timestamp));
+        cf.addColumn(new Cell(cellName("data"), data, timestamp));
+        cf.addColumn(new Cell(cellName("written_at"), writtenAt, timestamp));
 
         return new RowMutation(Keyspace.SYSTEM_KS, UUIDType.instance.decompose(uuid), cf);
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/CFRowAdder.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/CFRowAdder.java b/src/java/org/apache/cassandra/db/CFRowAdder.java
index 7c70cf6..4247822 100644
--- a/src/java/org/apache/cassandra/db/CFRowAdder.java
+++ b/src/java/org/apache/cassandra/db/CFRowAdder.java
@@ -47,7 +47,7 @@ public class CFRowAdder
 
         // If a CQL3 table, add the row marker
         if (cf.metadata().isCQL3Table())
-            cf.addColumn(new Column(cf.getComparator().rowMarker(prefix), ByteBufferUtil.EMPTY_BYTE_BUFFER, timestamp));
+            cf.addColumn(new Cell(cf.getComparator().rowMarker(prefix), ByteBufferUtil.EMPTY_BYTE_BUFFER, timestamp));
     }
 
     public CFRowAdder add(String cql3ColumnName, Object value)
@@ -73,9 +73,9 @@ public class CFRowAdder
     private CFRowAdder add(CellName name, ColumnDefinition def, Object value)
     {
         if (value == null)
-            cf.addColumn(new DeletedColumn(name, ldt, timestamp));
+            cf.addColumn(new DeletedCell(name, ldt, timestamp));
         else
-            cf.addColumn(new Column(name, ((AbstractType)def.type).decompose(value), timestamp));
+            cf.addColumn(new Cell(name, ((AbstractType)def.type).decompose(value), timestamp));
         return this;
     }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/Cell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Cell.java b/src/java/org/apache/cassandra/db/Cell.java
new file mode 100644
index 0000000..537a744
--- /dev/null
+++ b/src/java/org/apache/cassandra/db/Cell.java
@@ -0,0 +1,310 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cassandra.db;
+
+import java.io.DataInput;
+import java.io.IOError;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.security.MessageDigest;
+import java.util.Iterator;
+
+import com.google.common.collect.AbstractIterator;
+
+import org.apache.cassandra.config.CFMetaData;
+import org.apache.cassandra.db.composites.CellName;
+import org.apache.cassandra.db.composites.CellNameType;
+import org.apache.cassandra.db.marshal.*;
+import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.util.DataOutputBuffer;
+import org.apache.cassandra.serializers.MarshalException;
+import org.apache.cassandra.utils.Allocator;
+import org.apache.cassandra.utils.ByteBufferUtil;
+import org.apache.cassandra.utils.FBUtilities;
+import org.apache.cassandra.utils.HeapAllocator;
+
+/**
+ * Cell is immutable, which prevents all kinds of confusion in a multithreaded environment.
+ */
+public class Cell implements OnDiskAtom
+{
+    public static final int MAX_NAME_LENGTH = FBUtilities.MAX_UNSIGNED_SHORT;
+
+    /**
+     * For 2.0-formatted sstables (where column count is not stored), @param count should be Integer.MAX_VALUE,
+     * and we will look for the end-of-row column name marker instead of relying on that.
+     */
+    public static Iterator<OnDiskAtom> onDiskIterator(final DataInput in,
+                                                      final int count,
+                                                      final ColumnSerializer.Flag flag,
+                                                      final int expireBefore,
+                                                      final Descriptor.Version version,
+                                                      final CellNameType type)
+    {
+        return new AbstractIterator<OnDiskAtom>()
+        {
+            int i = 0;
+
+            protected OnDiskAtom computeNext()
+            {
+                if (i++ >= count)
+                    return endOfData();
+
+                OnDiskAtom atom;
+                try
+                {
+                    atom = type.onDiskAtomSerializer().deserializeFromSSTable(in, flag, expireBefore, version);
+                }
+                catch (IOException e)
+                {
+                    throw new IOError(e);
+                }
+                if (atom == null)
+                    return endOfData();
+
+                return atom;
+            }
+        };
+    }
+
+    protected final CellName name;
+    protected final ByteBuffer value;
+    protected final long timestamp;
+
+    Cell(CellName name)
+    {
+        this(name, ByteBufferUtil.EMPTY_BYTE_BUFFER);
+    }
+
+    public Cell(CellName name, ByteBuffer value)
+    {
+        this(name, value, 0);
+    }
+
+    public Cell(CellName name, ByteBuffer value, long timestamp)
+    {
+        assert name != null;
+        assert value != null;
+        this.name = name;
+        this.value = value;
+        this.timestamp = timestamp;
+    }
+
+    public Cell withUpdatedName(CellName newName)
+    {
+        return new Cell(newName, value, timestamp);
+    }
+
+    public Cell withUpdatedTimestamp(long newTimestamp)
+    {
+        return new Cell(name, value, newTimestamp);
+    }
+
+    public CellName name()
+    {
+        return name;
+    }
+
+    public ByteBuffer value()
+    {
+        return value;
+    }
+
+    public long timestamp()
+    {
+        return timestamp;
+    }
+
+    public long minTimestamp()
+    {
+        return timestamp;
+    }
+
+    public long maxTimestamp()
+    {
+        return timestamp;
+    }
+
+    public boolean isMarkedForDelete(long now)
+    {
+        return false;
+    }
+
+    public boolean isLive(long now)
+    {
+        return !isMarkedForDelete(now);
+    }
+
+    // Don't call unless the column is actually marked for delete.
+    public long getMarkedForDeleteAt()
+    {
+        return Long.MAX_VALUE;
+    }
+
+    public int dataSize()
+    {
+        return name().dataSize() + value.remaining() + TypeSizes.NATIVE.sizeof(timestamp);
+    }
+
+    public int serializedSize(CellNameType type, TypeSizes typeSizes)
+    {
+        /*
+         * Size of a column is =
+         *   size of a name (short + length of the string)
+         * + 1 byte to indicate if the column has been deleted
+         * + 8 bytes for timestamp
+         * + 4 bytes which basically indicates the size of the byte array
+         * + entire byte array.
+        */
+        int valueSize = value.remaining();
+        return ((int)type.cellSerializer().serializedSize(name, typeSizes)) + 1 + typeSizes.sizeof(timestamp) + typeSizes.sizeof(valueSize) + valueSize;
+    }
+
+    public int serializationFlags()
+    {
+        return 0;
+    }
+
+    public Cell diff(Cell cell)
+    {
+        if (timestamp() < cell.timestamp())
+            return cell;
+        return null;
+    }
+
+    public void updateDigest(MessageDigest digest)
+    {
+        digest.update(name.toByteBuffer().duplicate());
+        digest.update(value.duplicate());
+
+        DataOutputBuffer buffer = new DataOutputBuffer();
+        try
+        {
+            buffer.writeLong(timestamp);
+            buffer.writeByte(serializationFlags());
+        }
+        catch (IOException e)
+        {
+            throw new RuntimeException(e);
+        }
+        digest.update(buffer.getData(), 0, buffer.getLength());
+    }
+
+    public int getLocalDeletionTime()
+    {
+        return Integer.MAX_VALUE;
+    }
+
+    public Cell reconcile(Cell cell)
+    {
+        return reconcile(cell, HeapAllocator.instance);
+    }
+
+    public Cell reconcile(Cell cell, Allocator allocator)
+    {
+        // tombstones take precedence.  (if both are tombstones, then it doesn't matter which one we use.)
+        if (isMarkedForDelete(System.currentTimeMillis()))
+            return timestamp() < cell.timestamp() ? cell : this;
+        if (cell.isMarkedForDelete(System.currentTimeMillis()))
+            return timestamp() > cell.timestamp() ? this : cell;
+        // break ties by comparing values.
+        if (timestamp() == cell.timestamp())
+            return value().compareTo(cell.value()) < 0 ? cell : this;
+        // neither is tombstoned and timestamps are different
+        return timestamp() < cell.timestamp() ? cell : this;
+    }
+
+    @Override
+    public boolean equals(Object o)
+    {
+        if (this == o)
+            return true;
+        if (o == null || getClass() != o.getClass())
+            return false;
+
+        Cell cell = (Cell)o;
+
+        if (timestamp != cell.timestamp)
+            return false;
+        if (!name.equals(cell.name))
+            return false;
+
+        return value.equals(cell.value);
+    }
+
+    @Override
+    public int hashCode()
+    {
+        int result = name != null ? name.hashCode() : 0;
+        result = 31 * result + (value != null ? value.hashCode() : 0);
+        result = 31 * result + (int)(timestamp ^ (timestamp >>> 32));
+        return result;
+    }
+
+    public Cell localCopy(ColumnFamilyStore cfs)
+    {
+        return localCopy(cfs, HeapAllocator.instance);
+    }
+
+    public Cell localCopy(ColumnFamilyStore cfs, Allocator allocator)
+    {
+        return new Cell(name.copy(allocator), allocator.clone(value), timestamp);
+    }
+
+    public String getString(CellNameType comparator)
+    {
+        StringBuilder sb = new StringBuilder();
+        sb.append(comparator.getString(name));
+        sb.append(":");
+        sb.append(isMarkedForDelete(System.currentTimeMillis()));
+        sb.append(":");
+        sb.append(value.remaining());
+        sb.append("@");
+        sb.append(timestamp());
+        return sb.toString();
+    }
+
+    protected void validateName(CFMetaData metadata) throws MarshalException
+    {
+        metadata.comparator.validate(name());
+    }
+
+    public void validateFields(CFMetaData metadata) throws MarshalException
+    {
+        validateName(metadata);
+
+        AbstractType<?> valueValidator = metadata.getValueValidator(name());
+        if (valueValidator != null)
+            valueValidator.validate(value());
+    }
+
+    public boolean hasIrrelevantData(int gcBefore)
+    {
+        return getLocalDeletionTime() < gcBefore;
+    }
+
+    public static Cell create(CellName name, ByteBuffer value, long timestamp, int ttl, CFMetaData metadata)
+    {
+        if (ttl <= 0)
+            ttl = metadata.getDefaultTimeToLive();
+
+        return ttl > 0
+               ? new ExpiringCell(name, value, timestamp, ttl)
+               : new Cell(name, value, timestamp);
+    }
+}

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/CollationController.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/CollationController.java b/src/java/org/apache/cassandra/db/CollationController.java
index 12f53db..c7c09bf 100644
--- a/src/java/org/apache/cassandra/db/CollationController.java
+++ b/src/java/org/apache/cassandra/db/CollationController.java
@@ -176,8 +176,8 @@ public class CollationController
         for (Iterator<CellName> iterator = ((NamesQueryFilter) filter.filter).columns.iterator(); iterator.hasNext(); )
         {
             CellName filterColumn = iterator.next();
-            Column column = container.getColumn(filterColumn);
-            if (column != null && column.timestamp() > sstableTimestamp)
+            Cell cell = container.getColumn(filterColumn);
+            if (cell != null && cell.timestamp() > sstableTimestamp)
                 iterator.remove();
         }
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e50d6af1/src/java/org/apache/cassandra/db/Column.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/Column.java b/src/java/org/apache/cassandra/db/Column.java
deleted file mode 100644
index 4be1eeb..0000000
--- a/src/java/org/apache/cassandra/db/Column.java
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.cassandra.db;
-
-import java.io.DataInput;
-import java.io.IOError;
-import java.io.IOException;
-import java.nio.ByteBuffer;
-import java.security.MessageDigest;
-import java.util.Iterator;
-
-import com.google.common.collect.AbstractIterator;
-
-import org.apache.cassandra.config.CFMetaData;
-import org.apache.cassandra.db.composites.CellName;
-import org.apache.cassandra.db.composites.CellNameType;
-import org.apache.cassandra.db.marshal.*;
-import org.apache.cassandra.io.sstable.Descriptor;
-import org.apache.cassandra.io.util.DataOutputBuffer;
-import org.apache.cassandra.serializers.MarshalException;
-import org.apache.cassandra.utils.Allocator;
-import org.apache.cassandra.utils.ByteBufferUtil;
-import org.apache.cassandra.utils.FBUtilities;
-import org.apache.cassandra.utils.HeapAllocator;
-
-/**
- * Column is immutable, which prevents all kinds of confusion in a multithreaded environment.
- */
-public class Column implements OnDiskAtom
-{
-    public static final int MAX_NAME_LENGTH = FBUtilities.MAX_UNSIGNED_SHORT;
-
-    /**
-     * For 2.0-formatted sstables (where column count is not stored), @param count should be Integer.MAX_VALUE,
-     * and we will look for the end-of-row column name marker instead of relying on that.
-     */
-    public static Iterator<OnDiskAtom> onDiskIterator(final DataInput in,
-                                                      final int count,
-                                                      final ColumnSerializer.Flag flag,
-                                                      final int expireBefore,
-                                                      final Descriptor.Version version,
-                                                      final CellNameType type)
-    {
-        return new AbstractIterator<OnDiskAtom>()
-        {
-            int i = 0;
-
-            protected OnDiskAtom computeNext()
-            {
-                if (i++ >= count)
-                    return endOfData();
-
-                OnDiskAtom atom;
-                try
-                {
-                    atom = type.onDiskAtomSerializer().deserializeFromSSTable(in, flag, expireBefore, version);
-                }
-                catch (IOException e)
-                {
-                    throw new IOError(e);
-                }
-                if (atom == null)
-                    return endOfData();
-
-                return atom;
-            }
-        };
-    }
-
-    protected final CellName name;
-    protected final ByteBuffer value;
-    protected final long timestamp;
-
-    Column(CellName name)
-    {
-        this(name, ByteBufferUtil.EMPTY_BYTE_BUFFER);
-    }
-
-    public Column(CellName name, ByteBuffer value)
-    {
-        this(name, value, 0);
-    }
-
-    public Column(CellName name, ByteBuffer value, long timestamp)
-    {
-        assert name != null;
-        assert value != null;
-        this.name = name;
-        this.value = value;
-        this.timestamp = timestamp;
-    }
-
-    public Column withUpdatedName(CellName newName)
-    {
-        return new Column(newName, value, timestamp);
-    }
-
-    public Column withUpdatedTimestamp(long newTimestamp)
-    {
-        return new Column(name, value, newTimestamp);
-    }
-
-    public CellName name()
-    {
-        return name;
-    }
-
-    public ByteBuffer value()
-    {
-        return value;
-    }
-
-    public long timestamp()
-    {
-        return timestamp;
-    }
-
-    public long minTimestamp()
-    {
-        return timestamp;
-    }
-
-    public long maxTimestamp()
-    {
-        return timestamp;
-    }
-
-    public boolean isMarkedForDelete(long now)
-    {
-        return false;
-    }
-
-    public boolean isLive(long now)
-    {
-        return !isMarkedForDelete(now);
-    }
-
-    // Don't call unless the column is actually marked for delete.
-    public long getMarkedForDeleteAt()
-    {
-        return Long.MAX_VALUE;
-    }
-
-    public int dataSize()
-    {
-        return name().dataSize() + value.remaining() + TypeSizes.NATIVE.sizeof(timestamp);
-    }
-
-    public int serializedSize(CellNameType type, TypeSizes typeSizes)
-    {
-        /*
-         * Size of a column is =
-         *   size of a name (short + length of the string)
-         * + 1 byte to indicate if the column has been deleted
-         * + 8 bytes for timestamp
-         * + 4 bytes which basically indicates the size of the byte array
-         * + entire byte array.
-        */
-        int valueSize = value.remaining();
-        return ((int)type.cellSerializer().serializedSize(name, typeSizes)) + 1 + typeSizes.sizeof(timestamp) + typeSizes.sizeof(valueSize) + valueSize;
-    }
-
-    public int serializationFlags()
-    {
-        return 0;
-    }
-
-    public Column diff(Column column)
-    {
-        if (timestamp() < column.timestamp())
-            return column;
-        return null;
-    }
-
-    public void updateDigest(MessageDigest digest)
-    {
-        digest.update(name.toByteBuffer().duplicate());
-        digest.update(value.duplicate());
-
-        DataOutputBuffer buffer = new DataOutputBuffer();
-        try
-        {
-            buffer.writeLong(timestamp);
-            buffer.writeByte(serializationFlags());
-        }
-        catch (IOException e)
-        {
-            throw new RuntimeException(e);
-        }
-        digest.update(buffer.getData(), 0, buffer.getLength());
-    }
-
-    public int getLocalDeletionTime()
-    {
-        return Integer.MAX_VALUE;
-    }
-
-    public Column reconcile(Column column)
-    {
-        return reconcile(column, HeapAllocator.instance);
-    }
-
-    public Column reconcile(Column column, Allocator allocator)
-    {
-        // tombstones take precedence.  (if both are tombstones, then it doesn't matter which one we use.)
-        if (isMarkedForDelete(System.currentTimeMillis()))
-            return timestamp() < column.timestamp() ? column : this;
-        if (column.isMarkedForDelete(System.currentTimeMillis()))
-            return timestamp() > column.timestamp() ? this : column;
-        // break ties by comparing values.
-        if (timestamp() == column.timestamp())
-            return value().compareTo(column.value()) < 0 ? column : this;
-        // neither is tombstoned and timestamps are different
-        return timestamp() < column.timestamp() ? column : this;
-    }
-
-    @Override
-    public boolean equals(Object o)
-    {
-        if (this == o)
-            return true;
-        if (o == null || getClass() != o.getClass())
-            return false;
-
-        Column column = (Column)o;
-
-        if (timestamp != column.timestamp)
-            return false;
-        if (!name.equals(column.name))
-            return false;
-
-        return value.equals(column.value);
-    }
-
-    @Override
-    public int hashCode()
-    {
-        int result = name != null ? name.hashCode() : 0;
-        result = 31 * result + (value != null ? value.hashCode() : 0);
-        result = 31 * result + (int)(timestamp ^ (timestamp >>> 32));
-        return result;
-    }
-
-    public Column localCopy(ColumnFamilyStore cfs)
-    {
-        return localCopy(cfs, HeapAllocator.instance);
-    }
-
-    public Column localCopy(ColumnFamilyStore cfs, Allocator allocator)
-    {
-        return new Column(name.copy(allocator), allocator.clone(value), timestamp);
-    }
-
-    public String getString(CellNameType comparator)
-    {
-        StringBuilder sb = new StringBuilder();
-        sb.append(comparator.getString(name));
-        sb.append(":");
-        sb.append(isMarkedForDelete(System.currentTimeMillis()));
-        sb.append(":");
-        sb.append(value.remaining());
-        sb.append("@");
-        sb.append(timestamp());
-        return sb.toString();
-    }
-
-    protected void validateName(CFMetaData metadata) throws MarshalException
-    {
-        metadata.comparator.validate(name());
-    }
-
-    public void validateFields(CFMetaData metadata) throws MarshalException
-    {
-        validateName(metadata);
-
-        AbstractType<?> valueValidator = metadata.getValueValidator(name());
-        if (valueValidator != null)
-            valueValidator.validate(value());
-    }
-
-    public boolean hasIrrelevantData(int gcBefore)
-    {
-        return getLocalDeletionTime() < gcBefore;
-    }
-
-    public static Column create(CellName name, ByteBuffer value, long timestamp, int ttl, CFMetaData metadata)
-    {
-        if (ttl <= 0)
-            ttl = metadata.getDefaultTimeToLive();
-
-        return ttl > 0
-               ? new ExpiringColumn(name, value, timestamp, ttl)
-               : new Column(name, value, timestamp);
-    }
-}