Author: jbellis
Date: Wed Jun 16 15:26:53 2010
New Revision: 955265

URL: http://svn.apache.org/viewvc?rev=955265&view=rev
Log:
r/m 'object count' abomination.  fix BF serialization to only use top-level 
columns (since those are the only ones it's ever checked for)
patch by jbellis; reviewed by Stu Hood for CASSANDRA-16

Modified:
    cassandra/trunk/src/java/org/apache/cassandra/db/Column.java
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java
    cassandra/trunk/src/java/org/apache/cassandra/db/ColumnIndexer.java
    cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java
    cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Column.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Column.java?rev=955265&r1=955264&r2=955265&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Column.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Column.java Wed Jun 16 
15:26:53 2010
@@ -92,11 +92,6 @@ public class Column implements IColumn
         throw new UnsupportedOperationException("This operation is unsupported 
on simple columns.");
     }
 
-    public int getObjectCount()
-    {
-        return 1;
-    }
-
     public IClock clock()
     {
         return clock;

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=955265&r1=955264&r2=955265&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamily.java Wed Jun 
16 15:26:53 2010
@@ -154,13 +154,7 @@ public class ColumnFamily implements ICo
 
     int getColumnCount()
     {
-        if (!isSuper())
-            return columns.size();
-
-        int count = 0;
-        for (IColumn column: columns.values())
-            count += column.getObjectCount();
-        return count;
+        return columns.size();
     }
 
     public boolean isSuper()

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnIndexer.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnIndexer.java?rev=955265&r1=955264&r2=955265&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnIndexer.java 
(original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnIndexer.java Wed Jun 
16 15:26:53 2010
@@ -58,11 +58,7 @@ public class ColumnIndexer
     public static void serializeInternal(ColumnFamily columnFamily, DataOutput 
dos) throws IOException
     {
         Collection<IColumn> columns = columnFamily.getSortedColumns();
-        int columnCount = 0;
-        for (IColumn column : columns)
-        {
-            columnCount += column.getObjectCount();
-        }
+        int columnCount = columns.size();
 
         BloomFilter bf = BloomFilter.getFilter(columnCount, 4);
 
@@ -75,30 +71,15 @@ public class ColumnIndexer
             return;
         }
 
-        /*
-         * Maintains a list of ColumnIndexInfo objects for the columns in this
-         * column family. The key is the column name and the position is the
-         * relative offset of that column name from the start of the list.
-         * We do this so that we don't read all the columns into memory.
-        */
+        // update bloom filter and create a list of IndexInfo objects marking 
the first and last column
+        // in each block of ColumnIndexSize
         List<IndexHelper.IndexInfo> indexList = new 
ArrayList<IndexHelper.IndexInfo>();
-
         int endPosition = 0, startPosition = -1;
         int indexSizeInBytes = 0;
         IColumn lastColumn = null, firstColumn = null;
-        /* column offsets at the right thresholds into the index map. */
         for (IColumn column : columns)
         {
             bf.add(column.name());
-            /* If this is SuperColumn type Column Family we need to get the 
subColumns too. */
-            if (column instanceof SuperColumn)
-            {
-                Collection<IColumn> subColumns = column.getSubColumns();
-                for (IColumn subColumn : subColumns)
-                {
-                    bf.add(subColumn.name());
-                }
-            }
 
             if (firstColumn == null)
             {

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java?rev=955265&r1=955264&r2=955265&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/IColumn.java Wed Jun 16 
15:26:53 2010
@@ -40,7 +40,6 @@ public interface IColumn
     public IColumn getSubColumn(byte[] columnName);
     public void addColumn(IColumn column);
     public IColumn diff(IColumn column);
-    public int getObjectCount();
     public void updateDigest(MessageDigest digest);
     public int getLocalDeletionTime(); // for tombstone GC, so int is 
sufficient granularity
     public String getString(AbstractType comparator);

Modified: cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java
URL: 
http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java?rev=955265&r1=955264&r2=955265&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/SuperColumn.java Wed Jun 
16 15:26:53 2010
@@ -203,11 +203,6 @@ public class SuperColumn implements ICol
         FBUtilities.atomicSetMax(markedForDeleteAt, 
column.getMarkedForDeleteAt());
     }
 
-    public int getObjectCount()
-    {
-       return 1 + columns_.size();
-    }
-
     public IClock getMarkedForDeleteAt()
     {
         return markedForDeleteAt.get();


Reply via email to