[jira] [Updated] (CASSANDRA-6488) Batchlog writes consume unnecessarily large amounts of CPU on vnodes clusters

2013-12-15 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-6488:
-

Fix Version/s: 2.0.4
   1.2.13

 Batchlog writes consume unnecessarily large amounts of CPU on vnodes clusters
 -

 Key: CASSANDRA-6488
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6488
 Project: Cassandra
  Issue Type: Bug
Reporter: Rick Branson
Assignee: Aleksey Yeschenko
 Fix For: 1.2.13, 2.0.4

 Attachments: 6488-rbranson-patch.txt, 6488-v2.txt, 6488-v3.txt, graph 
 (21).png


 The cloneTokenOnlyMap call in StorageProxy.getBatchlogEndpoints causes 
 enormous amounts of CPU to be consumed on clusters with many vnodes. I 
 created a patch to cache this data as a workaround and deployed it to a 
 production cluster with 15,000 tokens. CPU consumption drop to 1/5th. This 
 highlights the overall issues with cloneOnlyTokenMap() calls on vnodes 
 clusters. I'm including the maybe-not-the-best-quality workaround patch to 
 use as a reference, but cloneOnlyTokenMap is a systemic issue and every place 
 it's called should probably be investigated.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (CASSANDRA-6488) Batchlog writes consume unnecessarily large amounts of CPU on vnodes clusters

2013-12-15 Thread Aleksey Yeschenko (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Yeschenko updated CASSANDRA-6488:
-

Attachment: 6488-v3.txt

v3 merges both and has some minor (stylistic) changes to SP on top.

 Batchlog writes consume unnecessarily large amounts of CPU on vnodes clusters
 -

 Key: CASSANDRA-6488
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6488
 Project: Cassandra
  Issue Type: Bug
Reporter: Rick Branson
Assignee: Aleksey Yeschenko
 Fix For: 1.2.13, 2.0.4

 Attachments: 6488-rbranson-patch.txt, 6488-v2.txt, 6488-v3.txt, graph 
 (21).png


 The cloneTokenOnlyMap call in StorageProxy.getBatchlogEndpoints causes 
 enormous amounts of CPU to be consumed on clusters with many vnodes. I 
 created a patch to cache this data as a workaround and deployed it to a 
 production cluster with 15,000 tokens. CPU consumption drop to 1/5th. This 
 highlights the overall issues with cloneOnlyTokenMap() calls on vnodes 
 clusters. I'm including the maybe-not-the-best-quality workaround patch to 
 use as a reference, but cloneOnlyTokenMap is a systemic issue and every place 
 it's called should probably be investigated.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


git commit: Improve batchlog write performance with vnodes

2013-12-15 Thread aleksey
Updated Branches:
  refs/heads/cassandra-1.2 a3d91dc9d - 4be9e6720


Improve batchlog write performance with vnodes

patch by Jonathan Ellis and Rick Branson; reviewed by Aleksey Yeschenko
for CASSANDRA-6488


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4be9e672
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4be9e672
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4be9e672

Branch: refs/heads/cassandra-1.2
Commit: 4be9e6720d9f94a83aa42153c3e71ae1e557d2d9
Parents: a3d91dc
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:29:56 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:29:56 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e586592..b55393b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -17,6 +17,7 @@
(CASSANDRA-6413)
  * (Hadoop) add describe_local_ring (CASSANDRA-6268)
  * Fix handling of concurrent directory creation failure (CASSANDRA-6459)
+ * Improve batchlog write performance with vnodes (CASSANDRA-6488)
 
 
 1.2.12

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
--
diff --git 
a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java 
b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
index c36fde4..85e229c 100644
--- a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
+++ b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
@@ -20,12 +20,10 @@ package org.apache.cassandra.locator;
 import java.lang.reflect.Constructor;
 import java.net.InetAddress;
 import java.util.*;
-import java.util.concurrent.locks.Lock;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.Striped;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,14 +54,8 @@ public abstract class AbstractReplicationStrategy
 public final MapString, String configOptions;
 private final TokenMetadata tokenMetadata;
 
-// We want to make updating our replicas asynchronous vs the master 
TokenMetadata instance,
-// so that our ownership calculations never block Gossip from processing 
an ownership change.
-// But, we also can't afford to re-clone TM for each range after cache 
invalidation (CASSANDRA-6345),
-// so we keep our own copy here.
-//
-// Writes to tokenMetadataClone should be synchronized.
-private volatile TokenMetadata tokenMetadataClone = null;
-private volatile long clonedTokenMetadataVersion = 0;
+// track when the token range changes, signaling we need to invalidate our 
endpoint cache
+private volatile long lastInvalidatedVersion = 0;
 
 public IEndpointSnitch snitch;
 
@@ -85,16 +77,15 @@ public abstract class AbstractReplicationStrategy
 {
 long lastVersion = tokenMetadata.getRingVersion();
 
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 synchronized (this)
 {
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 logger.debug(clearing cached endpoints);
-tokenMetadataClone = null;
 cachedEndpoints.clear();
-clonedTokenMetadataVersion = lastVersion;
+lastInvalidatedVersion = lastVersion;
 }
 }
 }
