Merge branch 'cassandra-1.2' into cassandra-2.0
Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/db/ColumnIndex.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/29befa18
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/29befa18
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/29befa18
Branch: refs/heads/cassandra-2.1.0
Commit: 29befa180be1b20ff404c29108f9bf3385f51855
Parents: 9219361 7f9e9a8
Author: Marcus Eriksson <[email protected]>
Authored: Wed Aug 27 13:00:55 2014 +0200
Committer: Marcus Eriksson <[email protected]>
Committed: Wed Aug 27 13:00:55 2014 +0200
----------------------------------------------------------------------
CHANGES.txt | 1 +
.../org/apache/cassandra/db/ColumnIndex.java | 2 +-
.../org/apache/cassandra/db/RangeTombstone.java | 8 +++++-
.../db/compaction/LazilyCompactedRow.java | 3 ++-
.../apache/cassandra/db/RangeTombstoneTest.java | 27 ++++++++++++++++++++
5 files changed, 38 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 9c6bd61,d27be1f..abdd561
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,80 -1,5 +1,81 @@@
-1.2.19
+2.0.11:
+ * Fix CFMetaData#isThriftCompatible() for PK-only tables (CASSANDRA-7832)
+ * Always reject inequality on the partition key without token()
+ (CASSANDRA-7722)
+ * Always send Paxos commit to all replicas (CASSANDRA-7479)
+
+
+2.0.10
+ * Don't send schema change responses and events for no-op DDL
+ statements (CASSANDRA-7600)
+ * (Hadoop) fix cluster initialisation for a split fetching (CASSANDRA-7774)
+ * Configure system.paxos with LeveledCompactionStrategy (CASSANDRA-7753)
+ * Fix ALTER clustering column type from DateType to TimestampType when
+ using DESC clustering order (CASSANRDA-7797)
+ * Stop inheriting liveRatio and liveRatioComputedAt from previous
+ memtables (CASSANDRA-7796)
+ * Throw EOFException if we run out of chunks in compressed datafile
+ (CASSANDRA-7664)
+ * Throw InvalidRequestException when queries contain relations on entire
+ collection columns (CASSANDRA-7506)
+ * Fix PRSI handling of CQL3 row markers for row cleanup (CASSANDRA-7787)
+ * (cqlsh) enable CTRL-R history search with libedit (CASSANDRA-7577)
+ * Fix dropping collection when it's the last regular column (CASSANDRA-7744)
+ * Properly reject operations on list index with conditions (CASSANDRA-7499)
+ * (Hadoop) allow ACFRW to limit nodes to local DC (CASSANDRA-7252)
+ * (cqlsh) Wait up to 10 sec for a tracing session (CASSANDRA-7222)
+ * Fix NPE in FileCacheService.sizeInBytes (CASSANDRA-7756)
+ * (cqlsh) cqlsh should automatically disable tracing when selecting
+ from system_traces (CASSANDRA-7641)
+ * (Hadoop) Add CqlOutputFormat (CASSANDRA-6927)
+ * Don't depend on cassandra config for nodetool ring (CASSANDRA-7508)
+ * (cqlsh) Fix failing cqlsh formatting tests (CASSANDRA-7703)
+ * Fix MS expiring map timeout for Paxos messages (CASSANDRA-7752)
+ * Do not flush on truncate if durable_writes is false (CASSANDRA-7750)
+ * Give CRR a default input_cql Statement (CASSANDRA-7226)
+ * Better error message when adding a collection with the same name
+ than a previously dropped one (CASSANDRA-6276)
+ * Fix validation when adding static columns (CASSANDRA-7730)
+ * (Thrift) fix range deletion of supercolumns (CASSANDRA-7733)
+ * Fix potential AssertionError in RangeTombstoneList (CASSANDRA-7700)
+ * Validate arguments of blobAs* functions (CASSANDRA-7707)
+ * Fix potential AssertionError with 2ndary indexes (CASSANDRA-6612)
+ * Avoid logging CompactionInterrupted at ERROR (CASSANDRA-7694)
+ * Minor leak in sstable2jon (CASSANDRA-7709)
+ * Add cassandra.auto_bootstrap system property (CASSANDRA-7650)
+ * Remove CqlPagingRecordReader/CqlPagingInputFormat (CASSANDRA-7570)
+ * Fix IncompatibleClassChangeError from hadoop2 (CASSANDRA-7229)
+ * Add 'nodetool sethintedhandoffthrottlekb' (CASSANDRA-7635)
+ * Update java driver (for hadoop) (CASSANDRA-7618)
+ * Fix truncate to always flush (CASSANDRA-7511)
+ * Remove shuffle and taketoken (CASSANDRA-7601)
+ * Switch liveRatio-related log messages to DEBUG (CASSANDRA-7467)
+ * (cqlsh) Add tab-completion for CREATE/DROP USER IF [NOT] EXISTS
(CASSANDRA-7611)
+ * Always merge ranges owned by a single node (CASSANDRA-6930)
+ * Pig support for hadoop CqlInputFormat (CASSANDRA-6454)
+ * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
+ * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
+ * Fix range merging when DES scores are zero (CASSANDRA-7535)
+ * Warn when SSL certificates have expired (CASSANDRA-7528)
+ * Workaround JVM NPE on JMX bind failure (CASSANDRA-7254)
+ * Fix race in FileCacheService RemovalListener (CASSANDRA-7278)
+ * Fix inconsistent use of consistencyForCommit that allowed LOCAL_QUORUM
+ operations to incorrect become full QUORUM (CASSANDRA-7345)
+ * Properly handle unrecognized opcodes and flags (CASSANDRA-7440)
+ * (Hadoop) close CqlRecordWriter clients when finished (CASSANDRA-7459)
+ * Make sure high level sstables get compacted (CASSANDRA-7414)
+ * Fix AssertionError when using empty clustering columns and static columns
+ (CASSANDRA-7455)
+ * Add inter_dc_stream_throughput_outbound_megabits_per_sec (CASSANDRA-6596)
+ * Add option to disable STCS in L0 (CASSANDRA-6621)
+ * Fix error when doing reversed queries with static columns (CASSANDRA-7490)
+ * Backport CASSNADRA-3569/CASSANDRA-6747 (CASSANDRA-7560)
+ * Track max/min timestamps for range tombstones (CASSANDRA-7647)
+ * Fix NPE when listing saved caches dir (CASSANDRA-7632)
+ * Fix sstableloader unable to connect encrypted node (CASSANDRA-7585)
+ * Make StreamReceiveTask thread safe and gc friendly (CASSANDRA-7795)
+Merged from 1.2:
+ * Track expired tombstones (CASSANDRA-7810)
* Validate empty cell names from counter updates (CASSANDRA-7798)
* Improve PasswordAuthenticator default super user setup (CASSANDRA-7788)
* Remove duplicates from StorageService.getJoiningNodes (CASSANDRA-7478)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/src/java/org/apache/cassandra/db/ColumnIndex.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnIndex.java
index f6b38b2,284def5..eda275d
--- a/src/java/org/apache/cassandra/db/ColumnIndex.java
+++ b/src/java/org/apache/cassandra/db/ColumnIndex.java
@@@ -185,11 -182,12 +185,11 @@@ public class ColumnInde
lastBlockClosing = column;
}
- if (output != null)
- atomSerializer.serializeForSSTable(column, output);
+ maybeWriteRowHeader();
+ atomSerializer.serializeForSSTable(column, output);
// TODO: Should deal with removing unneeded tombstones
- tombstoneTracker.update(column);
- if (tombstoneTracker != null)
- tombstoneTracker.update(column, false);
++ tombstoneTracker.update(column, false);
lastColumn = column;
}
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/src/java/org/apache/cassandra/db/RangeTombstone.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/RangeTombstone.java
index c943ad7,90b72b7..16fc27a
--- a/src/java/org/apache/cassandra/db/RangeTombstone.java
+++ b/src/java/org/apache/cassandra/db/RangeTombstone.java
@@@ -189,10 -195,10 +193,10 @@@ public class RangeTombstone extends Int
/**
* Update this tracker given an {@code atom}.
- * If column is a IColumn, check if any tracked range is useless and
+ * If column is a Column, check if any tracked range is useless and
* can be removed. If it is a RangeTombstone, add it to this tracker.
*/
- public void update(OnDiskAtom atom)
+ public void update(OnDiskAtom atom, boolean isExpired)
{
if (atom instanceof RangeTombstone)
{
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/src/java/org/apache/cassandra/db/compaction/LazilyCompactedRow.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/29befa18/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
----------------------------------------------------------------------
diff --cc test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
index 80982cd,15db2f6..7f1238f
--- a/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
+++ b/test/unit/org/apache/cassandra/db/RangeTombstoneTest.java
@@@ -110,6 -101,33 +110,33 @@@ public class RangeTombstoneTest extend
assert !isLive(cf, cf.getColumn(b(i))) : "Column " + i + "
shouldn't be live";
}
+
+ @Test
+ public void test7810() throws ExecutionException, InterruptedException,
IOException
+ {
+ DatabaseDescriptor.setInMemoryCompactionLimit(0);
- Table table = Table.open(KSNAME);
- ColumnFamilyStore cfs = table.getColumnFamilyStore(CFNAME);
++ Keyspace ks = Keyspace.open(KSNAME);
++ ColumnFamilyStore cfs = ks.getColumnFamilyStore(CFNAME);
+ cfs.metadata.gcGraceSeconds(2);
+
+ String key = "7810";
+ RowMutation rm;
+ rm = new RowMutation(KSNAME, ByteBufferUtil.bytes(key));
+ for (int i = 10; i < 20; i++)
+ add(rm, i, 0);
+ rm.apply();
+ cfs.forceBlockingFlush();
+
+ rm = new RowMutation(KSNAME, ByteBufferUtil.bytes(key));
+ ColumnFamily cf = rm.addOrGet(CFNAME);
+ cf.delete(new DeletionInfo(b(10),b(11), cfs.getComparator(), 1, 1));
+ rm.apply();
+ cfs.forceBlockingFlush();
+ Thread.sleep(5);
+ cfs.forceMajorCompaction();
- assertEquals(8, Util.getColumnFamily(table, Util.dk(key),
CFNAME).getColumnCount());
++ assertEquals(8, Util.getColumnFamily(ks, Util.dk(key),
CFNAME).getColumnCount());
+ }
+
@Test
public void test7808_1() throws ExecutionException, InterruptedException
{