You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2013/04/24 03:15:18 UTC
[06/15] git commit: RIE.DeletionInfo -> DeletionTime
RIE.DeletionInfo -> DeletionTime
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/573ddbfb
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/573ddbfb
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/573ddbfb
Branch: refs/heads/cassandra-1.2
Commit: 573ddbfb057ac1858e910f569d7204df1d87519e
Parents: e30c730
Author: Jonathan Ellis <jb...@apache.org>
Authored: Mon Apr 22 08:47:08 2013 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Apr 23 10:21:42 2013 -0500
----------------------------------------------------------------------
.../cassandra/db/AbstractColumnContainer.java | 5 ++
src/java/org/apache/cassandra/db/DeletionInfo.java | 13 ++----
src/java/org/apache/cassandra/db/DeletionTime.java | 4 +-
.../org/apache/cassandra/db/RowIndexEntry.java | 30 +++++++-------
.../db/columniterator/IndexedSliceReader.java | 2 +-
.../db/columniterator/SSTableNamesIterator.java | 2 +-
.../apache/cassandra/io/sstable/SSTableWriter.java | 2 +-
.../org/apache/cassandra/cache/ObjectSizeTest.java | 3 +-
8 files changed, 33 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AbstractColumnContainer.java b/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
index 09d0a38..3bb8590 100644
--- a/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
+++ b/src/java/org/apache/cassandra/db/AbstractColumnContainer.java
@@ -51,6 +51,11 @@ public abstract class AbstractColumnContainer implements IColumnContainer, IIter
columns.delete(delInfo);
}
+ public void delete(DeletionTime deletionTime)
+ {
+ delete(new DeletionInfo(deletionTime));
+ }
+
// Contrarily to delete(), this will use the provided info even if those
// are older that the current ones. Used for SuperColumn in QueryFilter.
// delete() is probably the right method in all other cases.
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/DeletionInfo.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/DeletionInfo.java b/src/java/org/apache/cassandra/db/DeletionInfo.java
index 405645f..9cd4545 100644
--- a/src/java/org/apache/cassandra/db/DeletionInfo.java
+++ b/src/java/org/apache/cassandra/db/DeletionInfo.java
@@ -67,6 +67,11 @@ public class DeletionInfo
assert comparator != null;
}
+ public DeletionInfo(DeletionTime topLevel)
+ {
+ this(topLevel, IntervalTree.<ByteBuffer, DeletionTime, RangeTombstone>emptyTree());
+ }
+
private DeletionInfo(DeletionTime topLevel, IntervalTree<ByteBuffer, DeletionTime, RangeTombstone> ranges)
{
this.topLevel = topLevel;
@@ -258,14 +263,6 @@ public class DeletionInfo
return topLevel.equals(that.topLevel) && ranges.equals(that.ranges);
}
- public long memorySize()
- {
- long fields = topLevel.memorySize() + (2 * ObjectSizes.getReferenceSize());
- if (ranges != null && !ranges.isEmpty())
- fields += ObjectSizes.measureDeep(ranges);
- return ObjectSizes.getFieldSize(fields);
- }
-
@Override
public final int hashCode()
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/DeletionTime.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/DeletionTime.java b/src/java/org/apache/cassandra/db/DeletionTime.java
index 5f39071..bcb1b01 100644
--- a/src/java/org/apache/cassandra/db/DeletionTime.java
+++ b/src/java/org/apache/cassandra/db/DeletionTime.java
@@ -21,6 +21,7 @@ import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
+import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Objects;
import org.apache.cassandra.io.ISerializer;
@@ -35,7 +36,8 @@ public class DeletionTime implements Comparable<DeletionTime>
public static final ISerializer<DeletionTime> serializer = new Serializer();
- DeletionTime(long markedForDeleteAt, int localDeletionTime)
+ @VisibleForTesting
+ public DeletionTime(long markedForDeleteAt, int localDeletionTime)
{
this.markedForDeleteAt = markedForDeleteAt;
this.localDeletionTime = localDeletionTime;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/RowIndexEntry.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/RowIndexEntry.java b/src/java/org/apache/cassandra/db/RowIndexEntry.java
index 2444bcb..fefa45d 100644
--- a/src/java/org/apache/cassandra/db/RowIndexEntry.java
+++ b/src/java/org/apache/cassandra/db/RowIndexEntry.java
@@ -53,16 +53,16 @@ public class RowIndexEntry implements IMeasurableMemory
return 0;
}
- public static RowIndexEntry create(long position, DeletionInfo deletionInfo, ColumnIndex index)
+ public static RowIndexEntry create(long position, DeletionTime deletionTime, ColumnIndex index)
{
assert index != null;
- assert deletionInfo != null;
+ assert deletionTime != null;
// we only consider the columns summary when determining whether to create an IndexedEntry,
// since if there are insufficient columns to be worth indexing we're going to seek to
// the beginning of the row anyway, so we might as well read the tombstone there as well.
if (index.columnsIndex.size() > 1)
- return new IndexedEntry(position, deletionInfo, index.columnsIndex, index.bloomFilter);
+ return new IndexedEntry(position, deletionTime, index.columnsIndex, index.bloomFilter);
else
return new RowIndexEntry(position);
}
@@ -76,7 +76,7 @@ public class RowIndexEntry implements IMeasurableMemory
return !columnsIndex().isEmpty();
}
- public DeletionInfo deletionInfo()
+ public DeletionTime deletionTime()
{
throw new UnsupportedOperationException();
}
@@ -105,7 +105,7 @@ public class RowIndexEntry implements IMeasurableMemory
if (rie.isIndexed())
{
dos.writeInt(rie.promotedSize());
- DeletionInfo.serializer().serializeForSSTable(rie.deletionInfo(), dos);
+ DeletionTime.serializer.serialize(rie.deletionTime(), dos);
dos.writeInt(rie.columnsIndex().size());
for (IndexHelper.IndexInfo info : rie.columnsIndex())
info.serialize(dos);
@@ -125,13 +125,13 @@ public class RowIndexEntry implements IMeasurableMemory
int size = dis.readInt();
if (size > 0)
{
- DeletionInfo delInfo = DeletionInfo.serializer().deserializeFromSSTable(dis, version);
+ DeletionTime deletionTime = DeletionTime.serializer.deserialize(dis);
int entries = dis.readInt();
List<IndexHelper.IndexInfo> columnsIndex = new ArrayList<IndexHelper.IndexInfo>(entries);
for (int i = 0; i < entries; i++)
columnsIndex.add(IndexHelper.IndexInfo.deserialize(dis));
IFilter bf = FilterFactory.deserialize(dis, version.filterType, false);
- return new IndexedEntry(position, delInfo, columnsIndex, bf);
+ return new IndexedEntry(position, deletionTime, columnsIndex, bf);
}
else
{
@@ -166,24 +166,24 @@ public class RowIndexEntry implements IMeasurableMemory
*/
private static class IndexedEntry extends RowIndexEntry
{
- private final DeletionInfo deletionInfo;
+ private final DeletionTime deletionTime;
private final List<IndexHelper.IndexInfo> columnsIndex;
private final IFilter bloomFilter;
- private IndexedEntry(long position, DeletionInfo deletionInfo, List<IndexHelper.IndexInfo> columnsIndex, IFilter bloomFilter)
+ private IndexedEntry(long position, DeletionTime deletionTime, List<IndexHelper.IndexInfo> columnsIndex, IFilter bloomFilter)
{
super(position);
- assert deletionInfo != null;
+ assert deletionTime != null;
assert columnsIndex != null && columnsIndex.size() > 1;
- this.deletionInfo = deletionInfo;
+ this.deletionTime = deletionTime;
this.columnsIndex = columnsIndex;
this.bloomFilter = bloomFilter;
}
@Override
- public DeletionInfo deletionInfo()
+ public DeletionTime deletionTime()
{
- return deletionInfo;
+ return deletionTime;
}
@Override
@@ -202,7 +202,7 @@ public class RowIndexEntry implements IMeasurableMemory
public int promotedSize()
{
TypeSizes typeSizes = TypeSizes.NATIVE;
- long size = DeletionTime.serializer.serializedSize(deletionInfo.getTopLevelDeletion(), typeSizes);
+ long size = DeletionTime.serializer.serializedSize(deletionTime, typeSizes);
size += typeSizes.sizeof(columnsIndex.size()); // number of entries
for (IndexHelper.IndexInfo info : columnsIndex)
size += info.serializedSize(typeSizes);
@@ -218,7 +218,7 @@ public class RowIndexEntry implements IMeasurableMemory
for (IndexHelper.IndexInfo idx : columnsIndex)
internal += idx.memorySize();
long listSize = ObjectSizes.getFieldSize(ObjectSizes.getArraySize(columnsIndex.size(), internal) + 4);
- return ObjectSizes.getFieldSize(deletionInfo.memorySize() + listSize);
+ return ObjectSizes.getFieldSize(deletionTime.memorySize() + listSize);
}
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java b/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
index 7289ab0..1c3ff3e 100644
--- a/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
+++ b/src/java/org/apache/cassandra/db/columniterator/IndexedSliceReader.java
@@ -89,7 +89,7 @@ class IndexedSliceReader extends AbstractIterator<OnDiskAtom> implements OnDiskA
else
{
this.emptyColumnFamily = ColumnFamily.create(sstable.metadata);
- emptyColumnFamily.delete(indexEntry.deletionInfo());
+ emptyColumnFamily.delete(indexEntry.deletionTime());
fetcher = new IndexedBlockFetcher(indexEntry.position);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java b/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
index da4631d..5495458 100644
--- a/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
+++ b/src/java/org/apache/cassandra/db/columniterator/SSTableNamesIterator.java
@@ -155,7 +155,7 @@ public class SSTableNamesIterator extends SimpleAbstractColumnIterator implement
else
{
cf = ColumnFamily.create(sstable.metadata);
- cf.delete(indexEntry.deletionInfo());
+ cf.delete(indexEntry.deletionTime());
}
List<OnDiskAtom> result = new ArrayList<OnDiskAtom>();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
index c64fd27..2422f70 100644
--- a/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
+++ b/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
@@ -143,7 +143,7 @@ public class SSTableWriter extends SSTable
if (logger.isTraceEnabled())
logger.trace("wrote " + decoratedKey + " at " + dataPosition);
- RowIndexEntry entry = RowIndexEntry.create(dataPosition, delInfo, index);
+ RowIndexEntry entry = RowIndexEntry.create(dataPosition, delInfo.getTopLevelDeletion(), index);
iwriter.append(decoratedKey, entry);
dbuilder.addPotentialBoundary(dataPosition);
return entry;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/573ddbfb/test/unit/org/apache/cassandra/cache/ObjectSizeTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/cache/ObjectSizeTest.java b/test/unit/org/apache/cassandra/cache/ObjectSizeTest.java
index 398b395..d925295 100644
--- a/test/unit/org/apache/cassandra/cache/ObjectSizeTest.java
+++ b/test/unit/org/apache/cassandra/cache/ObjectSizeTest.java
@@ -6,6 +6,7 @@ import java.util.UUID;
import junit.framework.Assert;
import org.apache.cassandra.db.DeletionInfo;
+import org.apache.cassandra.db.DeletionTime;
import org.apache.cassandra.db.RowIndexEntry;
import org.apache.cassandra.utils.ObjectSizes;
import org.github.jamm.MemoryMeter;
@@ -56,7 +57,7 @@ public class ObjectSizeTest
@Test
public void testKeyCacheValueWithDelInfo()
{
- RowIndexEntry entry = RowIndexEntry.create(123, new DeletionInfo(123, 123), null);
+ RowIndexEntry entry = RowIndexEntry.create(123, new DeletionTime(123, 123), null);
long size = entry.memorySize();
long size2 = meter.measureDeep(entry);
Assert.assertEquals(size, size2);