@@ -116,19 +107,9 @@ public abstract class AbstractReplicationStrategy
 ArrayListInetAddress endpoints = getCachedEndpoints(keyToken);
 if (endpoints == null)
 {
-TokenMetadata tm; // local reference in case another thread nulls 
tMC out from under us
-if ((tm = tokenMetadataClone) == null)
-{
-// synchronize to prevent thundering herd post-invalidation
-synchronized (this)
-{
-if ((tm = tokenMetadataClone) == null)
-tm = tokenMetadataClone = 

[2/2] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2013-12-15 Thread aleksey
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bdff106a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bdff106a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bdff106a

Branch: refs/heads/cassandra-2.0
Commit: bdff106aa9698849ba4a82d8a19715e2dbbb7f62
Parents: bb09d3c 4be9e67
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:36:18 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:36:18 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/CHANGES.txt
--
diff --cc CHANGES.txt
index a54231e,b55393b..89ef6e1
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -25,46 -17,10 +25,47 @@@ Merged from 1.2
 (CASSANDRA-6413)
   * (Hadoop) add describe_local_ring (CASSANDRA-6268)
   * Fix handling of concurrent directory creation failure (CASSANDRA-6459)
 + * Randomize batchlog candidates selection (CASSANDRA-6481)
+  * Improve batchlog write performance with vnodes (CASSANDRA-6488)
  
  
 -1.2.12
 +2.0.3
 + * Fix FD leak on slice read path (CASSANDRA-6275)
 + * Cancel read meter task when closing SSTR (CASSANDRA-6358)
 + * free off-heap IndexSummary during bulk (CASSANDRA-6359)
 + * Recover from IOException in accept() thread (CASSANDRA-6349)
 + * Improve Gossip tolerance of abnormally slow tasks (CASSANDRA-6338)
 + * Fix trying to hint timed out counter writes (CASSANDRA-6322)
 + * Allow restoring specific columnfamilies from archived CL (CASSANDRA-4809)
 + * Avoid flushing compaction_history after each operation (CASSANDRA-6287)
 + * Fix repair assertion error when tombstones expire (CASSANDRA-6277)
 + * Skip loading corrupt key cache (CASSANDRA-6260)
 + * Fixes for compacting larger-than-memory rows (CASSANDRA-6274)
 + * Compact hottest sstables first and optionally omit coldest from
 +   compaction entirely (CASSANDRA-6109)
 + * Fix modifying column_metadata from thrift (CASSANDRA-6182)
 + * cqlsh: fix LIST USERS output (CASSANDRA-6242)
 + * Add IRequestSink interface (CASSANDRA-6248)
 + * Update memtable size while flushing (CASSANDRA-6249)
 + * Provide hooks around CQL2/CQL3 statement execution (CASSANDRA-6252)
 + * Require Permission.SELECT for CAS updates (CASSANDRA-6247)
 + * New CQL-aware SSTableWriter (CASSANDRA-5894)
 + * Reject CAS operation when the protocol v1 is used (CASSANDRA-6270)
 + * Correctly throw error when frame too large (CASSANDRA-5981)
 + * Fix serialization bug in PagedRange with 2ndary indexes (CASSANDRA-6299)
 + * Fix CQL3 table validation in Thrift (CASSANDRA-6140)
 + * Fix bug missing results with IN clauses (CASSANDRA-6327)
 + * Fix paging with reversed slices (CASSANDRA-6343)
 + * Set minTimestamp correctly to be able to drop expired sstables 
(CASSANDRA-6337)
 + * Support NaN and Infinity as float literals (CASSANDRA-6003)
 + * Remove RF from nodetool ring output (CASSANDRA-6289)
 + * Fix attempting to flush empty rows (CASSANDRA-6374)
 + * Fix potential out of bounds exception when paging (CASSANDRA-6333)
 +Merged from 1.2:
 + * Optimize FD phi calculation (CASSANDRA-6386)
 + * Improve initial FD phi estimate when starting up (CASSANDRA-6385)
 + * Don't list CQL3 table in CLI describe even if named explicitely 
 +   (CASSANDRA-5750)
   * Invalidate row cache when dropping CF (CASSANDRA-6351)
   * add non-jamm path for cached statements (CASSANDRA-6293)
   * (Hadoop) Require CFRR batchSize to be at least 2 (CASSANDRA-6114)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/locator/TokenMetadata.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/service/StorageProxy.java
--
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 9957a37,376edb6..7f97da9
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -767,30 -415,32 +768,32 @@@ public class StorageProxy implements St
   * - 

[1/2] git commit: Improve batchlog write performance with vnodes

2013-12-15 Thread aleksey
Updated Branches:
  refs/heads/cassandra-2.0 bb09d3c1b - bdff106aa


Improve batchlog write performance with vnodes

patch by Jonathan Ellis and Rick Branson; reviewed by Aleksey Yeschenko
for CASSANDRA-6488


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4be9e672
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4be9e672
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4be9e672

Branch: refs/heads/cassandra-2.0
Commit: 4be9e6720d9f94a83aa42153c3e71ae1e557d2d9
Parents: a3d91dc
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:29:56 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:29:56 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e586592..b55393b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -17,6 +17,7 @@
(CASSANDRA-6413)
  * (Hadoop) add describe_local_ring (CASSANDRA-6268)
  * Fix handling of concurrent directory creation failure (CASSANDRA-6459)
+ * Improve batchlog write performance with vnodes (CASSANDRA-6488)
 
 
 1.2.12

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
--
diff --git 
a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java 
b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
index c36fde4..85e229c 100644
--- a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
+++ b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
@@ -20,12 +20,10 @@ package org.apache.cassandra.locator;
 import java.lang.reflect.Constructor;
 import java.net.InetAddress;
 import java.util.*;
-import java.util.concurrent.locks.Lock;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.Striped;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,14 +54,8 @@ public abstract class AbstractReplicationStrategy
 public final MapString, String configOptions;
 private final TokenMetadata tokenMetadata;
 
-// We want to make updating our replicas asynchronous vs the master 
TokenMetadata instance,
-// so that our ownership calculations never block Gossip from processing 
an ownership change.
-// But, we also can't afford to re-clone TM for each range after cache 
invalidation (CASSANDRA-6345),
-// so we keep our own copy here.
-//
-// Writes to tokenMetadataClone should be synchronized.
-private volatile TokenMetadata tokenMetadataClone = null;
-private volatile long clonedTokenMetadataVersion = 0;
+// track when the token range changes, signaling we need to invalidate our 
endpoint cache
+private volatile long lastInvalidatedVersion = 0;
 
 public IEndpointSnitch snitch;
 
@@ -85,16 +77,15 @@ public abstract class AbstractReplicationStrategy
 {
 long lastVersion = tokenMetadata.getRingVersion();
 
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 synchronized (this)
 {
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 logger.debug(clearing cached endpoints);
-tokenMetadataClone = null;
 cachedEndpoints.clear();
-clonedTokenMetadataVersion = lastVersion;
+lastInvalidatedVersion = lastVersion;
 }
 }
 }
@@ -116,19 +107,9 @@ public abstract class AbstractReplicationStrategy
 ArrayListInetAddress endpoints = getCachedEndpoints(keyToken);
 if (endpoints == null)
 {
-TokenMetadata tm; // local reference in case another thread nulls 
tMC out from under us
-if ((tm = tokenMetadataClone) == null)
-{
-// synchronize to prevent thundering herd post-invalidation
-synchronized (this)
-{
-if ((tm = tokenMetadataClone) == null)
-tm = tokenMetadataClone = 

[3/3] git commit: Merge branch 'cassandra-2.0' into trunk

2013-12-15 Thread aleksey
Merge branch 'cassandra-2.0' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2ee6b8fd
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2ee6b8fd
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2ee6b8fd

Branch: refs/heads/trunk
Commit: 2ee6b8fd91db261dedae6e9a3539342b084056bd
Parents: 5d167cf bdff106
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:37:13 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:37:13 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ee6b8fd/CHANGES.txt
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ee6b8fd/src/java/org/apache/cassandra/locator/TokenMetadata.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2ee6b8fd/src/java/org/apache/cassandra/service/StorageProxy.java
--



[2/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0

2013-12-15 Thread aleksey
Merge branch 'cassandra-1.2' into cassandra-2.0

Conflicts:
CHANGES.txt


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/bdff106a
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/bdff106a
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/bdff106a

Branch: refs/heads/trunk
Commit: bdff106aa9698849ba4a82d8a19715e2dbbb7f62
Parents: bb09d3c 4be9e67
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:36:18 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:36:18 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/CHANGES.txt
--
diff --cc CHANGES.txt
index a54231e,b55393b..89ef6e1
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -25,46 -17,10 +25,47 @@@ Merged from 1.2
 (CASSANDRA-6413)
   * (Hadoop) add describe_local_ring (CASSANDRA-6268)
   * Fix handling of concurrent directory creation failure (CASSANDRA-6459)
 + * Randomize batchlog candidates selection (CASSANDRA-6481)
+  * Improve batchlog write performance with vnodes (CASSANDRA-6488)
  
  
 -1.2.12
 +2.0.3
 + * Fix FD leak on slice read path (CASSANDRA-6275)
 + * Cancel read meter task when closing SSTR (CASSANDRA-6358)
 + * free off-heap IndexSummary during bulk (CASSANDRA-6359)
 + * Recover from IOException in accept() thread (CASSANDRA-6349)
 + * Improve Gossip tolerance of abnormally slow tasks (CASSANDRA-6338)
 + * Fix trying to hint timed out counter writes (CASSANDRA-6322)
 + * Allow restoring specific columnfamilies from archived CL (CASSANDRA-4809)
 + * Avoid flushing compaction_history after each operation (CASSANDRA-6287)
 + * Fix repair assertion error when tombstones expire (CASSANDRA-6277)
 + * Skip loading corrupt key cache (CASSANDRA-6260)
 + * Fixes for compacting larger-than-memory rows (CASSANDRA-6274)
 + * Compact hottest sstables first and optionally omit coldest from
 +   compaction entirely (CASSANDRA-6109)
 + * Fix modifying column_metadata from thrift (CASSANDRA-6182)
 + * cqlsh: fix LIST USERS output (CASSANDRA-6242)
 + * Add IRequestSink interface (CASSANDRA-6248)
 + * Update memtable size while flushing (CASSANDRA-6249)
 + * Provide hooks around CQL2/CQL3 statement execution (CASSANDRA-6252)
 + * Require Permission.SELECT for CAS updates (CASSANDRA-6247)
 + * New CQL-aware SSTableWriter (CASSANDRA-5894)
 + * Reject CAS operation when the protocol v1 is used (CASSANDRA-6270)
 + * Correctly throw error when frame too large (CASSANDRA-5981)
 + * Fix serialization bug in PagedRange with 2ndary indexes (CASSANDRA-6299)
 + * Fix CQL3 table validation in Thrift (CASSANDRA-6140)
 + * Fix bug missing results with IN clauses (CASSANDRA-6327)
 + * Fix paging with reversed slices (CASSANDRA-6343)
 + * Set minTimestamp correctly to be able to drop expired sstables 
(CASSANDRA-6337)
 + * Support NaN and Infinity as float literals (CASSANDRA-6003)
 + * Remove RF from nodetool ring output (CASSANDRA-6289)
 + * Fix attempting to flush empty rows (CASSANDRA-6374)
 + * Fix potential out of bounds exception when paging (CASSANDRA-6333)
 +Merged from 1.2:
 + * Optimize FD phi calculation (CASSANDRA-6386)
 + * Improve initial FD phi estimate when starting up (CASSANDRA-6385)
 + * Don't list CQL3 table in CLI describe even if named explicitely 
 +   (CASSANDRA-5750)
   * Invalidate row cache when dropping CF (CASSANDRA-6351)
   * add non-jamm path for cached statements (CASSANDRA-6293)
   * (Hadoop) Require CFRR batchSize to be at least 2 (CASSANDRA-6114)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/locator/TokenMetadata.java
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/bdff106a/src/java/org/apache/cassandra/service/StorageProxy.java
--
diff --cc src/java/org/apache/cassandra/service/StorageProxy.java
index 9957a37,376edb6..7f97da9
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@@ -767,30 -415,32 +768,32 @@@ public class StorageProxy implements St
   * - replicas 

[1/3] git commit: Improve batchlog write performance with vnodes

2013-12-15 Thread aleksey
Updated Branches:
  refs/heads/trunk 5d167cf3d - 2ee6b8fd9


Improve batchlog write performance with vnodes

patch by Jonathan Ellis and Rick Branson; reviewed by Aleksey Yeschenko
for CASSANDRA-6488


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4be9e672
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4be9e672
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4be9e672

Branch: refs/heads/trunk
Commit: 4be9e6720d9f94a83aa42153c3e71ae1e557d2d9
Parents: a3d91dc
Author: Aleksey Yeschenko alek...@apache.org
Authored: Sun Dec 15 13:29:56 2013 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Sun Dec 15 13:29:56 2013 +0300

--
 CHANGES.txt |  1 +
 .../locator/AbstractReplicationStrategy.java| 35 --
 .../apache/cassandra/locator/TokenMetadata.java | 35 +-
 .../apache/cassandra/service/StorageProxy.java  | 39 +---
 4 files changed, 53 insertions(+), 57 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index e586592..b55393b 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -17,6 +17,7 @@
(CASSANDRA-6413)
  * (Hadoop) add describe_local_ring (CASSANDRA-6268)
  * Fix handling of concurrent directory creation failure (CASSANDRA-6459)
+ * Improve batchlog write performance with vnodes (CASSANDRA-6488)
 
 
 1.2.12

http://git-wip-us.apache.org/repos/asf/cassandra/blob/4be9e672/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
--
diff --git 
a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java 
b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
index c36fde4..85e229c 100644
--- a/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
+++ b/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
@@ -20,12 +20,10 @@ package org.apache.cassandra.locator;
 import java.lang.reflect.Constructor;
 import java.net.InetAddress;
 import java.util.*;
-import java.util.concurrent.locks.Lock;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Multimap;
-import com.google.common.util.concurrent.Striped;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -56,14 +54,8 @@ public abstract class AbstractReplicationStrategy
 public final MapString, String configOptions;
 private final TokenMetadata tokenMetadata;
 
-// We want to make updating our replicas asynchronous vs the master 
TokenMetadata instance,
-// so that our ownership calculations never block Gossip from processing 
an ownership change.
-// But, we also can't afford to re-clone TM for each range after cache 
invalidation (CASSANDRA-6345),
-// so we keep our own copy here.
-//
-// Writes to tokenMetadataClone should be synchronized.
-private volatile TokenMetadata tokenMetadataClone = null;
-private volatile long clonedTokenMetadataVersion = 0;
+// track when the token range changes, signaling we need to invalidate our 
endpoint cache
+private volatile long lastInvalidatedVersion = 0;
 
 public IEndpointSnitch snitch;
 
@@ -85,16 +77,15 @@ public abstract class AbstractReplicationStrategy
 {
 long lastVersion = tokenMetadata.getRingVersion();
 
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 synchronized (this)
 {
-if (lastVersion  clonedTokenMetadataVersion)
+if (lastVersion  lastInvalidatedVersion)
 {
 logger.debug(clearing cached endpoints);
-tokenMetadataClone = null;
 cachedEndpoints.clear();
-clonedTokenMetadataVersion = lastVersion;
+lastInvalidatedVersion = lastVersion;
 }
 }
 }
@@ -116,19 +107,9 @@ public abstract class AbstractReplicationStrategy
 ArrayListInetAddress endpoints = getCachedEndpoints(keyToken);
 if (endpoints == null)
 {
-TokenMetadata tm; // local reference in case another thread nulls 
tMC out from under us
-if ((tm = tokenMetadataClone) == null)
-{
-// synchronize to prevent thundering herd post-invalidation
-synchronized (this)
-{
-if ((tm = tokenMetadataClone) == null)
-tm = tokenMetadataClone = 

[jira] [Commented] (CASSANDRA-6453) Improve error message for invalid property values during parsing.

2013-12-15 Thread Aleksey Yeschenko (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-6453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13848578#comment-13848578
 ] 

Aleksey Yeschenko commented on CASSANDRA-6453:
--

I'm afraid I don't follow. Doesn't it only affect CREATE/ALTER KEYSPACE/TABLE 
statements, that aren't exactly large, and aren't usually prepared, in the 
first place?

 Improve error message for invalid property values during parsing.
 -

 Key: CASSANDRA-6453
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6453
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brian ONeill
Assignee: Brian ONeill
Priority: Trivial
 Attachments: CASSANDRA-6354-patch.txt


 Trivial change to the error message returned for invalid property values.
 Previously, it would just say Invalid property value : ?.  If you were 
 constructing a large prepared statement, with multiple question marks, it was 
 difficult to track down which one the server was complaining about.  This 
 enhancement tells you which one. =)



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Created] (CASSANDRA-6489) ClassCastException when using EACH_QUORUM with SimpleStrategy

2013-12-15 Thread DOAN DuyHai (JIRA)
DOAN DuyHai created CASSANDRA-6489:
--

 Summary: ClassCastException when using EACH_QUORUM with 
SimpleStrategy
 Key: CASSANDRA-6489
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6489
 Project: Cassandra
  Issue Type: Bug
  Components: Core
 Environment: Cassandra 2.0.3
Java Driver Core 2.0.0-rc2
Reporter: DOAN DuyHai
Priority: Minor


When sending requests with EACH_QUORUM consistency and SimpleStrategy, the Java 
driver reports the following exception:


pre
ERROR [11:38:36,075][] 
org.apache.cassandra.transport.messages.ErrorMessage@:fromException Unexpected 
exception during request
java.lang.ClassCastException: org.apache.cassandra.locator.SimpleStrategy 
cannot be cast to org.apache.cassandra.locator.NetworkTopologyStrategy
at 
org.apache.cassandra.service.DatacenterSyncWriteResponseHandler.init(DatacenterSyncWriteResponseHandler.java:55)
at 
org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler(AbstractReplicationStrategy.java:132)
at 
org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:731)
at 
org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:508)
at 
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:578)
at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:171)
at 
org.apache.cassandra.cql3.statements.BatchStatement.executeWithPerStatementVariables(BatchStatement.java:165)
at 
org.apache.cassandra.cql3.QueryProcessor.processBatch(QueryProcessor.java:369)
at 
org.apache.cassandra.transport.messages.BatchMessage.execute(BatchMessage.java:207)
at 
org.apache.cassandra.transport.Message$Dispatcher.messageReceived(Message.java:304)
at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at 
org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
at 
org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
/pre

 There should be proper error message instead of a ClassCastException. This is 
a minor issue though.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (CASSANDRA-6489) ClassCastException when using EACH_QUORUM with SimpleStrategy

2013-12-15 Thread DOAN DuyHai (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

DOAN DuyHai updated CASSANDRA-6489:
---

Issue Type: Improvement  (was: Bug)

 ClassCastException when using EACH_QUORUM with SimpleStrategy
 -

 Key: CASSANDRA-6489
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6489
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: Cassandra 2.0.3
 Java Driver Core 2.0.0-rc2
Reporter: DOAN DuyHai
Priority: Minor

 When sending requests with EACH_QUORUM consistency and SimpleStrategy, the 
 Java driver reports the following exception:
 {code}
 ERROR [11:38:36,075][] 
 org.apache.cassandra.transport.messages.ErrorMessage@:fromException 
 Unexpected exception during request
 java.lang.ClassCastException: org.apache.cassandra.locator.SimpleStrategy 
 cannot be cast to org.apache.cassandra.locator.NetworkTopologyStrategy
 at 
 org.apache.cassandra.service.DatacenterSyncWriteResponseHandler.init(DatacenterSyncWriteResponseHandler.java:55)
 at 
 org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler(AbstractReplicationStrategy.java:132)
 at 
 org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:731)
 at 
 org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:508)
 at 
 org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:578)
 at 
 org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:171)
 at 
 org.apache.cassandra.cql3.statements.BatchStatement.executeWithPerStatementVariables(BatchStatement.java:165)
 at 
 org.apache.cassandra.cql3.QueryProcessor.processBatch(QueryProcessor.java:369)
 at 
 org.apache.cassandra.transport.messages.BatchMessage.execute(BatchMessage.java:207)
 at 
 org.apache.cassandra.transport.Message$Dispatcher.messageReceived(Message.java:304)
 at 
 org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
 at 
 org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
 at 
 org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
 at 
 org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
 at 
 org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
 at 
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:724)
 {code}
  There should be proper error message instead of a ClassCastException. This 
 is a minor issue though.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (CASSANDRA-6489) ClassCastException when using EACH_QUORUM with SimpleStrategy

