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();