org.apache.cassandra.db.compaction
Class LazilyCompactedRow

java.lang.Object
  extended by org.apache.cassandra.db.compaction.AbstractCompactedRow
      extended by org.apache.cassandra.db.compaction.LazilyCompactedRow
All Implemented Interfaces:
java.lang.Iterable<IColumn>, IIterableColumns

public class LazilyCompactedRow
extends AbstractCompactedRow
implements IIterableColumns

LazilyCompactedRow only computes the row bloom filter and column index in memory (at construction time); it does this by reading one column at a time from each of the rows being compacted, and merging them as it does so. So the most we have in memory at a time is the bloom filter, the index, and one column from each pre-compaction row. When write() or update() is called, a second pass is made over the pre-compaction rows to write the merged columns or update the hash, again with at most one column from each row deserialized at a time.


Field Summary
 
Fields inherited from class org.apache.cassandra.db.compaction.AbstractCompactedRow
key
 
Constructor Summary
LazilyCompactedRow(CompactionController controller, java.util.List<SSTableIdentityIterator> rows)
           
 
Method Summary
 int columnCount()
           
 AbstractType getComparator()
           
 int getEstimatedColumnCount()
           
 boolean isEmpty()
           
 java.util.Iterator<IColumn> iterator()
           
 void update(java.security.MessageDigest digest)
          update @param digest with the data bytes of the row (not including row key or row size)
 void write(java.io.DataOutput out)
          write the row (size + column index + filter + column data, but NOT row key) to @param out
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LazilyCompactedRow

public LazilyCompactedRow(CompactionController controller,
                          java.util.List<SSTableIdentityIterator> rows)
Method Detail

write

public void write(java.io.DataOutput out)
           throws java.io.IOException
Description copied from class: AbstractCompactedRow
write the row (size + column index + filter + column data, but NOT row key) to @param out

Specified by:
write in class AbstractCompactedRow
Throws:
java.io.IOException

update

public void update(java.security.MessageDigest digest)
Description copied from class: AbstractCompactedRow
update @param digest with the data bytes of the row (not including row key or row size)

Specified by:
update in class AbstractCompactedRow

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in class AbstractCompactedRow
Returns:
true if there are no columns in the row AND there are no row-level tombstones to be preserved

getEstimatedColumnCount

public int getEstimatedColumnCount()
Specified by:
getEstimatedColumnCount in interface IIterableColumns

getComparator

public AbstractType getComparator()
Specified by:
getComparator in interface IIterableColumns

iterator

public java.util.Iterator<IColumn> iterator()
Specified by:
iterator in interface java.lang.Iterable<IColumn>

columnCount

public int columnCount()
Specified by:
columnCount in class AbstractCompactedRow
Returns:
the number of columns in the row


Copyright © 2011 The Apache Software Foundation