2013-12-15 Thread DOAN DuyHai (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

DOAN DuyHai updated CASSANDRA-6489:
---

Description: 
When sending requests with EACH_QUORUM consistency and SimpleStrategy, the Java 
driver reports the following exception:


{code}
ERROR [11:38:36,075][] 
org.apache.cassandra.transport.messages.ErrorMessage@:fromException Unexpected 
exception during request
java.lang.ClassCastException: org.apache.cassandra.locator.SimpleStrategy 
cannot be cast to org.apache.cassandra.locator.NetworkTopologyStrategy
at 
org.apache.cassandra.service.DatacenterSyncWriteResponseHandler.init(DatacenterSyncWriteResponseHandler.java:55)
at 
org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler(AbstractReplicationStrategy.java:132)
at 
org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:731)
at 
org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:508)
at 
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:578)
at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:171)
at 
org.apache.cassandra.cql3.statements.BatchStatement.executeWithPerStatementVariables(BatchStatement.java:165)
at 
org.apache.cassandra.cql3.QueryProcessor.processBatch(QueryProcessor.java:369)
at 
org.apache.cassandra.transport.messages.BatchMessage.execute(BatchMessage.java:207)
at 
org.apache.cassandra.transport.Message$Dispatcher.messageReceived(Message.java:304)
at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at 
org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
at 
org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
{code}

 There should be proper error message instead of a ClassCastException. This is 
