You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2015/01/28 16:20:31 UTC
[7/7] cassandra git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk
Conflicts:
src/java/org/apache/cassandra/db/compaction/CompactionManager.java
src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java
src/java/org/apache/cassandra/service/ActiveRepairService.java
src/java/org/apache/cassandra/streaming/StreamSession.java
src/java/org/apache/cassandra/streaming/StreamTransferTask.java
src/java/org/apache/cassandra/streaming/messages/OutgoingFileMessage.java
test/unit/org/apache/cassandra/SchemaLoader.java
test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java
test/unit/org/apache/cassandra/db/compaction/BlacklistingCompactionsTest.java
test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9c4a776d
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9c4a776d
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9c4a776d
Branch: refs/heads/trunk
Commit: 9c4a776d207739f918cba93cc40d2029ae5c05f0
Parents: b4b1bdd c75ee41
Author: Benedict Elliott Smith <be...@apache.org>
Authored: Wed Jan 28 15:19:58 2015 +0000
Committer: Benedict Elliott Smith <be...@apache.org>
Committed: Wed Jan 28 15:19:58 2015 +0000
----------------------------------------------------------------------
CHANGES.txt | 1 +
build.xml | 1 +
.../apache/cassandra/db/ColumnFamilyStore.java | 143 +++---
.../org/apache/cassandra/db/DataTracker.java | 6 +-
.../compaction/AbstractCompactionStrategy.java | 2 +-
.../db/compaction/CompactionController.java | 20 +-
.../db/compaction/CompactionManager.java | 24 +-
.../cassandra/db/compaction/CompactionTask.java | 9 +-
.../cassandra/db/index/SecondaryIndex.java | 10 +-
.../apache/cassandra/io/sstable/SSTable.java | 1 +
.../cassandra/io/sstable/SSTableLoader.java | 14 +-
.../cassandra/io/sstable/SSTableRewriter.java | 15 +-
.../io/sstable/format/SSTableReader.java | 441 +++++++++----------
.../io/sstable/format/big/BigTableWriter.java | 4 +-
.../cassandra/service/ActiveRepairService.java | 26 +-
.../cassandra/streaming/StreamReceiveTask.java | 10 +-
.../cassandra/streaming/StreamSession.java | 28 +-
.../cassandra/streaming/StreamTransferTask.java | 10 +-
.../streaming/messages/OutgoingFileMessage.java | 10 +-
.../cassandra/tools/StandaloneScrubber.java | 2 +-
.../apache/cassandra/utils/concurrent/Ref.java | 134 ++++++
.../cassandra/utils/concurrent/RefCounted.java | 94 ++++
.../utils/concurrent/RefCountedImpl.java | 132 ++++++
.../apache/cassandra/utils/concurrent/Refs.java | 219 +++++++++
.../unit/org/apache/cassandra/SchemaLoader.java | 11 +
.../org/apache/cassandra/db/KeyCacheTest.java | 9 +-
.../db/compaction/AntiCompactionTest.java | 26 +-
.../compaction/BlacklistingCompactionsTest.java | 11 +
.../cassandra/io/sstable/LegacySSTableTest.java | 2 +-
.../io/sstable/SSTableRewriterTest.java | 6 +-
.../streaming/StreamTransferTaskTest.java | 2 +-
.../streaming/StreamingTransferTest.java | 18 +-
.../utils/concurrent/RefCountedTest.java | 85 ++++
33 files changed, 1100 insertions(+), 426 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 432ebcc8,d142a68..53a2c63
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,64 -1,10 +1,65 @@@
+3.0
+ * rpc_interface and listen_interface generate NPE on startup when specified interface doesn't exist (CASSANDRA-8677)
+ * Fix ArrayIndexOutOfBoundsException in nodetool cfhistograms (CASSANDRA-8514)
+ * Serializing Row cache alternative, fully off heap (CASSANDRA-7438)
+ * Duplicate rows returned when in clause has repeated values (CASSANDRA-6707)
+ * Make CassandraException unchecked, extend RuntimeException (CASSANDRA-8560)
+ * Support direct buffer decompression for reads (CASSANDRA-8464)
+ * DirectByteBuffer compatible LZ4 methods (CASSANDRA-7039)
+ * Add role based access control (CASSANDRA-7653)
+ * Group sstables for anticompaction correctly (CASSANDRA-8578)
+ * Add ReadFailureException to native protocol, respond
+ immediately when replicas encounter errors while handling
+ a read request (CASSANDRA-7886)
+ * Switch CommitLogSegment from RandomAccessFile to nio (CASSANDRA-8308)
+ * Allow mixing token and partition key restrictions (CASSANDRA-7016)
+ * Support index key/value entries on map collections (CASSANDRA-8473)
+ * Modernize schema tables (CASSANDRA-8261)
+ * Support for user-defined aggregation functions (CASSANDRA-8053)
+ * Fix NPE in SelectStatement with empty IN values (CASSANDRA-8419)
+ * Refactor SelectStatement, return IN results in natural order instead
+ of IN value list order and ignore duplicate values in partition key IN restrictions (CASSANDRA-7981)
+ * Support UDTs, tuples, and collections in user-defined
+ functions (CASSANDRA-7563)
+ * Fix aggregate fn results on empty selection, result column name,
+ and cqlsh parsing (CASSANDRA-8229)
+ * Mark sstables as repaired after full repair (CASSANDRA-7586)
+ * Extend Descriptor to include a format value and refactor reader/writer
+ APIs (CASSANDRA-7443)
+ * Integrate JMH for microbenchmarks (CASSANDRA-8151)
+ * Keep sstable levels when bootstrapping (CASSANDRA-7460)
+ * Add Sigar library and perform basic OS settings check on startup (CASSANDRA-7838)
+ * Support for aggregation functions (CASSANDRA-4914)
+ * Remove cassandra-cli (CASSANDRA-7920)
+ * Accept dollar quoted strings in CQL (CASSANDRA-7769)
+ * Make assassinate a first class command (CASSANDRA-7935)
+ * Support IN clause on any clustering column (CASSANDRA-4762)
+ * Improve compaction logging (CASSANDRA-7818)
+ * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917)
+ * Do anticompaction in groups (CASSANDRA-6851)
+ * Support user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 7781, 7929,
+ 7924, 7812, 8063, 7813, 7708)
+ * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416)
+ * Move sstable RandomAccessReader to nio2, which allows using the
+ FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050)
+ * Remove CQL2 (CASSANDRA-5918)
+ * Add Thrift get_multi_slice call (CASSANDRA-6757)
+ * Optimize fetching multiple cells by name (CASSANDRA-6933)
+ * Allow compilation in java 8 (CASSANDRA-7028)
+ * Make incremental repair default (CASSANDRA-7250)
+ * Enable code coverage thru JaCoCo (CASSANDRA-7226)
+ * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369)
+ * Shorten SSTable path (CASSANDRA-6962)
+ * Use unsafe mutations for most unit tests (CASSANDRA-6969)
+ * Fix race condition during calculation of pending ranges (CASSANDRA-7390)
+ * Fail on very large batch sizes (CASSANDRA-8011)
+ * Improve concurrency of repair (CASSANDRA-6455, 8208)
+
+
2.1.3
+ * Safer Resource Management (CASSANDRA-7705)
* Make sure we compact highly overlapping cold sstables with
STCS (CASSANDRA-8635)
- * rpc_interface and listen_interface generate NPE on startup when specified interface doesn't exist (CASSANDRA-8677)
- * Fix ArrayIndexOutOfBoundsException in nodetool cfhistograms (CASSANDRA-8514)
- * Switch from yammer metrics for nodetool cf/proxy histograms (CASSANDRA-8662)
* Make sure we don't add tmplink files to the compaction
strategy (CASSANDRA-8580)
* (cqlsh) Handle maps with blob keys (CASSANDRA-8372)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/build.xml
----------------------------------------------------------------------
diff --cc build.xml
index 12c877a,d53a0f7..ce9a603
--- a/build.xml
+++ b/build.xml
@@@ -1117,9 -1107,9 +1117,10 @@@
<formatter type="brief" usefile="false"/>
<jvmarg value="-Dstorage-config=${test.conf}"/>
<jvmarg value="-Djava.awt.headless=true"/>
- <jvmarg value="-javaagent:${basedir}/lib/jamm-0.3.0.jar" />
+ <!-- Cassandra 3.0+ needs <jvmarg line="... ${additionalagent}" /> here! (not value=) -->
+ <jvmarg line="-javaagent:${basedir}/lib/jamm-0.3.0.jar ${additionalagent}" />
<jvmarg value="-ea"/>
+ <jvmarg value="-Dcassandra.debugrefcount=true"/>
<jvmarg value="-Xss256k"/>
<jvmarg value="-Dcassandra.memtable_row_overhead_computation_step=100"/>
<jvmarg value="-Dcassandra.test.use_prepared=${cassandra.test.use_prepared}"/>
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 78537fa,62aadf9..9824e4a
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -58,11 -59,9 +59,10 @@@ import org.apache.cassandra.dht.*
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.io.FSReadError;
- import org.apache.cassandra.io.FSWriteError;
import org.apache.cassandra.io.compress.CompressionParameters;
-import org.apache.cassandra.io.sstable.*;
import org.apache.cassandra.io.sstable.Descriptor;
+import org.apache.cassandra.io.sstable.*;
+import org.apache.cassandra.io.sstable.format.*;
import org.apache.cassandra.io.sstable.metadata.CompactionMetadata;
import org.apache.cassandra.io.sstable.metadata.MetadataType;
import org.apache.cassandra.io.util.FileUtils;
@@@ -2230,14 -2211,12 +2192,13 @@@ public class ColumnFamilyStore implemen
snapshotWithoutFlush(snapshotName, null);
}
- public void snapshotWithoutFlush(String snapshotName, Predicate<SSTableReader> predicate)
+ public Set<SSTableReader> snapshotWithoutFlush(String snapshotName, Predicate<SSTableReader> predicate)
{
+ Set<SSTableReader> snapshottedSSTables = new HashSet<>();
for (ColumnFamilyStore cfs : concatWithIndexes())
{
- DataTracker.View currentView = cfs.markCurrentViewReferenced();
final JSONArray filesJSONArr = new JSONArray();
- try
+ try (RefViewFragment currentView = cfs.selectAndReference(ALL_SSTABLES))
{
for (SSTableReader ssTable : currentView.sstables)
{
@@@ -2256,12 -2234,7 +2217,8 @@@
writeSnapshotManifest(filesJSONArr, snapshotName);
}
- finally
- {
- SSTableReader.releaseReferences(currentView.sstables);
- }
}
+ return snapshottedSSTables;
}
private void writeSnapshotManifest(final JSONArray filesJSONArr, final String snapshotName)
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/DataTracker.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/compaction/AbstractCompactionStrategy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/compaction/CompactionController.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionController.java
index c8c028d,5217189..1f9c34f
--- a/src/java/org/apache/cassandra/db/compaction/CompactionController.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionController.java
@@@ -31,8 -30,11 +31,10 @@@ import org.slf4j.LoggerFactory
import org.apache.cassandra.db.ColumnFamilyStore;
import org.apache.cassandra.db.DataTracker;
import org.apache.cassandra.db.DecoratedKey;
-import org.apache.cassandra.io.sstable.SSTableReader;
import org.apache.cassandra.utils.AlwaysPresentFilter;
+ import org.apache.cassandra.utils.concurrent.Refs;
+
/**
* Manage compaction options.
*/
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java
index 06fabba,f59938f..99945b6
--- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
+++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java
@@@ -84,10 -82,11 +84,12 @@@ import org.apache.cassandra.service.Sto
import org.apache.cassandra.utils.concurrent.OpOrder;
import org.apache.cassandra.utils.*;
+ import org.apache.cassandra.utils.concurrent.Refs;
+
/**
+ * <p>
* A singleton which manages a private executor of ongoing compactions.
- * <p/>
+ * </p>
* Scheduling for compaction is accomplished by swapping sstables to be compacted into
* a set via DataTracker. New scheduling attempts will ignore currently compacting
* sstables.
@@@ -417,8 -409,8 +413,8 @@@ public class CompactionManager implemen
*/
public void performAnticompaction(ColumnFamilyStore cfs,
Collection<Range<Token>> ranges,
- Collection<SSTableReader> validatedForRepair,
+ Refs<SSTableReader> validatedForRepair,
- long repairedAt) throws InterruptedException, ExecutionException, IOException
+ long repairedAt) throws InterruptedException, IOException
{
logger.info("Starting anticompaction for {}.{} on {}/{} sstables", cfs.keyspace.getName(), cfs.getColumnFamilyName(), validatedForRepair.size(), cfs.getSSTables().size());
logger.debug("Starting anticompaction for ranges {}", ranges);
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/compaction/CompactionTask.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/db/index/SecondaryIndex.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/io/sstable/SSTable.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/io/sstable/SSTableLoader.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c4a776d/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java
----------------------------------------------------------------------