Updated Branches: refs/heads/cassandra-1.1 1686a36ed -> 46e422a94 refs/heads/trunk 4b9a80231 -> 06a7bf36b
Merge branch 'cassandra-1.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/06a7bf36 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/06a7bf36 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/06a7bf36 Branch: refs/heads/trunk Commit: 06a7bf36b7b2ab6f45ca0765c547949cc9647bc3 Parents: 4b9a802 46e422a Author: Jonathan Ellis <[email protected]> Authored: Wed May 2 12:48:30 2012 -0500 Committer: Jonathan Ellis <[email protected]> Committed: Wed May 2 12:48:30 2012 -0500 ---------------------------------------------------------------------- CHANGES.txt | 2 + .../cassandra/cql3/statements/SelectStatement.java | 8 +- .../db/compaction/AbstractCompactionIterable.java | 17 +-- .../db/compaction/AbstractCompactionStrategy.java | 23 +++- .../db/compaction/CompactionIterable.java | 20 +--- .../cassandra/db/compaction/CompactionManager.java | 16 +-- .../cassandra/db/compaction/CompactionTask.java | 7 +- .../db/compaction/ICompactionScanner.java | 34 +++++ .../db/compaction/LeveledCompactionStrategy.java | 103 ++++++++++++++- .../cassandra/db/compaction/LeveledManifest.java | 3 +- .../db/compaction/ParallelCompactionIterable.java | 24 ++-- .../apache/cassandra/io/sstable/SSTableReader.java | 2 + .../cassandra/io/sstable/SSTableScanner.java | 13 ++- .../cassandra/service/AntiEntropyService.java | 4 +- test/conf/cassandra.yaml | 1 + test/unit/org/apache/cassandra/SchemaLoader.java | 9 +- .../compaction/LeveledCompactionStrategyTest.java | 87 ++++++++++++ .../cassandra/io/LazilyCompactedRowTest.java | 14 +- 18 files changed, 305 insertions(+), 82 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/CHANGES.txt ---------------------------------------------------------------------- diff --cc CHANGES.txt index 890c577,83c171b..bac8b0e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,14 -1,5 +1,15 @@@ +1.2-dev + * Track tombstone expiration and compact when tombstone content is + higher than a configurable threshold, default 20% (CASSANDRA-3442) + * update MurmurHash to version 3 (CASSANDRA-2975) + * (CLI) track elapsed time for `delete' operation (CASSANDRA-4060) + * (CLI) jline version is bumped to 1.0 to properly support + 'delete' key function (CASSANDRA-4132) + * Save IndexSummary into new SSTable 'Summary' component (CASSANDRA-2392) + + 1.1.1-dev + * Open 1 sstableScanner per level for leveled compaction (CASSANDRA-4142) * Optimize reads when row deletion timestamps allow us to restrict the set of sstables we check (CASSANDRA-4116) * incremental repair by token range (CASSANDRA-3912) http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/AbstractCompactionIterable.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java index 5e0a911,3f51b88..41128b0 --- a/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java @@@ -15,8 -15,10 +15,9 @@@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.apache.cassandra.db.compaction; + import java.io.IOException; import java.util.*; import java.util.concurrent.TimeUnit; http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/CompactionIterable.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/CompactionManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/CompactionTask.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/CompactionTask.java index 96a4273,b66f20b..be7fc81 --- a/src/java/org/apache/cassandra/db/compaction/CompactionTask.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionTask.java @@@ -119,11 -124,11 +120,11 @@@ public class CompactionTask extends Abs logger.debug("Expected bloom filter size : " + keysPerSSTable); AbstractCompactionIterable ci = DatabaseDescriptor.isMultithreadedCompaction() - ? new ParallelCompactionIterable(compactionType, toCompact, controller) - : new CompactionIterable(compactionType, toCompact, controller); + ? new ParallelCompactionIterable(compactionType, strategy.getScanners(toCompact), controller) + : new CompactionIterable(compactionType, strategy.getScanners(toCompact), controller); CloseableIterator<AbstractCompactedRow> iter = ci.iterator(); Iterator<AbstractCompactedRow> nni = Iterators.filter(iter, Predicates.notNull()); - Map<DecoratedKey, Long> cachedKeys = new HashMap<DecoratedKey, Long>(); + Map<DecoratedKey, RowIndexEntry> cachedKeys = new HashMap<DecoratedKey, RowIndexEntry>(); // we can't preheat until the tracker has been set. This doesn't happen until we tell the cfs to // replace the old entries. Track entries to preheat here until then. http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java index 0d5bdc7,1bc40fd..361c333 --- a/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/LeveledCompactionStrategy.java @@@ -7,16 -9,19 +7,17 @@@ * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. + * http://www.apache.org/licenses/LICENSE-2.0 * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ - +package org.apache.cassandra.db.compaction; + import java.io.IOException; import java.util.*; import java.util.concurrent.atomic.AtomicReference; http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/LeveledManifest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/db/compaction/ParallelCompactionIterable.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/io/sstable/SSTableReader.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java ---------------------------------------------------------------------- diff --cc src/java/org/apache/cassandra/io/sstable/SSTableScanner.java index 902f926,26ed908..820c0bb --- a/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableScanner.java @@@ -25,22 -27,19 +25,22 @@@ import java.util.Iterator import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.cassandra.db.compaction.ICompactionScanner; import org.apache.cassandra.db.DecoratedKey; +import org.apache.cassandra.db.RowIndexEntry; import org.apache.cassandra.db.RowPosition; import org.apache.cassandra.db.columniterator.IColumnIterator; import org.apache.cassandra.db.filter.QueryFilter; import org.apache.cassandra.io.util.RandomAccessReader; +import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.utils.ByteBufferUtil; - import org.apache.cassandra.utils.CloseableIterator; - public class SSTableScanner implements CloseableIterator<IColumnIterator> + public class SSTableScanner implements ICompactionScanner { - private static Logger logger = LoggerFactory.getLogger(SSTableScanner.class); + private static final Logger logger = LoggerFactory.getLogger(SSTableScanner.class); - protected final RandomAccessReader file; + protected final RandomAccessReader dfile; + protected final RandomAccessReader ifile; public final SSTableReader sstable; private IColumnIterator row; protected boolean exhausted = false; @@@ -142,11 -119,16 +142,16 @@@ } } - public long getFilePointer() + public long getCurrentPosition() { - return file.getFilePointer(); + return dfile.getFilePointer(); } + public String getBackingFiles() + { + return sstable.toString(); + } + public boolean hasNext() { if (iterator == null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/src/java/org/apache/cassandra/service/AntiEntropyService.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/06a7bf36/test/unit/org/apache/cassandra/io/LazilyCompactedRowTest.java ----------------------------------------------------------------------
