Merge branch 'cassandra-2.0' into cassandra-2.1.0 Conflicts: CHANGES.txt src/java/org/apache/cassandra/db/ColumnFamilyStore.java src/java/org/apache/cassandra/db/DataTracker.java test/unit/org/apache/cassandra/db/CommitLogTest.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/18ce8c72 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/18ce8c72 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/18ce8c72 Branch: refs/heads/cassandra-2.1 Commit: 18ce8c72a355949ffd8cdc8c083f3edf85c449d1 Parents: 1921b98 60eab4e Author: Jake Luciani <j...@apache.org> Authored: Fri Aug 1 11:16:57 2014 -0400 Committer: Jake Luciani <j...@apache.org> Committed: Fri Aug 1 11:16:57 2014 -0400 ---------------------------------------------------------------------- CHANGES.txt | 1 + .../cassandra/config/DatabaseDescriptor.java | 5 +++ .../apache/cassandra/db/ColumnFamilyStore.java | 23 +++----------- test/conf/cassandra.yaml | 1 + .../org/apache/cassandra/db/CommitLogTest.java | 32 ++++++++++++++++++++ 5 files changed, 44 insertions(+), 18 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/18ce8c72/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index fcccccd,33bab82..7823f87 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,48 -1,11 +1,49 @@@ -2.0.10 - * Fix truncate to always flush (CASSANDRA-7511) +2.1.0-final + * Tolerate min/max cell names of different lengths (CASSANDRA-7651) + * Filter cached results correctly (CASSANDRA-7636) + * Fix tracing on the new SEPExecutor (CASSANDRA-7644) * 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) + * Clean up Windows batch scripts (CASSANDRA-7619) + * Fix native protocol drop user type notification (CASSANDRA-7571) + * Give read access to system.schema_usertypes to all authenticated users + (CASSANDRA-7578) + * (cqlsh) Fix cqlsh display when zero rows are returned (CASSANDRA-7580) + * Get java version correctly when JAVA_TOOL_OPTIONS is set (CASSANDRA-7572) + * Fix NPE when dropping index from non-existent keyspace, AssertionError when + dropping non-existent index with IF EXISTS (CASSANDRA-7590) + * Fix sstablelevelresetter hang (CASSANDRA-7614) + * (cqlsh) Fix deserialization of blobs (CASSANDRA-7603) + * Use "keyspace updated" schema change message for UDT changes in v1 and + v2 protocols (CASSANDRA-7617) + * Fix tracing of range slices and secondary index lookups that are local + to the coordinator (CASSANDRA-7599) + * Set -Dcassandra.storagedir for all tool shell scripts (CASSANDRA-7587) + * Don't swap max/min col names when mutating sstable metadata (CASSANDRA-7596) + * (cqlsh) Correctly handle paged result sets (CASSANDRA-7625) + * (cqlsh) Improve waiting for a trace to complete (CASSANDRA-7626) + * Fix tracing of concurrent range slices and 2ary index queries (CASSANDRA-7626) +Merged from 2.0: ++ * Always flush on truncate (CASSANDRA-7511) * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576) + * Always merge ranges owned by a single node (CASSANDRA-6930) + * Track max/min timestamps for range tombstones (CASSANDRA-7647) + * Fix NPE when listing saved caches dir (CASSANDRA-7632) + + +2.1.0-rc4 + * Fix word count hadoop example (CASSANDRA-7200) + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults + (CASSANDRA-7551) + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505) + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521) + * Add missing table name to DROP INDEX responses and notifications (CASSANDRA-7539) + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527) + * Fix configuration error message when running nodetool ring (CASSANDRA-7508) + * Support conditional updates, tuple type, and the v3 protocol in cqlsh (CASSANDRA-7509) + * Handle queries on multiple secondary index types (CASSANDRA-7525) + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564) + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454) +Merged from 2.0: * (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) http://git-wip-us.apache.org/repos/asf/cassandra/blob/18ce8c72/src/java/org/apache/cassandra/config/DatabaseDescriptor.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/18ce8c72/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/18ce8c72/test/conf/cassandra.yaml ---------------------------------------------------------------------- diff --cc test/conf/cassandra.yaml index 43995e6,3bb29bb..ec988e2 --- a/test/conf/cassandra.yaml +++ b/test/conf/cassandra.yaml @@@ -3,9 -3,10 +3,10 @@@ # Consider the effects on 'o.a.c.i.s.LegacySSTableTest' before changing schemas in this file. # cluster_name: Test Cluster -in_memory_compaction_limit_in_mb: 1 +memtable_allocation_type: offheap_objects commitlog_sync: batch commitlog_sync_batch_window_in_ms: 1.0 -commitlog_segment_size_in_mb: 1 ++commitlog_segment_size_in_mb: 5 partitioner: org.apache.cassandra.dht.ByteOrderedPartitioner listen_address: 127.0.0.1 storage_port: 7010 http://git-wip-us.apache.org/repos/asf/cassandra/blob/18ce8c72/test/unit/org/apache/cassandra/db/CommitLogTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/db/CommitLogTest.java index 7046536,a7df871..a58549a --- a/test/unit/org/apache/cassandra/db/CommitLogTest.java +++ b/test/unit/org/apache/cassandra/db/CommitLogTest.java @@@ -36,10 -36,10 +37,12 @@@ import org.apache.cassandra.config.Conf import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.commitlog.CommitLog; import org.apache.cassandra.db.commitlog.CommitLogDescriptor; + import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.commitlog.CommitLogSegment; +import org.apache.cassandra.db.composites.CellName; import org.apache.cassandra.net.MessagingService; import org.apache.cassandra.service.StorageService; + import org.apache.cassandra.utils.FBUtilities; import static org.apache.cassandra.utils.ByteBufferUtil.bytes; @@@ -295,4 -260,33 +298,33 @@@ public class CommitLogTest extends Sche } } + @Test + public void testTruncateWithoutSnapshot() throws ExecutionException, InterruptedException + { + CommitLog.instance.resetUnsafe(); + boolean prev = DatabaseDescriptor.isAutoSnapshot(); + DatabaseDescriptor.setAutoSnapshot(false); + ColumnFamilyStore cfs1 = Keyspace.open("Keyspace1").getColumnFamilyStore("Standard1"); + ColumnFamilyStore cfs2 = Keyspace.open("Keyspace1").getColumnFamilyStore("Standard2"); + - final RowMutation rm1 = new RowMutation("Keyspace1", bytes("k")); - rm1.add("Standard1", bytes("c1"), ByteBuffer.allocate(100), 0); ++ final Mutation rm1 = new Mutation("Keyspace1", bytes("k")); ++ rm1.add("Standard1", Util.cellname("c1"), ByteBuffer.allocate(100), 0); + rm1.apply(); + cfs1.truncateBlocking(); + DatabaseDescriptor.setAutoSnapshot(prev); - final RowMutation rm2 = new RowMutation("Keyspace1", bytes("k")); - rm2.add("Standard2", bytes("c1"), ByteBuffer.allocate(DatabaseDescriptor.getCommitLogSegmentSize() / 4), 0); ++ final Mutation rm2 = new Mutation("Keyspace1", bytes("k")); ++ rm2.add("Standard2", Util.cellname("c1"), ByteBuffer.allocate(DatabaseDescriptor.getCommitLogSegmentSize() / 4), 0); + + for (int i = 0 ; i < 5 ; i++) + CommitLog.instance.add(rm2); + + Assert.assertEquals(2, CommitLog.instance.activeSegments()); - ReplayPosition position = CommitLog.instance.getContext().get(); ++ ReplayPosition position = CommitLog.instance.getContext(); + for (Keyspace ks : Keyspace.system()) + for (ColumnFamilyStore syscfs : ks.getColumnFamilyStores()) + CommitLog.instance.discardCompletedSegments(syscfs.metadata.cfId, position); + CommitLog.instance.discardCompletedSegments(cfs2.metadata.cfId, position); + Assert.assertEquals(1, CommitLog.instance.activeSegments()); + } + }