You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2014/04/30 21:14:22 UTC
[1/2] git commit: Optimize Cell liveness checks and clean up Cell
Repository: cassandra
Updated Branches:
refs/heads/trunk cf3f5b6ef -> b35486a19
Optimize Cell liveness checks and clean up Cell
patch by Aleksey Yeschenko; reviewed by Benedict Elliott Smith for
CASSANDRA-7119
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4485e6db
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4485e6db
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4485e6db
Branch: refs/heads/trunk
Commit: 4485e6dbfed89c9137a58412210e56ae88cfe217
Parents: 9872b74
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Apr 30 21:06:46 2014 +0200
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Apr 30 21:06:46 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../apache/cassandra/cql/QueryProcessor.java | 4 +-
.../cassandra/cql3/statements/Selection.java | 2 +-
.../org/apache/cassandra/db/AbstractCell.java | 39 +++++---------------
.../cassandra/db/BufferCounterUpdateCell.java | 6 +--
.../apache/cassandra/db/BufferDeletedCell.java | 8 ++--
.../apache/cassandra/db/BufferExpiringCell.java | 8 ++--
src/java/org/apache/cassandra/db/Cell.java | 9 +----
.../apache/cassandra/db/CounterMutation.java | 2 +-
.../cassandra/db/HintedHandOffManager.java | 2 +-
.../apache/cassandra/db/NativeDeletedCell.java | 8 ++--
.../apache/cassandra/db/NativeExpiringCell.java | 8 ++--
.../db/compaction/LazilyCompactedRow.java | 5 +--
.../db/composites/AbstractCellNameType.java | 4 +-
.../AbstractSimplePerColumnSecondaryIndex.java | 3 +-
.../db/index/SecondaryIndexManager.java | 8 ++--
.../CompositesIndexOnCollectionKey.java | 4 +-
.../CompositesIndexOnCollectionValue.java | 10 ++---
.../composites/CompositesIndexOnRegular.java | 8 +---
.../db/index/composites/CompositesSearcher.java | 8 +---
.../cassandra/db/index/keys/KeysIndex.java | 8 +---
.../cassandra/db/index/keys/KeysSearcher.java | 2 +-
.../apache/cassandra/service/CacheService.java | 2 +-
.../cassandra/thrift/CassandraServer.java | 10 ++---
.../apache/cassandra/db/ColumnFamilyTest.java | 5 ++-
.../apache/cassandra/db/CounterCellTest.java | 8 ++--
.../apache/cassandra/db/RangeTombstoneTest.java | 2 +-
.../org/apache/cassandra/db/RemoveCellTest.java | 14 +++----
.../apache/cassandra/db/RemoveSubCellTest.java | 5 ++-
test/unit/org/apache/cassandra/db/RowTest.java | 5 ++-
.../db/compaction/CompactionsPurgeTest.java | 6 +--
.../db/index/PerRowSecondaryIndexTest.java | 15 +++-----
.../cassandra/service/QueryPagerTest.java | 2 +-
33 files changed, 92 insertions(+), 139 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index a4811f6..34533cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -55,6 +55,7 @@
* Multi-threaded scrub/cleanup/upgradesstables (CASSANDRA-5547)
* Optimize cellname comparison (CASSANDRA-6934)
* Native protocol v3 (CASSANDRA-6855)
+ * Optimize Cell liveness checks and clean up Cell (CASSANDRA-7119)
Merged from 2.0:
* Allow overriding cassandra-rackdc.properties file (CASSANDRA-7072)
* Set JMX RMI port to 7199 (CASSANDRA-7087)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/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 3b35555..3c1d555 100644
--- a/src/java/org/apache/cassandra/cql/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql/QueryProcessor.java
@@ -469,7 +469,7 @@ public class QueryProcessor
{
for (org.apache.cassandra.db.Cell c : row.cf.getSortedColumns())
{
- if (c.isMarkedForDelete(now))
+ if (!c.isLive(now))
continue;
ColumnDefinition cd = metadata.getColumnDefinition(c.name());
@@ -515,7 +515,7 @@ public class QueryProcessor
if (cd != null)
result.schema.value_types.put(nameBytes, TypeParser.getShortName(cd.type));
org.apache.cassandra.db.Cell c = row.cf.getColumn(name);
- if (c == null || c.isMarkedForDelete(System.currentTimeMillis()))
+ if (c == null || !c.isLive())
thriftColumns.add(new Column().setName(nameBytes));
else
thriftColumns.add(thriftify(c));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/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 c506cc6..af1e621 100644
--- a/src/java/org/apache/cassandra/cql3/statements/Selection.java
+++ b/src/java/org/apache/cassandra/cql3/statements/Selection.java
@@ -315,7 +315,7 @@ public abstract class Selection
private boolean isDead(Cell c)
{
- return c == null || c.isMarkedForDelete(now);
+ return c == null || !c.isLive(now);
}
public void newRow() throws InvalidRequestException
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/AbstractCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/AbstractCell.java b/src/java/org/apache/cassandra/db/AbstractCell.java
index 1075278..238b8c0 100644
--- a/src/java/org/apache/cassandra/db/AbstractCell.java
+++ b/src/java/org/apache/cassandra/db/AbstractCell.java
@@ -63,32 +63,21 @@ public abstract class AbstractCell implements Cell
};
}
- @Override
- public boolean isMarkedForDelete(long now)
+ public boolean isLive()
{
- return false;
+ return true;
}
- @Override
public boolean isLive(long now)
{
- return !isMarkedForDelete(now);
- }
-
- // Don't call unless the column is actually marked for delete.
- @Override
- public long getMarkedForDeleteAt()
- {
- return Long.MAX_VALUE;
+ return true;
}
- @Override
public int cellDataSize()
{
return name().dataSize() + value().remaining() + TypeSizes.NATIVE.sizeof(timestamp());
}
- @Override
public int serializedSize(CellNameType type, TypeSizes typeSizes)
{
/*
@@ -103,13 +92,11 @@ public abstract class AbstractCell implements Cell
return ((int)type.cellSerializer().serializedSize(name(), typeSizes)) + 1 + typeSizes.sizeof(timestamp()) + typeSizes.sizeof(valueSize) + valueSize;
}
- @Override
public int serializationFlags()
{
return 0;
}
- @Override
public Cell diff(Cell cell)
{
if (timestamp() < cell.timestamp())
@@ -117,7 +104,6 @@ public abstract class AbstractCell implements Cell
return null;
}
- @Override
public void updateDigest(MessageDigest digest)
{
digest.update(name().toByteBuffer().duplicate());
@@ -127,19 +113,17 @@ public abstract class AbstractCell implements Cell
FBUtilities.updateWithByte(digest, serializationFlags());
}
- @Override
public int getLocalDeletionTime()
{
return Integer.MAX_VALUE;
}
- @Override
public Cell reconcile(Cell cell)
{
// tombstones take precedence. (if both are tombstones, then it doesn't matter which one we use.)
- if (isMarkedForDelete(System.currentTimeMillis()))
+ if (!isLive())
return timestamp() < cell.timestamp() ? cell : this;
- if (cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (!cell.isLive())
return timestamp() > cell.timestamp() ? this : cell;
// break ties by comparing values.
if (timestamp() == cell.timestamp())
@@ -164,23 +148,20 @@ public abstract class AbstractCell implements Cell
throw new UnsupportedOperationException();
}
- @Override
public String getString(CellNameType comparator)
{
return String.format("%s:%b:%d@%d",
- comparator.getString(name()),
- isMarkedForDelete(System.currentTimeMillis()),
- value().remaining(),
- timestamp());
+ comparator.getString(name()),
+ !isLive(),
+ value().remaining(),
+ timestamp());
}
- @Override
public void validateName(CFMetaData metadata) throws MarshalException
{
metadata.comparator.validate(name());
}
- @Override
public void validateFields(CFMetaData metadata) throws MarshalException
{
validateName(metadata);
@@ -225,7 +206,7 @@ public abstract class AbstractCell implements Cell
assert (b instanceof CounterCell) || (b instanceof DeletedCell) : "Wrong class type: " + b.getClass();
// live + tombstone: track last tombstone
- if (b.isMarkedForDelete(Long.MIN_VALUE)) // cannot be an expired cell, so the current time is irrelevant
+ if (!b.isLive()) // cannot be an expired cell, so the current time is irrelevant
{
// live < tombstone
if (a.timestamp() < b.timestamp())
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/BufferCounterUpdateCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BufferCounterUpdateCell.java b/src/java/org/apache/cassandra/db/BufferCounterUpdateCell.java
index 44ab83e..24c9fad 100644
--- a/src/java/org/apache/cassandra/db/BufferCounterUpdateCell.java
+++ b/src/java/org/apache/cassandra/db/BufferCounterUpdateCell.java
@@ -55,16 +55,16 @@ public class BufferCounterUpdateCell extends BufferCell implements CounterUpdate
public Cell reconcile(Cell cell)
{
// The only time this could happen is if a batchAdd ships two
- // increment for the same cell. Hence we simply sums the delta.
+ // increment for the same cell. Hence we simply sums the delta and the timestamps.
// tombstones take precedence
- if (cell.isMarkedForDelete(Long.MIN_VALUE)) // can't be an expired cell, so the current time is irrelevant
+ if (!cell.isLive()) // can't be an expired cell, so the current time is irrelevant
return timestamp > cell.timestamp() ? this : cell;
// neither is tombstoned
assert cell instanceof CounterUpdateCell : "Wrong class type.";
CounterUpdateCell c = (CounterUpdateCell) cell;
- return new BufferCounterUpdateCell(name, delta() + c.delta(), Math.max(timestamp, c.timestamp()));
+ return new BufferCounterUpdateCell(name, delta() + c.delta(), timestamp + c.timestamp());
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/BufferDeletedCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BufferDeletedCell.java b/src/java/org/apache/cassandra/db/BufferDeletedCell.java
index a6518de..bcc170f 100644
--- a/src/java/org/apache/cassandra/db/BufferDeletedCell.java
+++ b/src/java/org/apache/cassandra/db/BufferDeletedCell.java
@@ -54,15 +54,15 @@ public class BufferDeletedCell extends BufferCell implements DeletedCell
}
@Override
- public boolean isMarkedForDelete(long now)
+ public boolean isLive()
{
- return true;
+ return false;
}
@Override
- public long getMarkedForDeleteAt()
+ public boolean isLive(long now)
{
- return timestamp;
+ return false;
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/BufferExpiringCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/BufferExpiringCell.java b/src/java/org/apache/cassandra/db/BufferExpiringCell.java
index 95ed45a..38d84f4 100644
--- a/src/java/org/apache/cassandra/db/BufferExpiringCell.java
+++ b/src/java/org/apache/cassandra/db/BufferExpiringCell.java
@@ -114,15 +114,15 @@ public class BufferExpiringCell extends BufferCell implements ExpiringCell
}
@Override
- public boolean isMarkedForDelete(long now)
+ public boolean isLive()
{
- return (int) (now / 1000) >= getLocalDeletionTime();
+ return isLive(System.currentTimeMillis());
}
@Override
- public long getMarkedForDeleteAt()
+ public boolean isLive(long now)
{
- return timestamp;
+ return (int) (now / 1000) < getLocalDeletionTime();
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/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
index c19b5dd..f91376d 100644
--- a/src/java/org/apache/cassandra/db/Cell.java
+++ b/src/java/org/apache/cassandra/db/Cell.java
@@ -22,7 +22,6 @@ import java.nio.ByteBuffer;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.db.composites.CellName;
import org.apache.cassandra.db.composites.CellNameType;
-import org.apache.cassandra.serializers.MarshalException;
import org.apache.cassandra.utils.concurrent.OpOrder;
import org.apache.cassandra.utils.memory.AbstractAllocator;
import org.apache.cassandra.utils.FBUtilities;
@@ -44,13 +43,10 @@ public interface Cell extends OnDiskAtom
public ByteBuffer value();
- public boolean isMarkedForDelete(long now);
+ public boolean isLive();
public boolean isLive(long now);
- // Don't call unless the column is actually marked for delete.
- public long getMarkedForDeleteAt();
-
public int cellDataSize();
// returns the size of the Cell and all references on the heap, excluding any costs associated with byte arrays
@@ -58,6 +54,7 @@ public interface Cell extends OnDiskAtom
public long excessHeapSizeExcludingData();
public int serializedSize(CellNameType type, TypeSizes typeSizes);
+
public int serializationFlags();
public Cell diff(Cell cell);
@@ -69,6 +66,4 @@ public interface Cell extends OnDiskAtom
public Cell localCopy(CFMetaData metaData, MemtableAllocator allocator, OpOrder.Group opGroup);
public String getString(CellNameType comparator);
-
- void validateName(CFMetaData metadata) throws MarshalException;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/CounterMutation.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/CounterMutation.java b/src/java/org/apache/cassandra/db/CounterMutation.java
index 32571cc..58889c1 100644
--- a/src/java/org/apache/cassandra/db/CounterMutation.java
+++ b/src/java/org/apache/cassandra/db/CounterMutation.java
@@ -265,7 +265,7 @@ public class CounterMutation implements IMutation
continue;
Cell cell = cf == null ? null : cf.getColumn(counterUpdateCells.get(i).name());
- if (cell == null || cell.isMarkedForDelete(Long.MIN_VALUE)) // absent or a tombstone.
+ if (cell == null || !cell.isLive()) // absent or a tombstone.
currentValues[i] = ClockAndCount.BLANK;
else
currentValues[i] = CounterContext.instance().getLocalClockAndCount(cell.value());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/HintedHandOffManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
index 8c892d6..0337756 100644
--- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java
+++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java
@@ -402,7 +402,7 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean
// in which the local deletion timestamp was generated on the last column in the old page, in which
// case the hint will have no columns (since it's deleted) but will still be included in the resultset
// since (even with gcgs=0) it's still a "relevant" tombstone.
- if (!hint.isLive(System.currentTimeMillis()))
+ if (!hint.isLive())
continue;
startColumn = hint.name();
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/NativeDeletedCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/NativeDeletedCell.java b/src/java/org/apache/cassandra/db/NativeDeletedCell.java
index 8bfc95b..20118a4 100644
--- a/src/java/org/apache/cassandra/db/NativeDeletedCell.java
+++ b/src/java/org/apache/cassandra/db/NativeDeletedCell.java
@@ -50,15 +50,15 @@ public class NativeDeletedCell extends NativeCell implements DeletedCell
}
@Override
- public boolean isMarkedForDelete(long now)
+ public boolean isLive()
{
- return true;
+ return false;
}
@Override
- public long getMarkedForDeleteAt()
+ public boolean isLive(long now)
{
- return timestamp();
+ return false;
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/NativeExpiringCell.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/NativeExpiringCell.java b/src/java/org/apache/cassandra/db/NativeExpiringCell.java
index 0822fbd..fcadb16 100644
--- a/src/java/org/apache/cassandra/db/NativeExpiringCell.java
+++ b/src/java/org/apache/cassandra/db/NativeExpiringCell.java
@@ -76,15 +76,15 @@ public class NativeExpiringCell extends NativeCell implements ExpiringCell
}
@Override
- public boolean isMarkedForDelete(long now)
+ public boolean isLive()
{
- return (int) (now / 1000) >= getLocalDeletionTime();
+ return isLive(System.currentTimeMillis());
}
@Override
- public long getMarkedForDeleteAt()
+ public boolean isLive(long now)
{
- return timestamp();
+ return (int) (now / 1000) < getLocalDeletionTime();
}
@Override
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
index 4f211f4..d0f3610 100644
--- a/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
+++ b/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
@@ -223,11 +223,8 @@ public class LazilyCompactedRow extends AbstractCompactedRow
if (indexer == SecondaryIndexManager.nullUpdater)
return;
- if (!cell.isMarkedForDelete(System.currentTimeMillis())
- && !container.getColumn(cell.name()).equals(cell))
- {
+ if (cell.isLive() && !container.getColumn(cell.name()).equals(cell))
indexer.remove(cell);
- }
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/composites/AbstractCellNameType.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/composites/AbstractCellNameType.java b/src/java/org/apache/cassandra/db/composites/AbstractCellNameType.java
index 826f71a..56be8cf 100644
--- a/src/java/org/apache/cassandra/db/composites/AbstractCellNameType.java
+++ b/src/java/org/apache/cassandra/db/composites/AbstractCellNameType.java
@@ -271,7 +271,7 @@ public abstract class AbstractCellNameType extends AbstractCType implements Cell
while (cells.hasNext())
{
final Cell cell = cells.next();
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
return new CQL3Row()
@@ -343,7 +343,7 @@ public abstract class AbstractCellNameType extends AbstractCType implements Cell
while (cells.hasNext())
{
Cell cell = cells.next();
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
nextCell = cell;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
index 164c96f..b64d84f 100644
--- a/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
+++ b/src/java/org/apache/cassandra/db/index/AbstractSimplePerColumnSecondaryIndex.java
@@ -31,7 +31,6 @@ import org.apache.cassandra.dht.LocalToken;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.FBUtilities;
import org.apache.cassandra.utils.concurrent.OpOrder;
-import org.apache.cassandra.utils.memory.MemtableAllocator;
/**
* Implements a secondary index for a column family using a second column family
@@ -89,7 +88,7 @@ public abstract class AbstractSimplePerColumnSecondaryIndex extends PerColumnSec
public void delete(ByteBuffer rowKey, Cell cell, OpOrder.Group opGroup)
{
- if (cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (!cell.isLive())
return;
DecoratedKey valueKey = getIndexKeyFor(getIndexedValue(rowKey, cell));
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
index 39bc26b..36c7e1e 100644
--- a/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
+++ b/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java
@@ -656,7 +656,7 @@ public class SecondaryIndexManager
public void remove(Cell cell)
{
- if (cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (!cell.isLive())
return;
for (SecondaryIndex index : indexFor(cell.name()))
@@ -693,7 +693,7 @@ public class SecondaryIndexManager
public void insert(Cell cell)
{
- if (cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (!cell.isLive())
return;
for (SecondaryIndex index : indexFor(cell.name()))
@@ -710,7 +710,7 @@ public class SecondaryIndexManager
{
if (index instanceof PerColumnSecondaryIndex)
{
- if (!cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (cell.isLive())
((PerColumnSecondaryIndex) index).update(key.getKey(), oldCell, cell, opGroup);
else
((PerColumnSecondaryIndex) index).delete(key.getKey(), oldCell, opGroup);
@@ -720,7 +720,7 @@ public class SecondaryIndexManager
public void remove(Cell cell)
{
- if (cell.isMarkedForDelete(System.currentTimeMillis()))
+ if (!cell.isLive())
return;
for (SecondaryIndex index : indexFor(cell.name()))
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionKey.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionKey.java b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionKey.java
index 2aff39d..2d25f8e 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionKey.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionKey.java
@@ -100,7 +100,7 @@ public class CompositesIndexOnCollectionKey extends CompositesIndex
public boolean isStale(IndexedEntry entry, ColumnFamily data, long now)
{
CellName name = data.getComparator().create(entry.indexedEntryPrefix, columnDef, entry.indexValue.getKey());
- Cell liveCell = data.getColumn(name);
- return (liveCell == null || liveCell.isMarkedForDelete(now));
+ Cell cell = data.getColumn(name);
+ return cell == null || !cell.isLive(now);
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionValue.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionValue.java b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionValue.java
index 67293aa..63589f4 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionValue.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnCollectionValue.java
@@ -48,7 +48,7 @@ public class CompositesIndexOnCollectionValue extends CompositesIndex
public static CellNameType buildIndexComparator(CFMetaData baseMetadata, ColumnDefinition columnDef)
{
int prefixSize = columnDef.position();
- List<AbstractType<?>> types = new ArrayList<AbstractType<?>>(prefixSize + 2);
+ List<AbstractType<?>> types = new ArrayList<>(prefixSize + 2);
types.add(SecondaryIndex.keyComparator);
for (int i = 0; i < prefixSize; i++)
types.add(baseMetadata.comparator.subtype(i));
@@ -98,11 +98,7 @@ public class CompositesIndexOnCollectionValue extends CompositesIndex
public boolean isStale(IndexedEntry entry, ColumnFamily data, long now)
{
CellName name = data.getComparator().create(entry.indexedEntryPrefix, columnDef, entry.indexedEntryCollectionKey);
- Cell liveCell = data.getColumn(name);
- if (liveCell == null || liveCell.isMarkedForDelete(now))
- return true;
-
- ByteBuffer liveValue = liveCell.value();
- return ((CollectionType)columnDef.type).valueComparator().compare(entry.indexValue.getKey(), liveValue) != 0;
+ Cell cell = data.getColumn(name);
+ return cell == null || !cell.isLive(now) || ((CollectionType) columnDef.type).valueComparator().compare(entry.indexValue.getKey(), cell.value()) != 0;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnRegular.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnRegular.java b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnRegular.java
index 0cfd240..b9dc07f 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnRegular.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesIndexOnRegular.java
@@ -90,11 +90,7 @@ public class CompositesIndexOnRegular extends CompositesIndex
public boolean isStale(IndexedEntry entry, ColumnFamily data, long now)
{
CellName name = data.getComparator().create(entry.indexedEntryPrefix, columnDef);
- Cell liveCell = data.getColumn(name);
- if (liveCell == null || liveCell.isMarkedForDelete(now))
- return true;
-
- ByteBuffer liveValue = liveCell.value();
- return columnDef.type.compare(entry.indexValue.getKey(), liveValue) != 0;
+ Cell cell = data.getColumn(name);
+ return cell == null || !cell.isLive(now) || columnDef.type.compare(entry.indexValue.getKey(), cell.value()) != 0;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
index 22d4361..dbce024 100644
--- a/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/composites/CompositesSearcher.java
@@ -19,11 +19,7 @@ package org.apache.cassandra.db.index.composites;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.util.ArrayDeque;
-import java.util.Collection;
-import java.util.Deque;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -205,7 +201,7 @@ public class CompositesSearcher extends SecondaryIndexSearcher
{
Cell cell = indexCells.poll();
lastSeenPrefix = cell.name();
- if (cell.isMarkedForDelete(filter.timestamp))
+ if (!cell.isLive(filter.timestamp))
{
logger.trace("skipping {}", cell.name());
continue;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java b/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
index e532a53..7cacb67 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java
@@ -52,12 +52,8 @@ public class KeysIndex extends AbstractSimplePerColumnSecondaryIndex
public boolean isIndexEntryStale(ByteBuffer indexedValue, ColumnFamily data, long now)
{
- Cell liveCell = data.getColumn(data.getComparator().makeCellName(columnDef.name.bytes));
- if (liveCell == null || liveCell.isMarkedForDelete(now))
- return true;
-
- ByteBuffer liveValue = liveCell.value();
- return columnDef.type.compare(indexedValue, liveValue) != 0;
+ Cell cell = data.getColumn(data.getComparator().makeCellName(columnDef.name.bytes));
+ return cell == null || !cell.isLive(now) || columnDef.type.compare(indexedValue, cell.value()) != 0;
}
public void validateOptions() throws ConfigurationException
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
index d166c08..4055b7c 100644
--- a/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
+++ b/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java
@@ -154,7 +154,7 @@ public class KeysSearcher extends SecondaryIndexSearcher
{
Cell cell = indexColumns.next();
lastSeenKey = cell.name();
- if (cell.isMarkedForDelete(filter.timestamp))
+ if (!cell.isLive(filter.timestamp))
{
logger.trace("skipping {}", cell.name());
continue;
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/service/CacheService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java
index 048bad4..78f6d66 100644
--- a/src/java/org/apache/cassandra/service/CacheService.java
+++ b/src/java/org/apache/cassandra/service/CacheService.java
@@ -406,7 +406,7 @@ public class CacheService implements CacheServiceMBean
if (cf == null)
return null;
Cell cell = cf.getColumn(cellName);
- if (cell == null || cell.isMarkedForDelete(Long.MIN_VALUE))
+ if (cell == null || !cell.isLive(Long.MIN_VALUE))
return null;
ClockAndCount clockAndCount = CounterContext.instance().getLocalClockAndCount(cell.value());
return Pair.create(CounterCacheKey.create(cfs.metadata.cfId, partitionKey, cellName), clockAndCount);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/thrift/CassandraServer.java b/src/java/org/apache/cassandra/thrift/CassandraServer.java
index 3040aaf..069cec7 100644
--- a/src/java/org/apache/cassandra/thrift/CassandraServer.java
+++ b/src/java/org/apache/cassandra/thrift/CassandraServer.java
@@ -137,7 +137,7 @@ public class CassandraServer implements Cassandra.Iface
ArrayList<ColumnOrSuperColumn> thriftColumns = new ArrayList<ColumnOrSuperColumn>(cells.size());
for (Cell cell : cells)
{
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
thriftColumns.add(thriftifyColumnWithName(cell, cell.name().toByteBuffer()));
@@ -176,7 +176,7 @@ public class CassandraServer implements Cassandra.Iface
List<Column> thriftColumns = new ArrayList<Column>(cells.size());
for (Cell cell : cells)
{
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
thriftColumns.add(thriftifySubColumn(cell));
@@ -201,7 +201,7 @@ public class CassandraServer implements Cassandra.Iface
ArrayList<ColumnOrSuperColumn> thriftSuperColumns = new ArrayList<ColumnOrSuperColumn>(cells.size());
for (Cell cell : cells)
{
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
thriftSuperColumns.add(thriftifyColumnWithName(cell, SuperColumns.subName(cell.name())));
@@ -225,7 +225,7 @@ public class CassandraServer implements Cassandra.Iface
SuperColumn current = null;
for (Cell cell : cells)
{
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
ByteBuffer scName = SuperColumns.scName(cell.name());
@@ -249,7 +249,7 @@ public class CassandraServer implements Cassandra.Iface
CounterSuperColumn current = null;
for (Cell cell : cells)
{
- if (cell.isMarkedForDelete(now))
+ if (!cell.isLive(now))
continue;
ByteBuffer scName = SuperColumns.scName(cell.name());
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java b/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
index 7f8da96..151cbdc 100644
--- a/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
+++ b/test/unit/org/apache/cassandra/db/ColumnFamilyTest.java
@@ -38,6 +38,7 @@ import static org.apache.cassandra.Util.column;
import static org.apache.cassandra.Util.cellname;
import static org.apache.cassandra.Util.tombstone;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
public class ColumnFamilyTest extends SchemaLoader
{
@@ -184,9 +185,9 @@ public class ColumnFamilyTest extends SchemaLoader
// check that tombstone wins timestamp ties
cf_result.addTombstone(cellname("col1"), 0, 3);
- assert cf_result.getColumn(cellname("col1")).isMarkedForDelete(System.currentTimeMillis());
+ assertFalse(cf_result.getColumn(cellname("col1")).isLive());
cf_result.addColumn(cellname("col1"), val2, 3);
- assert cf_result.getColumn(cellname("col1")).isMarkedForDelete(System.currentTimeMillis());
+ assertFalse(cf_result.getColumn(cellname("col1")).isLive());
// check that column value wins timestamp ties in absence of tombstone
cf_result.addColumn(cellname("col3"), val, 2);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/CounterCellTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/CounterCellTest.java b/test/unit/org/apache/cassandra/db/CounterCellTest.java
index efc365d..645c8a7 100644
--- a/test/unit/org/apache/cassandra/db/CounterCellTest.java
+++ b/test/unit/org/apache/cassandra/db/CounterCellTest.java
@@ -90,8 +90,8 @@ public class CounterCellTest extends SchemaLoader
left = new BufferDeletedCell(cellname("x"), 1, 1L);
right = new BufferDeletedCell(cellname("x"), 2, 2L);
- assert left.reconcile(right).getMarkedForDeleteAt() == right.getMarkedForDeleteAt();
- assert right.reconcile(left).getMarkedForDeleteAt() == right.getMarkedForDeleteAt();
+ assert left.reconcile(right).timestamp() == right.timestamp();
+ assert right.reconcile(left).timestamp() == right.timestamp();
// tombstone > live
left = new BufferDeletedCell(cellname("x"), 1, 2L);
@@ -119,7 +119,7 @@ public class CounterCellTest extends SchemaLoader
assert reconciled.name() == right.name();
assert reconciled.value() == right.value();
assert reconciled.timestamp() == right.timestamp();
- assert ((CounterCell)reconciled).timestampOfLastDelete() == left.getMarkedForDeleteAt();
+ assert ((CounterCell)reconciled).timestampOfLastDelete() == left.timestamp();
// live < tombstone
left = BufferCounterCell.createLocal(cellname("x"), 0L, 1L, Long.MIN_VALUE);
@@ -147,7 +147,7 @@ public class CounterCellTest extends SchemaLoader
assert reconciled.name() == left.name();
assert reconciled.value() == left.value();
assert reconciled.timestamp() == left.timestamp();
- assert ((CounterCell)reconciled).timestampOfLastDelete() == right.getMarkedForDeleteAt();
+ assert ((CounterCell)reconciled).timestampOfLastDelete() == right.timestamp();
// live < live last delete
left = new BufferCounterCell(cellname("x"), cc.createRemote(CounterId.fromInt(1), 2L, 3L), 1L, Long.MIN_VALUE);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index 6ac5f13..ace0ae3 100644
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@ -467,7 +467,7 @@ public class RangeTombstoneTest extends SchemaLoader
private static boolean isLive(ColumnFamily cf, Cell c)
{
- return c != null && !c.isMarkedForDelete(System.currentTimeMillis()) && !cf.deletionInfo().isDeleted(c);
+ return c != null && c.isLive() && !cf.deletionInfo().isDeleted(c);
}
private static CellName b(int i)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/RemoveCellTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RemoveCellTest.java b/test/unit/org/apache/cassandra/db/RemoveCellTest.java
index 1624913..77ff02d 100644
--- a/test/unit/org/apache/cassandra/db/RemoveCellTest.java
+++ b/test/unit/org/apache/cassandra/db/RemoveCellTest.java
@@ -20,16 +20,14 @@ package org.apache.cassandra.db;
import org.junit.Test;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.cassandra.db.filter.QueryFilter;
import org.apache.cassandra.SchemaLoader;
import org.apache.cassandra.Util;
+import org.apache.cassandra.db.filter.QueryFilter;
import org.apache.cassandra.utils.ByteBufferUtil;
-
public class RemoveCellTest extends SchemaLoader
{
@Test
@@ -52,7 +50,7 @@ public class RemoveCellTest extends SchemaLoader
rm.apply();
ColumnFamily retrieved = store.getColumnFamily(Util.namesQueryFilter(store, dk, "Column1"));
- assert retrieved.getColumn(Util.cellname("Column1")).isMarkedForDelete(System.currentTimeMillis());
+ assertFalse(retrieved.getColumn(Util.cellname("Column1")).isLive());
assertNull(Util.cloneAndRemoveDeleted(retrieved, Integer.MAX_VALUE));
assertNull(Util.cloneAndRemoveDeleted(store.getColumnFamily(QueryFilter.getIdentityFilter(dk,
"Standard1",
@@ -72,15 +70,15 @@ public class RemoveCellTest extends SchemaLoader
long timestamp = System.currentTimeMillis();
int localDeletionTime = (int) (timestamp / 1000);
Cell c = dc("dc1", localDeletionTime, timestamp);
- assertTrue("DeletedCell was not marked for delete", c.isMarkedForDelete(timestamp));
+ assertFalse("DeletedCell was not marked for delete", c.isLive(timestamp));
// Simulate a node that is 30 seconds behind
c = dc("dc2", localDeletionTime + 30, timestamp + 30000);
- assertTrue("DeletedCell was not marked for delete", c.isMarkedForDelete(timestamp));
+ assertFalse("DeletedCell was not marked for delete", c.isLive(timestamp));
// Simulate a node that is 30 ahead behind
c = dc("dc3", localDeletionTime - 30, timestamp - 30000);
- assertTrue("DeletedCell was not marked for delete", c.isMarkedForDelete(timestamp));
+ assertFalse("DeletedCell was not marked for delete", c.isLive(timestamp));
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/RemoveSubCellTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RemoveSubCellTest.java b/test/unit/org/apache/cassandra/db/RemoveSubCellTest.java
index 6eee4a6..cec1bce 100644
--- a/test/unit/org/apache/cassandra/db/RemoveSubCellTest.java
+++ b/test/unit/org/apache/cassandra/db/RemoveSubCellTest.java
@@ -23,6 +23,7 @@ import java.util.concurrent.TimeUnit;
import org.junit.Test;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import org.apache.cassandra.db.composites.*;
import org.apache.cassandra.db.filter.QueryFilter;
@@ -58,7 +59,7 @@ public class RemoveSubCellTest extends SchemaLoader
rm.apply();
ColumnFamily retrieved = store.getColumnFamily(QueryFilter.getIdentityFilter(dk, "Super1", System.currentTimeMillis()));
- assert retrieved.getColumn(cname).isMarkedForDelete(System.currentTimeMillis());
+ assertFalse(retrieved.getColumn(cname).isLive());
assertNull(Util.cloneAndRemoveDeleted(retrieved, Integer.MAX_VALUE));
}
@@ -94,7 +95,7 @@ public class RemoveSubCellTest extends SchemaLoader
rm.apply();
ColumnFamily retrieved = store.getColumnFamily(filter);
- assert retrieved.getColumn(cname).isMarkedForDelete(System.currentTimeMillis());
+ assertFalse(retrieved.getColumn(cname).isLive());
assertNull(Util.cloneAndRemoveDeleted(retrieved, Integer.MAX_VALUE));
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/RowTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/RowTest.java b/test/unit/org/apache/cassandra/db/RowTest.java
index 653c9f5..22e112e 100644
--- a/test/unit/org/apache/cassandra/db/RowTest.java
+++ b/test/unit/org/apache/cassandra/db/RowTest.java
@@ -32,6 +32,7 @@ import static org.apache.cassandra.Util.column;
import static org.apache.cassandra.Util.tombstone;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
public class RowTest extends SchemaLoader
{
@@ -101,12 +102,12 @@ public class RowTest extends SchemaLoader
public void testExpiringColumnExpiration()
{
Cell c = new BufferExpiringCell(CellNames.simpleDense(ByteBufferUtil.bytes("one")), ByteBufferUtil.bytes("A"), 0, 1);
- assert !c.isMarkedForDelete(System.currentTimeMillis());
+ assertTrue(c.isLive());
// Because we keep the local deletion time with a precision of a
// second, we could have to wait 2 seconds in worst case scenario.
Uninterruptibles.sleepUninterruptibly(2, TimeUnit.SECONDS);
- assert c.isMarkedForDelete(System.currentTimeMillis()) && c.getMarkedForDeleteAt() == 0;
+ assert !c.isLive() && c.timestamp() == 0;
}
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
index f9cfb2c..751e7ae 100644
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
@@ -187,7 +187,7 @@ public class CompactionsPurgeTest extends SchemaLoader
// We should have both the c1 and c2 tombstones still. Since the min timestamp in the c2 tombstone
// sstable is older than the c1 tombstone, it is invalid to throw out the c1 tombstone.
ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key3, cfName, System.currentTimeMillis()));
- assertFalse(cf.getColumn(cellname("c2")).isLive(System.currentTimeMillis()));
+ assertFalse(cf.getColumn(cellname("c2")).isLive());
assertEquals(2, cf.getColumnCount());
}
@@ -273,7 +273,7 @@ public class CompactionsPurgeTest extends SchemaLoader
ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key, cfName, System.currentTimeMillis()));
assertEquals(10, cf.getColumnCount());
for (Cell c : cf)
- assert !c.isMarkedForDelete(System.currentTimeMillis());
+ assert c.isLive();
}
@Test
@@ -317,7 +317,7 @@ public class CompactionsPurgeTest extends SchemaLoader
cf = cfs.getColumnFamily(filter);
assertEquals(10, cf.getColumnCount());
for (Cell c : cf)
- assert !c.isMarkedForDelete(System.currentTimeMillis());
+ assert c.isLive();
}
@Test
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java b/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
index 7eb899f..158dd2c 100644
--- a/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
+++ b/test/unit/org/apache/cassandra/db/index/PerRowSecondaryIndexTest.java
@@ -38,11 +38,8 @@ import org.apache.cassandra.db.filter.QueryFilter;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.utils.ByteBufferUtil;
import org.apache.cassandra.utils.concurrent.OpOrder;
-import org.apache.cassandra.utils.memory.MemtableAllocator;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class PerRowSecondaryIndexTest extends SchemaLoader
{
@@ -96,9 +93,8 @@ public class PerRowSecondaryIndexTest extends SchemaLoader
assertNotNull(indexedRow);
for (Cell cell : indexedRow.getSortedColumns())
- {
- assertTrue(cell.isMarkedForDelete(System.currentTimeMillis()));
- }
+ assertFalse(cell.isLive());
+
assertTrue(Arrays.equals("k2".getBytes(), PerRowSecondaryIndexTest.TestIndex.LAST_INDEXED_KEY.array()));
}
@@ -114,9 +110,8 @@ public class PerRowSecondaryIndexTest extends SchemaLoader
ColumnFamily indexedRow = PerRowSecondaryIndexTest.TestIndex.LAST_INDEXED_ROW;
assertNotNull(indexedRow);
for (Cell cell : indexedRow.getSortedColumns())
- {
- assertTrue(cell.isMarkedForDelete(System.currentTimeMillis()));
- }
+ assertFalse(cell.isLive());
+
assertTrue(Arrays.equals("k3".getBytes(), PerRowSecondaryIndexTest.TestIndex.LAST_INDEXED_KEY.array()));
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/4485e6db/test/unit/org/apache/cassandra/service/QueryPagerTest.java
----------------------------------------------------------------------
diff --git a/test/unit/org/apache/cassandra/service/QueryPagerTest.java b/test/unit/org/apache/cassandra/service/QueryPagerTest.java
index ad70eff..abd030d 100644
--- a/test/unit/org/apache/cassandra/service/QueryPagerTest.java
+++ b/test/unit/org/apache/cassandra/service/QueryPagerTest.java
@@ -165,7 +165,7 @@ public class QueryPagerTest extends SchemaLoader
for (Cell c : r.cf)
{
// Ignore deleted cells if we have them
- if (!c.isLive(0))
+ if (!c.isLive())
continue;
ByteBuffer expected = names[i++];
[2/2] git commit: Merge branch 'cassandra-2.1' into trunk
Posted by al...@apache.org.
Merge branch 'cassandra-2.1' into trunk
Conflicts:
src/java/org/apache/cassandra/cql/QueryProcessor.java
test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b35486a1
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b35486a1
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b35486a1
Branch: refs/heads/trunk
Commit: b35486a19b43eebd3be1d2fec6a827db0903c8cb
Parents: cf3f5b6 4485e6d
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Wed Apr 30 21:14:09 2014 +0200
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Wed Apr 30 21:14:09 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../cassandra/cql3/statements/Selection.java | 2 +-
.../org/apache/cassandra/db/AbstractCell.java | 39 +++++---------------
.../cassandra/db/BufferCounterUpdateCell.java | 6 +--
.../apache/cassandra/db/BufferDeletedCell.java | 8 ++--
.../apache/cassandra/db/BufferExpiringCell.java | 8 ++--
src/java/org/apache/cassandra/db/Cell.java | 9 +----
.../apache/cassandra/db/CounterMutation.java | 2 +-
.../cassandra/db/HintedHandOffManager.java | 2 +-
.../apache/cassandra/db/NativeDeletedCell.java | 8 ++--
.../apache/cassandra/db/NativeExpiringCell.java | 8 ++--
.../db/compaction/LazilyCompactedRow.java | 5 +--
.../db/composites/AbstractCellNameType.java | 4 +-
.../AbstractSimplePerColumnSecondaryIndex.java | 3 +-
.../db/index/SecondaryIndexManager.java | 8 ++--
.../CompositesIndexOnCollectionKey.java | 4 +-
.../CompositesIndexOnCollectionValue.java | 10 ++---
.../composites/CompositesIndexOnRegular.java | 8 +---
.../db/index/composites/CompositesSearcher.java | 8 +---
.../cassandra/db/index/keys/KeysIndex.java | 8 +---
.../cassandra/db/index/keys/KeysSearcher.java | 2 +-
.../apache/cassandra/service/CacheService.java | 2 +-
.../cassandra/thrift/CassandraServer.java | 10 ++---
.../apache/cassandra/db/ColumnFamilyTest.java | 5 ++-
.../apache/cassandra/db/CounterCellTest.java | 8 ++--
.../apache/cassandra/db/RangeTombstoneTest.java | 2 +-
.../org/apache/cassandra/db/RemoveCellTest.java | 14 +++----
.../apache/cassandra/db/RemoveSubCellTest.java | 5 ++-
test/unit/org/apache/cassandra/db/RowTest.java | 5 ++-
.../db/compaction/CompactionsPurgeTest.java | 6 +--
.../db/index/PerRowSecondaryIndexTest.java | 15 +++-----
.../cassandra/service/QueryPagerTest.java | 2 +-
32 files changed, 90 insertions(+), 137 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b35486a1/CHANGES.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b35486a1/src/java/org/apache/cassandra/thrift/CassandraServer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b35486a1/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/b35486a1/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
index 6a98873,751e7ae..5820312
--- a/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
+++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java
@@@ -275,7 -273,7 +275,7 @@@ public class CompactionsPurgeTest exten
ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key, cfName, System.currentTimeMillis()));
assertEquals(10, cf.getColumnCount());
for (Cell c : cf)
- assertFalse(c.isMarkedForDelete(System.currentTimeMillis()));
- assert c.isLive();
++ assertTrue(c.isLive());
}
@Test
@@@ -319,7 -317,7 +319,7 @@@
cf = cfs.getColumnFamily(filter);
assertEquals(10, cf.getColumnCount());
for (Cell c : cf)
- assertFalse(c.isMarkedForDelete(System.currentTimeMillis()));
- assert c.isLive();
++ assertTrue(c.isLive());
}
@Test