a minor issue though.

  was:
When sending requests with EACH_QUORUM consistency and SimpleStrategy, the Java 
driver reports the following exception:


pre
ERROR [11:38:36,075][] 
org.apache.cassandra.transport.messages.ErrorMessage@:fromException Unexpected 
exception during request
java.lang.ClassCastException: org.apache.cassandra.locator.SimpleStrategy 
cannot be cast to org.apache.cassandra.locator.NetworkTopologyStrategy
at 
org.apache.cassandra.service.DatacenterSyncWriteResponseHandler.init(DatacenterSyncWriteResponseHandler.java:55)
at 
org.apache.cassandra.locator.AbstractReplicationStrategy.getWriteResponseHandler(AbstractReplicationStrategy.java:132)
at 
org.apache.cassandra.service.StorageProxy.performWrite(StorageProxy.java:731)
at 
org.apache.cassandra.service.StorageProxy.mutate(StorageProxy.java:508)
at 
org.apache.cassandra.service.StorageProxy.mutateWithTriggers(StorageProxy.java:578)
at 
org.apache.cassandra.cql3.statements.BatchStatement.execute(BatchStatement.java:171)
at 
org.apache.cassandra.cql3.statements.BatchStatement.executeWithPerStatementVariables(BatchStatement.java:165)
at 
org.apache.cassandra.cql3.QueryProcessor.processBatch(QueryProcessor.java:369)
at 
org.apache.cassandra.transport.messages.BatchMessage.execute(BatchMessage.java:207)
at 
org.apache.cassandra.transport.Message$Dispatcher.messageReceived(Message.java:304)
at 
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at 
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at 
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at 
org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
at 
org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
/pre

 There should be proper error message instead of a ClassCastException. This is 
