Updated Branches: refs/heads/cassandra-1.2 457b546e6 -> 686f516cc refs/heads/trunk 89e250b8b -> 4042ef2dc
Merge branch 'cassandra-1.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4042ef2d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4042ef2d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4042ef2d Branch: refs/heads/trunk Commit: 4042ef2dccd0fa8cec3cdc8f94439fdf9795ac8d Parents: 89e250b 686f516 Author: Jonathan Ellis <jbel...@apache.org> Authored: Wed Feb 20 05:39:14 2013 -0800 Committer: Jonathan Ellis <jbel...@apache.org> Committed: Wed Feb 20 05:39:14 2013 -0800 ---------------------------------------------------------------------- CHANGES.txt | 2 + .../org/apache/cassandra/db/ColumnFamilyStore.java | 1 - .../db/compaction/AbstractCompactionStrategy.java | 8 ++ .../db/compaction/AbstractCompactionTask.java | 34 ++++++-- .../cassandra/db/compaction/CompactionManager.java | 67 +++----------- .../cassandra/db/compaction/CompactionTask.java | 8 +-- .../db/compaction/LeveledCompactionStrategy.java | 43 +++++----- .../compaction/SizeTieredCompactionStrategy.java | 42 +++++++--- .../LongLeveledCompactionStrategyTest.java | 9 +-- test/unit/org/apache/cassandra/Util.java | 4 +- .../db/compaction/CompactionsPurgeTest.java | 4 +- 11 files changed, 114 insertions(+), 108 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 6f9d076,0489968..30a861f --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,6 +1,19 @@@ +1.3 + * Move sstable level information into the Stats component, removing the + need for a separate Manifest file (CASSANDRA-4872) + * avoid serializing to byte[] on commitlog append (CASSANDRA-5199) + * make index_interval configurable per columnfamily (CASSANDRA-3961) + * add default_tim_to_live (CASSANDRA-3974) + * add memtable_flush_period_in_ms (CASSANDRA-4237) + * replace supercolumns internally by composites (CASSANDRA-3237, 5123) + * upgrade thrift to 0.9.0 (CASSANDRA-3719) + * drop unnecessary keyspace from user-defined compaction API (CASSANDRA-5139) + * more robust solution to incomplete compactions + counters (CASSANDRA-5151) + + 1.2.2 + * fix potential for multiple concurrent compactions of the same sstables + (CASSANDRA-5256) * avoid no-op caching of byte[] on commitlog append (CASSANDRA-5199) * fix symlinks under data dir not working (CASSANDRA-5185) * fix bug in compact storage metadata handling (CASSANDRA-5189) http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/compaction/CompactionManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/compaction/CompactionTask.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/test/long/org/apache/cassandra/db/compaction/LongLeveledCompactionStrategyTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/test/unit/org/apache/cassandra/Util.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4042ef2d/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java ---------------------------------------------------------------------- diff --cc test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java index 6bc6e8b,827257f..9344ec3 --- a/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java +++ b/test/unit/org/apache/cassandra/db/compaction/CompactionsPurgeTest.java @@@ -132,20 -134,20 +132,20 @@@ public class CompactionsPurgeTest exten cfs.forceBlockingFlush(); Collection<SSTableReader> sstablesIncomplete = cfs.getSSTables(); rm = new RowMutation(TABLE2, key1.key); - rm.add(new QueryPath(cfName, null, ByteBufferUtil.bytes(String.valueOf(5))), ByteBufferUtil.EMPTY_BYTE_BUFFER, 2); + rm.add(cfName, ByteBufferUtil.bytes(String.valueOf(5)), ByteBufferUtil.EMPTY_BYTE_BUFFER, 2); rm.apply(); cfs.forceBlockingFlush(); - new CompactionTask(cfs, sstablesIncomplete, Integer.MAX_VALUE).execute(null); + cfs.getCompactionStrategy().getUserDefinedTask(sstablesIncomplete, Integer.MAX_VALUE).execute(null); - // verify that minor compaction does not GC when key is present - // in a non-compacted sstable - ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key1, new QueryPath(cfName))); - Assert.assertEquals(10, cf.getColumnCount()); - // verify that minor compaction does GC when key is provably not // present in a non-compacted sstable - cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key2, new QueryPath(cfName))); + ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key2, cfName)); assert cf == null; + + // verify that minor compaction still GC when key is present + // in a non-compacted sstable but the timestamp ensures we won't miss anything + cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key1, cfName)); + Assert.assertEquals(1, cf.getColumnCount()); } @Test @@@ -173,14 -175,14 +173,14 @@@ // delete so we have new delete in a diffrent SST. rm = new RowMutation(TABLE2, key3.key); - rm.delete(new QueryPath(cfName, null, ByteBufferUtil.bytes("c2")), 9); + rm.delete(cfName, ByteBufferUtil.bytes("c2"), 9); rm.apply(); cfs.forceBlockingFlush(); - new CompactionTask(cfs, sstablesIncomplete, Integer.MAX_VALUE).execute(null); + cfs.getCompactionStrategy().getUserDefinedTask(sstablesIncomplete, Integer.MAX_VALUE).execute(null); - ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key3, new QueryPath(cfName))); + ColumnFamily cf = cfs.getColumnFamily(QueryFilter.getIdentityFilter(key3, cfName)); Assert.assertTrue(!cf.getColumn(ByteBufferUtil.bytes("c2")).isLive()); - Assert.assertEquals(1, cf.getColumnCount()); + Assert.assertEquals(2, cf.getColumnCount()); } @Test