Merge branch 'cassandra-2.0' into cassandra-2.1
Conflicts:
CHANGES.txt
src/java/org/apache/cassandra/cache/RefCountedMemory.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5fd02f4
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5fd02f4
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5fd02f4
Branch: refs/heads/trunk
Commit: f5fd02f453cd06573b7a4a70c03f6435727705b8
Parents: ab87f83 871a603
Author: Aleksey Yeschenko <[email protected]>
Authored: Fri Apr 25 03:42:53 2014 +0300
Committer: Aleksey Yeschenko <[email protected]>
Committed: Fri Apr 25 03:42:53 2014 +0300
----------------------------------------------------------------------
CHANGES.txt | 3 +-
.../cassandra/cache/RefCountedMemory.java | 7 ++-
.../cassandra/cache/SerializingCache.java | 53 +++++++++++++++-----
3 files changed, 48 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5fd02f4/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index 11630e7,73c5034..9c78e33
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,59 -1,4 +1,58 @@@
-2.0.8
+2.1.0-beta2
+ * Increase default CL space to 8GB (CASSANDRA-7031)
+ * Add range tombstones to read repair digests (CASSANDRA-6863)
+ * Fix BTree.clear for large updates (CASSANDRA-6943)
+ * Fail write instead of logging a warning when unable to append to CL
+ (CASSANDRA-6764)
+ * Eliminate possibility of CL segment appearing twice in active list
+ (CASSANDRA-6557)
+ * Apply DONTNEED fadvise to commitlog segments (CASSANDRA-6759)
+ * Switch CRC component to Adler and include it for compressed sstables
+ (CASSANDRA-4165)
+ * Allow cassandra-stress to set compaction strategy options (CASSANDRA-6451)
+ * Add broadcast_rpc_address option to cassandra.yaml (CASSANDRA-5899)
+ * Auto reload GossipingPropertyFileSnitch config (CASSANDRA-5897)
+ * Fix overflow of memtable_total_space_in_mb (CASSANDRA-6573)
+ * Fix ABTC NPE and apply update function correctly (CASSANDRA-6692)
+ * Allow nodetool to use a file or prompt for password (CASSANDRA-6660)
+ * Fix AIOOBE when concurrently accessing ABSC (CASSANDRA-6742)
+ * Fix assertion error in ALTER TYPE RENAME (CASSANDRA-6705)
+ * Scrub should not always clear out repaired status (CASSANDRA-5351)
+ * Improve handling of range tombstone for wide partitions (CASSANDRA-6446)
+ * Fix ClassCastException for compact table with composites (CASSANDRA-6738)
+ * Fix potentially repairing with wrong nodes (CASSANDRA-6808)
+ * Change caching option syntax (CASSANDRA-6745)
+ * Fix stress to do proper counter reads (CASSANDRA-6835)
+ * Fix help message for stress counter_write (CASSANDRA-6824)
+ * Fix stress smart Thrift client to pick servers correctly (CASSANDRA-6848)
+ * Add logging levels (minimal, normal or verbose) to stress tool
(CASSANDRA-6849)
+ * Fix race condition in Batch CLE (CASSANDRA-6860)
+ * Improve cleanup/scrub/upgradesstables failure handling (CASSANDRA-6774)
+ * ByteBuffer write() methods for serializing sstables (CASSANDRA-6781)
+ * Proper compare function for CollectionType (CASSANDRA-6783)
+ * Update native server to Netty 4 (CASSANDRA-6236)
+ * Fix off-by-one error in stress (CASSANDRA-6883)
+ * Make OpOrder AutoCloseable (CASSANDRA-6901)
+ * Remove sync repair JMX interface (CASSANDRA-6900)
+ * Add multiple memory allocation options for memtables (CASSANDRA-6689)
+ * Remove adjusted op rate from stress output (CASSANDRA-6921)
+ * Add optimized CF.hasColumns() implementations (CASSANDRA-6941)
+ * Serialize batchlog mutations with the version of the target node
+ (CASSANDRA-6931)
+ * Optimize CounterColumn#reconcile() (CASSANDRA-6953)
+ * Properly remove 1.2 sstable support in 2.1 (CASSANDRA-6869)
+ * Lock counter cells, not partitions (CASSANDRA-6880)
+ * Track presence of legacy counter shards in sstables (CASSANDRA-6888)
+ * Ensure safe resource cleanup when replacing sstables (CASSANDRA-6912)
+ * Add failure handler to async callback (CASSANDRA-6747)
+ * Fix AE when closing SSTable without releasing reference (CASSANDRA-7000)
+ * Clean up IndexInfo on keyspace/table drops (CASSANDRA-6924)
+ * Only snapshot relative SSTables when sequential repair (CASSANDRA-7024)
+ * Require nodetool rebuild_index to specify index names (CASSANDRA-7038)
+ * fix cassandra stress errors on reads with native protocol (CASSANDRA-7033)
+ * Use OpOrder to guard sstable references for reads (CASSANDRA-6919)
+ * Preemptive opening of compaction result (CASSANDRA-6916)
+Merged from 2.0:
- 2.0.8
* Set JMX RMI port to 7199 (CASSANDRA-7087)
* Use LOCAL_QUORUM for data reads at LOCAL_SERIAL (CASSANDRA-6939)
* Log a warning for large batches (CASSANDRA-6487)
@@@ -124,9 -78,7 +123,11 @@@ Merged from 1.2
* Schedule schema pulls on change (CASSANDRA-6971)
* Non-droppable verbs shouldn't be dropped from OTC (CASSANDRA-6980)
* Shutdown batchlog executor in SS#drain() (CASSANDRA-7025)
+ * Fix batchlog to account for CF truncation records (CASSANDRA-6999)
+ * Fix CQLSH parsing of functions and BLOB literals (CASSANDRA-7018)
* Properly load trustore in the native protocol (CASSANDRA-6847)
++ * Always clean up references in SerializingCache (CASSANDRA-6994)
++ * Don't shut MessagingService down when replacing a node (CASSANDRA-6476)
2.0.6
http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5fd02f4/src/java/org/apache/cassandra/cache/RefCountedMemory.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/cache/RefCountedMemory.java
index e5c543e,43c87b9..fd26e2b
--- a/src/java/org/apache/cassandra/cache/RefCountedMemory.java
+++ b/src/java/org/apache/cassandra/cache/RefCountedMemory.java
@@@ -21,10 -21,9 +21,9 @@@ import java.util.concurrent.atomic.Atom
import org.apache.cassandra.io.util.Memory;
- public class RefCountedMemory extends Memory
+ public class RefCountedMemory extends Memory implements AutoCloseable
{
- private volatile int references = 1;
- private final AtomicInteger references = new AtomicInteger(1);
+ private static final AtomicIntegerFieldUpdater<RefCountedMemory> UPDATER
= AtomicIntegerFieldUpdater.newUpdater(RefCountedMemory.class, "references");
public RefCountedMemory(long size)
{
@@@ -50,20 -49,12 +49,24 @@@
/** decrement reference count. if count reaches zero, the object is
freed. */
public void unreference()
{
- if (references.decrementAndGet() == 0)
- free();
+ if (UPDATER.decrementAndGet(this) == 0)
+ super.free();
+ }
+
+ public RefCountedMemory copy(long newSize)
+ {
+ RefCountedMemory copy = new RefCountedMemory(newSize);
+ copy.put(0, this, 0, Math.min(size(), newSize));
+ return copy;
+ }
+
+ public void free()
+ {
+ throw new AssertionError();
}
+ public void close()
+ {
+ unreference();
+ }
}