a minor issue though.


 ClassCastException when using EACH_QUORUM with SimpleStrategy
 

[jira] [Commented] (CASSANDRA-4268) Expose full stop() operation through JMX

2013-12-15 Thread Lyuben Todorov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13848585#comment-13848585
 ] 

Lyuben Todorov commented on CASSANDRA-4268:
---

Would it be useful to add a nodetool command that can use stop() once its 
exposed to JMX aswell? Something like *stopserver* or *stopcassandra*.

 Expose full stop() operation through JMX
 

 Key: CASSANDRA-4268
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4268
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Tyler Hobbs
Assignee: Lyuben Todorov
Priority: Minor
  Labels: jmx
 Fix For: 2.0.4


 We already expose ways to stop just the RPC server or gossip.  This would 
 fully shutdown the process.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (CASSANDRA-6453) Improve error message for invalid property values during parsing.

2013-12-15 Thread Brian ONeill (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-6453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13848609#comment-13848609
 ] 

Brian ONeill commented on CASSANDRA-6453:
-

Honestly, I didn't look deep enough to see where this part of the grammar is 
used.  

I think you are right.  It will likely affect only people trying to create 
generic frameworks that allow people to manipulate schemas.  

That is my case...
I'm updating Virgil (a general REST interface for C*).  I have a REST call that 
allows people to create/alter schemas, which is why I was trying to use a 
prepared statement (with binding).  


 Improve error message for invalid property values during parsing.
 -

 Key: CASSANDRA-6453
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6453
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Brian ONeill
Assignee: Brian ONeill
Priority: Trivial
 Attachments: CASSANDRA-6354-patch.txt


 Trivial change to the error message returned for invalid property values.
 Previously, it would just say Invalid property value : ?.  If you were 
 constructing a large prepared statement, with multiple question marks, it was 
 difficult to track down which one the server was complaining about.  This 
 enhancement tells you which one. =)



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (CASSANDRA-6199) Improve Stress Tool

