Merge branch 'cassandra-2.0' into trunk

This commit is contained in:
Jonathan Ellis 2013-12-02 21:39:20 -06:00
commit 57516e082b
3 changed files with 9 additions and 1 deletions

View File

@ -17,6 +17,7 @@
2.0.4
* Reduce gossip memory use by interning VersionedValue strings (CASSANDRA-6410)
* Allow specifying datacenters to participate in a repair (CASSANDRA-6218)
* Fix divide-by-zero in PCI (CASSANDRA-6403)
* Fix setting last compacted key in the wrong level for LCS (CASSANDRA-6284)

View File

@ -195,6 +195,9 @@ startswith() { [ "${1#$2}" != "$1" ]; }
# Per-thread stack size.
JVM_OPTS="$JVM_OPTS -Xss256k"
# Larger interned string table, for gossip's benefit (CASSANDRA-6410)
JVM_OPTS="$JVM_OPTS -XX:StringTableSize=1000003"
# GC tuning options
JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC"
JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC"

View File

@ -80,7 +80,11 @@ public class VersionedValue implements Comparable<VersionedValue>
private VersionedValue(String value, int version)
{
assert value != null;
this.value = value;
// blindly interning everything is somewhat suboptimal -- lots of VersionedValues are unique --
// but harmless, and interning the non-unique ones saves significant memory. (Unfortunately,
// we don't really have enough information here in VersionedValue to tell the probably-unique
// values apart.) See CASSANDRA-6410.
this.value = value.intern();
this.version = version;
}