You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/09/12 19:46:40 UTC
svn commit: r1169846 - in /cassandra/trunk: ./ contrib/
interface/thrift/gen-java/org/apache/cassandra/thrift/
src/java/org/apache/cassandra/config/ src/java/org/apache/cassandra/db/
src/java/org/apache/cassandra/gms/ src/java/org/apache/cassandra/net/...
Author: jbellis
Date: Mon Sep 12 17:46:39 2011
New Revision: 1169846
URL: http://svn.apache.org/viewvc?rev=1169846&view=rev
Log:
merge from 1.0
Modified:
cassandra/trunk/ (props changed)
cassandra/trunk/CHANGES.txt
cassandra/trunk/NEWS.txt
cassandra/trunk/contrib/ (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed)
cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed)
cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
cassandra/trunk/src/java/org/apache/cassandra/utils/SlabAllocator.java
cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml
Propchange: cassandra/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7:1026516-1163782
/cassandra/branches/cassandra-0.7.0:1053690-1055654
-/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0:1125021-1130369
/cassandra/branches/cassandra-0.8.1:1101014-1125018
-/cassandra/branches/cassandra-1.0:1167086-1167366
-/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0:1167086-1169844
+/cassandra/branches/cassandra-1.0.0:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3:774578-796573
Modified: cassandra/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/CHANGES.txt (original)
+++ cassandra/trunk/CHANGES.txt Mon Sep 12 17:46:39 2011
@@ -73,7 +73,8 @@
* fix inconsistency of the CLI syntax when {} should be used instead of [{}]
(CASSANDRA-3119)
* rename CQL type names to match expected SQL behavior (CASSANDRA-3149, 3031)
- * Arena-based allocation for memtables (CASSANDRA-2252, 3162, 3163)
+ * Arena-based allocation for memtables (CASSANDRA-2252, 3162, 3163, 3168)
+ * Default RR chance to 0.1 (CASSANDRA-3169)
0.8.6
Modified: cassandra/trunk/NEWS.txt
URL: http://svn.apache.org/viewvc/cassandra/trunk/NEWS.txt?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/NEWS.txt (original)
+++ cassandra/trunk/NEWS.txt Mon Sep 12 17:46:39 2011
@@ -11,6 +11,9 @@ Upgrading
- CQL types bytea and date were renamed to blob and timestamp, respectively,
to conform with SQL norms. CQL type int is now a 4-byte int, not 8
(which is still available as bigint).
+ - Cassandra 1.0 uses arena allocation to reduce old generation fragmentation.
+ This means there is a minimum overhead of 1MB per ColumnFamily plus
+ 1MB per index.
Features
--------
@@ -29,12 +32,6 @@ Features
- Ability to use multiple threads during a single compaction. See
multithreaded_compaction in cassandra.yaml for more details.
- Windows Service ("cassandra.bat install" to enable)
- - Hinted Handoff has two major improvements:
- - Hint replay is much more efficient thanks to a change in the data model
- - Hints are created for all replicas that do not ack a write. (Formerly,
- only replicas known to be down when the write started were hinted.)
- This means that running with read repair completely off is much more
- viable than before.
- A dead node may be replaced in a single step by starting a new node
with -Dcassandra.replace_token=<token>. More details can be found at
http://wiki.apache.org/cassandra/Operations#Replacing_a_Dead_Node
@@ -49,10 +46,13 @@ New data types
Other
-----
- - Hinted Handoff is substantially more robust, with the result that
- when HH is enabled, repair only needs to be run if a node crashes.
- - Because of this, read repair is disabled now by default on newly
- created ColumnFamilies.
+ - Hinted Handoff has two major improvements:
+ - Hint replay is much more efficient thanks to a change in the data model
+ - Hints are created for all replicas that do not ack a write. (Formerly,
+ only replicas known to be down when the write started were hinted.)
+ This means that running with read repair completely off is much more
+ viable than before, and the default read_repair_chance is reduced from 1.0
+ ("always repair") to 0.1 ("repair 10% of the time").
- The old per-ColumnFamily memtable thresholds
(memtable_throughput_in_mb, memtable_operations_in_millions,
memtable_flush_after_mins) are ignored, in favor of the global
Propchange: cassandra/trunk/contrib/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009
/cassandra/branches/cassandra-0.7/contrib:1026516-1163782
/cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654
-/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
/cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018
-/cassandra/branches/cassandra-1.0/contrib:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/contrib:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/contrib:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/contrib:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573
Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Sep 12 17:46:39 2011
@@ -1,11 +1,11 @@
/cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1131291
/cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1163782
/cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654
-/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1166782,1166809
+/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090934-1125013,1125019-1166782,1166809,1169823
/cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1125021-1130369
/cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1101014-1125018
-/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167086-1167366
-/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1167365
+/cassandra/branches/cassandra-1.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167086-1169844
+/cassandra/branches/cassandra-1.0.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1167104-1167229,1167232-1169843
/cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689
/cassandra/tags/cassandra-0.8.0-rc1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1102511-1125020
/incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198
Modified: cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/config/CFMetaData.java Mon Sep 12 17:46:39 2011
@@ -55,7 +55,7 @@ public final class CFMetaData
public final static double DEFAULT_ROW_CACHE_SIZE = 0.0;
public final static double DEFAULT_KEY_CACHE_SIZE = 200000;
- public final static double DEFAULT_READ_REPAIR_CHANCE = 1.0;
+ public final static double DEFAULT_READ_REPAIR_CHANCE = 0.1;
public final static boolean DEFAULT_REPLICATE_ON_WRITE = true;
public final static int DEFAULT_ROW_CACHE_SAVE_PERIOD_IN_SECONDS = 0;
public final static int DEFAULT_KEY_CACHE_SAVE_PERIOD_IN_SECONDS = 4 * 3600;
Modified: cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/db/Memtable.java Mon Sep 12 17:46:39 2011
@@ -90,7 +90,7 @@ public class Memtable
{
// 25% fudge factor on the base throughput * liveRatio calculation. (Based on observed
// pre-slabbing behavior -- not sure what accounts for this. May have changed with introduction of slabbing.)
- return (long) (currentThroughput.get() * cfs.liveRatio * 1.25) + allocator.size();
+ return (long) (currentThroughput.get() * cfs.liveRatio * 1.25);
}
public long getSerializedSize()
Modified: cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/gms/Gossiper.java Mon Sep 12 17:46:39 2011
@@ -213,11 +213,13 @@ public class Gossiper implements IFailur
public void setVersion(InetAddress address, int version)
{
+ logger.debug("Setting version {} for {}", version, address);
versions.put(address, version);
}
public void resetVersion(InetAddress endpoint)
{
+ logger.debug("Reseting version for {}", endpoint);
versions.remove(endpoint);
}
Modified: cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/net/IncomingTcpConnection.java Mon Sep 12 17:46:39 2011
@@ -159,6 +159,8 @@ public class IncomingTcpConnection exten
private void close()
{
+ // reset version here, since we set when starting an incoming socket
+ Gossiper.instance.resetVersion(socket.getInetAddress());
try
{
socket.close();
Modified: cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/net/OutboundTcpConnection.java Mon Sep 12 17:46:39 2011
@@ -197,9 +197,6 @@ public class OutboundTcpConnection exten
out = null;
socket = null;
}
-
- // when we see the node again, try to connect at the most recent protocol we know about
- Gossiper.instance.resetVersion(endpoint);
}
private Pair<Message, String> take()
Modified: cassandra/trunk/src/java/org/apache/cassandra/utils/SlabAllocator.java
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/utils/SlabAllocator.java?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/java/org/apache/cassandra/utils/SlabAllocator.java (original)
+++ cassandra/trunk/src/java/org/apache/cassandra/utils/SlabAllocator.java Mon Sep 12 17:46:39 2011
@@ -29,6 +29,8 @@ import java.util.concurrent.atomic.Atomi
import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import com.google.common.collect.MapMaker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* The SlabAllocator is a bump-the-pointer allocator that allocates
@@ -46,24 +48,13 @@ import com.google.common.collect.MapMake
*/
public class SlabAllocator extends Allocator
{
+ private static Logger logger = LoggerFactory.getLogger(SlabAllocator.class);
+
private final static int REGION_SIZE = 1024 * 1024;
private final static int MAX_CLONED_SIZE = 128 * 1024; // bigger than this don't go in the region
private final AtomicReference<Region> currentRegion = new AtomicReference<Region>();
- private final Collection<Region> filledRegions = Collections.newSetFromMap(new MapMaker().weakKeys().<Region, Boolean>makeMap());
-
- /** @return Total number of bytes allocated by this allocator. */
- public long size()
- {
- Iterable<Region> regions = filledRegions;
- if (currentRegion.get() != null)
- regions = Iterables.concat(regions, Collections.<Region>singleton(currentRegion.get()));
-
- long total = 0;
- for (Region region : regions)
- total += region.size;
- return total;
- }
+ private volatile int regionCount;
public ByteBuffer allocate(int size)
{
@@ -86,23 +77,11 @@ public class SlabAllocator extends Alloc
return cloned;
// not enough space!
- tryRetireRegion(region);
+ currentRegion.compareAndSet(region, null);
}
}
/**
- * Try to retire the current region if it is still <code>region</code>.
- * Postcondition is that curRegion.get() != region
- */
- private void tryRetireRegion(Region region)
- {
- if (currentRegion.compareAndSet(region, null))
- {
- filledRegions.add(region);
- }
- }
-
- /**
* Get the current region, or, if there is no current region, allocate a new one
*/
private Region getRegion()
@@ -122,6 +101,8 @@ public class SlabAllocator extends Alloc
{
// we won race - now we need to actually do the expensive allocation step
region.init();
+ regionCount++;
+ logger.debug("{} regions now allocated in {}", regionCount, this);
return region;
}
// someone else won race - that's fine, we'll try to grab theirs
Modified: cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml
URL: http://svn.apache.org/viewvc/cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml?rev=1169846&r1=1169845&r2=1169846&view=diff
==============================================================================
--- cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml (original)
+++ cassandra/trunk/src/resources/org/apache/cassandra/cli/CliHelp.yaml Mon Sep 12 17:46:39 2011
@@ -546,22 +546,23 @@ commands:
follower replicas. Accepts the values true and false.
- row_cache_provider: The provider for the row cache to use for this
- column family. Defaults to ConcurrentLinkedHashCacheProvider. .
+ column family.
Supported values are:
- ConcurrentLinkedHashCacheProvider
- - SerializingCacheProvider
+ - SerializingCacheProvider (requires JNA)
It is also valid to specify the fully-qualified class name to a class
that implements org.apache.cassandra.cache.IRowCacheProvider.
- ConcurrentLinkedHashCacheProvider provides the same features as the versions
- prior to Cassandra v0.8. Row data is cached using the Java JVM heap.
-
- SerializingCacheProvider serialises the contents of the row and
- stores the data off the JVM Heap. This may reduce the GC pressure.
- NOTE: This provider requires JNA.jar to be in the class path to
- enable native methods.
+ row_cache_provider defaults to ConcurrentLinkedHashCacheProvider,
+ but if you have JNA installed you should usually use
+ SerializingCacheProvider, which serialises the contents of the
+ row and stores it in native memory, i.e., off the JVM
+ Heap. Serialized rows take significantly less memory than
+ "live" rows in the JVM, so you can cache more rows in a given
+ memory footprint. And storing the cache off-heap means you
+ can use smaller heap sizes, reducing the impact of GC pauses.
- compression: Use compression for SSTable data files.
@@ -818,22 +819,23 @@ commands:
follower replicas. Accepts the values true and false.
- row_cache_provider: The provider for the row cache to use for this
- column family. Defaults to ConcurrentLinkedHashCacheProvider. .
+ column family.
Supported values are:
- ConcurrentLinkedHashCacheProvider
- - SerializingCacheProvider
+ - SerializingCacheProvider (requires JNA)
It is also valid to specify the fully-qualified class name to a class
that implements org.apache.cassandra.cache.IRowCacheProvider.
- ConcurrentLinkedHashCacheProvider provides the same features as the versions
- prior to Cassandra v0.8. Row data is cached using the Java JVM heap.
-
- SerializingCacheProvider serialises the contents of the row and
- stores the data off the JVM Heap. This may reduce the GC pressure.
- NOTE: Thsi provider requires JNA.jar to be in the class path to
- enable native methods.
+ row_cache_provider defaults to ConcurrentLinkedHashCacheProvider,
+ but if you have JNA installed you should usually use
+ SerializingCacheProvider, which serialises the contents of the
+ row and stores it in native memory, i.e., off the JVM
+ Heap. Serialized rows take significantly less memory than
+ "live" rows in the JVM, so you can cache more rows in a given
+ memory footprint. And storing the cache off-heap means you
+ can use smaller heap sizes, reducing the impact of GC pauses.
- compression: Use compression for SSTable data files. Accepts the values true and false.
@@ -929,7 +931,7 @@ commands:
Valid options are:
- ascii
- bytes: if used without arguments generates a zero length byte array
- - int32
+ - int
- integer
- lexicaluuid: if used without arguments generates a new random uuid
- long
@@ -999,7 +1001,7 @@ commands:
Valid options are:
- ascii
- bytes: if used without arguments generates a zero length byte array
- - int32
+ - int
- integer
- lexicaluuid: if used without arguments generates a new random uuid
- long
@@ -1043,7 +1045,7 @@ commands:
Supported values are:
- ascii
- bytes: if used without arguments generates a zero length byte array
- - int32
+ - int
- integer
- lexicaluuid: if used without arguments generates a new random uuid
- long
@@ -1148,7 +1150,7 @@ commands:
- ascii
- bytes
- counterColumn (distributed counter column)
- - int32
+ - int
- integer (a generic variable-length integer type)
- lexicalUUID
- long