2013-12-15 Thread Pavel Yaskevich (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Yaskevich updated CASSANDRA-6199:
---

Reviewer: Pavel Yaskevich

 Improve Stress Tool
 ---

 Key: CASSANDRA-6199
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6199
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Benedict
Assignee: Benedict
Priority: Minor
 Attachments: new.read.latency.svg, new.read.rate.distribution.svg, 
 new.write.latency.svg, new.write.rate.distribution.svg, old.read.latency.svg, 
 old.read.rate.distribution.svg, old.write.latency.svg, 
 old.write.rate.distribution.svg, ops.read.svg, ops.write.svg


 The stress tool could do with sprucing up. The following is a list of 
 essential improvements and things that would be nice to have.
 Essential:
 - Reduce variability of results, especially start/end tails. Do not trash 
 first/last 10% of readings
 - Reduce contention/overhead in stress to increase overall throughput
 - Short warm-up period, which is ignored for summary (or summarised 
 separately), though prints progress as usual. Potentially automatic detection 
 of rate levelling.
 - Better configurability and defaults for data generation - current column 
 generation populates columns with the same value for every row, which is very 
 easily compressible. Possibly introduce partial random data generator 
 (possibly dictionary-based random data generator)
 Nice to have:
 - Calculate and print stdev and mean
 - Add batched sequential access mode (where a single thread performs 
 batch-size sequential requests before selecting another random key) to test 
 how key proximity affects performance
 - Auto-mode which attempts to establish the maximum throughput rate, by 
 varying the thread count (or otherwise gating the number of parallel 
 requests) for some period, then configures rate limit or thread count to test 
 performance at e.g. 30%, 50%, 70%, 90%, 120%, 150% and unconstrained.
 - Auto-mode could have a target variance ratio for mean throughput and/or 
 latency, and completes a test once this target is hit for x intervals
 - Fix key representation so independent of number of keys (possibly switch to 
 10 digit hex), and don't use String.format().getBytes() to construct it 
 (expensive)
 Also, remove the skip-key setting, as it is currently ignored. Unless 
 somebody knows the reason for it.
 - Fix latency stats
 - Read/write mode, with configurable recency-of-reads distribution
 - Add new exponential/extreme value distribution for value size, column count 
 and recency-of-reads
 - Support more than 2^31 keys
 - Supports multiple concurrent stress inserts via key-offset parameter or 
 similar



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Comment Edited] (CASSANDRA-4268) Expose full stop() operation through JMX

2013-12-15 Thread Lyuben Todorov (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-4268?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13848585#comment-13848585
 ] 

Lyuben Todorov edited comment on CASSANDRA-4268 at 12/15/13 11:09 PM:
--

Would it be useful to add a nodetool command that can use stop() once its 
exposed to JMX aswell? Something like *stop server* or *stop cassandra*.


was (Author: lyubent):
Would it be useful to add a nodetool command that can use stop() once its 
exposed to JMX aswell? Something like *stopserver* or *stopcassandra*.

 Expose full stop() operation through JMX
 

 Key: CASSANDRA-4268
 URL: https://issues.apache.org/jira/browse/CASSANDRA-4268
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Tyler Hobbs
Assignee: Lyuben Todorov
Priority: Minor
  Labels: jmx
 Fix For: 2.0.4


 We already expose ways to stop just the RPC server or gossip.  This would 
 fully shutdown the process.



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Created] (CASSANDRA-6490) Please delete old releases from mirroring system

2013-12-15 Thread Sebb (JIRA)
Sebb created CASSANDRA-6490:
---

 Summary: Please delete old releases from mirroring system
 Key: CASSANDRA-6490
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6490
 Project: Cassandra
  Issue Type: Bug
 Environment: http://www.apache.org/dist/cassandra/
Reporter: Sebb


To reduce the load on the ASF mirrors, projects are required to delete old 
releases [1]

Please can you remove all non-current releases?
Thanks!
[Note that older releases are always available from the ASF archive server]

Any links to older releases on download pages should first be adjusted to point 
to the archive server.

Please note that the stable directory currently links to 0.6.0 which seems 
incorrect as 0.6.0 is not even listed in the Releases drop-down menu whereas 
0.7.0 is listed. There is no indication that 0.7.0 is not stable.
[1] http://www.apache.org/dev/release.html#when-to-archive



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Commented] (CASSANDRA-6490) Please delete old releases from mirroring system

2013-12-15 Thread Sebb (JIRA)

[ 
https://issues.apache.org/jira/browse/CASSANDRA-6490?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13848728#comment-13848728
 ] 

Sebb commented on CASSANDRA-6490:
-

The download page [1] shows that the only supported releases are 2.0.x 1.2.x 
and 1.1.x

Please delete all the older releases from

http://www.apache.org/dist/cassandra/

[1] http://cassandra.apache.org/download/

 Please delete old releases from mirroring system
 

 Key: CASSANDRA-6490
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6490
 Project: Cassandra
  Issue Type: Bug
 Environment: http://www.apache.org/dist/cassandra/
Reporter: Sebb

 To reduce the load on the ASF mirrors, projects are required to delete old 
 releases [1]
 Please can you remove all non-current releases?
 Thanks!
 [Note that older releases are always available from the ASF archive server]
 Any links to older releases on download pages should first be adjusted to 
 point to the archive server.
 Please note that the stable directory currently links to 0.6.0 which seems 
 incorrect as 0.6.0 is not even listed in the Releases drop-down menu 
 whereas 0.7.0 is listed. There is no indication that 0.7.0 is not stable.
 [1] http://www.apache.org/dev/release.html#when-to-archive



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Updated] (CASSANDRA-6490) Please delete old releases from mirroring system

2013-12-15 Thread Sebb (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sebb updated CASSANDRA-6490:


Description: 
To reduce the load on the ASF mirrors, projects are required to delete old 
releases [1]

Please can you remove all non-current releases?
Thanks!
[Note that older releases are always available from the ASF archive server]

Any links to older releases on download pages should first be adjusted to point 
to the archive server.

[1] http://www.apache.org/dev/release.html#when-to-archive

  was:
To reduce the load on the ASF mirrors, projects are required to delete old 
releases [1]

Please can you remove all non-current releases?
Thanks!
[Note that older releases are always available from the ASF archive server]

Any links to older releases on download pages should first be adjusted to point 
to the archive server.

Please note that the stable directory currently links to 0.6.0 which seems 
incorrect as 0.6.0 is not even listed in the Releases drop-down menu whereas 
0.7.0 is listed. There is no indication that 0.7.0 is not stable.
[1] http://www.apache.org/dev/release.html#when-to-archive


 Please delete old releases from mirroring system
 

 Key: CASSANDRA-6490
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6490
 Project: Cassandra
  Issue Type: Bug
 Environment: http://www.apache.org/dist/cassandra/
Reporter: Sebb

 To reduce the load on the ASF mirrors, projects are required to delete old 
 releases [1]
 Please can you remove all non-current releases?
 Thanks!
 [Note that older releases are always available from the ASF archive server]
 Any links to older releases on download pages should first be adjusted to 
 point to the archive server.
 [1] http://www.apache.org/dev/release.html#when-to-archive



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)


[jira] [Assigned] (CASSANDRA-6490) Please delete old releases from mirroring system

2013-12-15 Thread Brandon Williams (JIRA)

 [ 
https://issues.apache.org/jira/browse/CASSANDRA-6490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brandon Williams reassigned CASSANDRA-6490:
---

Assignee: Sylvain Lebresne

 Please delete old releases from mirroring system
 

 Key: CASSANDRA-6490
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6490
 Project: Cassandra
  Issue Type: Bug
 Environment: http://www.apache.org/dist/cassandra/
Reporter: Sebb
Assignee: Sylvain Lebresne

 To reduce the load on the ASF mirrors, projects are required to delete old 
 releases [1]
 Please can you remove all non-current releases?
 Thanks!
 [Note that older releases are always available from the ASF archive server]
 Any links to older releases on download pages should first be adjusted to 
 point to the archive server.
 [1] http://www.apache.org/dev/release.html#when-to-archive



--
This message was sent by Atlassian JIRA
(v6.1.4#6159)