[jira] [Commented] (CASSANDRA-7576) DateType columns not properly converted to TimestampType when in ReversedType columns.

2014-07-21 Thread Ben Hood (JIRA)

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

Ben Hood commented on CASSANDRA-7576:
-

FWIW, you could verify this patch by removing this workaround 
(https://github.com/gocql/gocql/pull/154) that we put into place to deal with 
this issue in gocql.

 DateType columns not properly converted to TimestampType when in ReversedType 
 columns.
 --

 Key: CASSANDRA-7576
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7576
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Karl Rieb
 Attachments: DataType_CASSANDRA_7576.patch

   Original Estimate: 0.25h
  Remaining Estimate: 0.25h

 The {{org.apache.cassandra.transport.DataType.fromType(AbstractType)}} method 
 has a bug that prevents sending the correct Protocol ID for reversed 
 {{DateType}} columns.   This results in clients receiving Protocol ID {{0}}, 
 which maps to a {{CUSTOM}} type, for timestamp columns that are clustered in 
 reverse order.  
 Some clients can handle this properly since they recognize the 
 {{org.apache.cassandra.db.marshal.DateType}} marshaling type, however the 
 native Datastax java-driver does not.  It will produce errors like the one 
 below when trying to prepare queries against such tables:
 {noformat}
 com.datastax.driver.core.exceptions.InvalidTypeException: Invalid type 
 for value 2 of CQL type 'org.apache.cassandra.db.marshal.DateType', expecting 
 class java.nio.ByteBuffer but class java.util.Date provided
   at com.datastax.driver.core.BoundStatement.bind(BoundStatement.java:190)
   at 
 com.datastax.driver.core.DefaultPreparedStatement.bind(DefaultPreparedStatement.java:103)
 {noformat}
 On the Cassandra side, there is a check for {{DateType}} columns that is 
 supposed to convert these columns to TimestampType.  However, the check is 
 skipped when the column is also reversed.  Specifically:
 {code:title=DataType.java|borderStyle=solid}
 public static PairDataType, Object fromType(AbstractType type)
 {
 // For CQL3 clients, ReversedType is an implementation detail and they
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
 // For compatibility sake, we still return DateType as the timestamp type 
 in resultSet metadata (#5723)
 else if (type instanceof DateType)
 type = TimestampType.instance;
 // ...
 {code}
 The *else if* should be changed to just an *if*, like so:
 {code:title=DataType.java|borderStyle=solid}
 public static PairDataType, Object fromType(AbstractType type)
 {
 // For CQL3 clients, ReversedType is an implementation detail and they
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
 // For compatibility sake, we still return DateType as the timestamp type 
 in resultSet metadata (#5723)
 if (type instanceof DateType)
 type = TimestampType.instance;
 // ...
 {code}
 This bug is preventing us from upgrading our 1.2.11 cluster to 2.0.9 because 
 our clients keep throwing exceptions trying to read or write data to tables 
 with reversed timestamp columns. This issue can be reproduced by creating a 
 CQL table in Cassandra 1.2.11 that clusters on a timestamp in reverse, then 
 upgrading the node to 2.0.9.  When querying the metadata for the table, the 
 node will return Protocol ID 0 (CUSTOM) instead of Protocol ID 11 (TIMESTAMP).



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7454) NPE When Prepared Statement ID is not Found

2014-07-21 Thread Ben Hood (JIRA)

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

Ben Hood commented on CASSANDRA-7454:
-

I can confirm that this fix (as applied to 2.1-rc4) has resolved part of the an 
issue reported in https://issues.apache.org/jira/browse/CASSANDRA-7566.

When I run the the TestReprepareStatement test case from the gocql integration 
suite against the 2.1-rc3 tarball, it fails:

{code}
bool:gocql 0x6e6562$ go test . -v -test.run=TestReprepareStatement
=== RUN TestReprepareStatement
--- FAIL: TestReprepareStatement (0.31 seconds)
cassandra_test.go:588: Failed to execute query for reprepare statement: 
java.lang.NullPointerException
FAIL
exit status 1
{code}

But when I run it against the 2.1-rc4 tarball, it passes:

{code}
bool:gocql 0x6e6562$ go test . -v -test.run=TestReprepareStatement
=== RUN TestReprepareStatement
--- PASS: TestReprepareStatement (0.25 seconds)
PASS
ok  github.com/relops/gocql 0.267s
{code}

 NPE When Prepared Statement ID is not Found
 ---

 Key: CASSANDRA-7454
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7454
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Tyler Hobbs
Assignee: Tyler Hobbs
 Fix For: 2.1.0

 Attachments: 7475.txt


 CASSANDRA-6855 introduced a NullPointerException when an unknown prepared 
 statement ID is used.
 You'll see a stack trace like this:
 {noformat}
 ERROR [SharedPool-Worker-4] 2014-06-26 15:02:04,911 ErrorMessage.java:218 - 
 Unexpected exception during request
 java.lang.NullPointerException: null
 at 
 org.apache.cassandra.transport.messages.ExecuteMessage.execute(ExecuteMessage.java:105)
  ~[main/:na]
 at 
 org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:412)
  [main/:na]
 at 
 org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:309)
  [main/:na]
 at 
 io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:103)
  [netty-all-4.0.20.Final.jar:4.0.20.Final]
 at 
 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:332)
  [netty-all-4.0.20.Final.jar:4.0.20.Final]
 at 
 io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:31)
  [netty-all-4.0.20.Final.jar:4.0.20.Final]
 at 
 io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:323)
  [netty-all-4.0.20.Final.jar:4.0.20.Final]
 at 
 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
 [na:1.7.0_40]
 at 
 org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:162)
  [main/:na]
 at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:103) 
 [main/:na]
 at java.lang.Thread.run(Thread.java:724) [na:1.7.0_40]
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7507:
-

Unfortunately it looks like we have a *lot* of places where we catch 
IOException and do something specific. I'd say the safest thing to do is create 
a special method for handling special exceptions that we call any time we hit 
an IOException, which will ordinarily do nothing, but in case of 'too many open 
files' (or anything else we later decide to include) performs a sys exit

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6851) Improve anticompaction after incremental repair

2014-07-21 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson commented on CASSANDRA-6851:


in general this looks good to me, pushed a branch with a few updates: 
https://github.com/krummas/cassandra/commits/russellspitzer/6851

it fixes a few nits (style mostly) and tries to pick better sstables by sorting 
them by first key in the sstable for standard grouping

we should probably target trunk for this as well

 Improve anticompaction after incremental repair
 ---

 Key: CASSANDRA-6851
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6851
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Marcus Eriksson
Assignee: Russell Alexander Spitzer
Priority: Minor
  Labels: compaction, lhf
 Fix For: 2.1.1


 After an incremental repair we iterate over all sstables and split them in 
 two parts, one containing the repaired data and one the unrepaired. We could 
 in theory double the number of sstables on a node.
 To avoid this we could make anticompaction also do a compaction, for example, 
 if we are to anticompact 10 sstables, we could anticompact those to 2.
 Note that we need to avoid creating too big sstables though, if we 
 anticompact all sstables on a node it would essentially be a major compaction.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-6851) Improve anticompaction after incremental repair

2014-07-21 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson updated CASSANDRA-6851:
---

Fix Version/s: (was: 2.1.1)
   3.0

 Improve anticompaction after incremental repair
 ---

 Key: CASSANDRA-6851
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6851
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Marcus Eriksson
Assignee: Russell Alexander Spitzer
Priority: Minor
  Labels: compaction, lhf
 Fix For: 3.0


 After an incremental repair we iterate over all sstables and split them in 
 two parts, one containing the repaired data and one the unrepaired. We could 
 in theory double the number of sstables on a node.
 To avoid this we could make anticompaction also do a compaction, for example, 
 if we are to anticompact 10 sstables, we could anticompact those to 2.
 Note that we need to avoid creating too big sstables though, if we 
 anticompact all sstables on a node it would essentially be a major compaction.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6434) Repair-aware gc grace period

2014-07-21 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson commented on CASSANDRA-6434:


Blocks on CASSANDRA-5839 - once we have the repair history we can figure out 
actual repair times for keys

 Repair-aware gc grace period 
 -

 Key: CASSANDRA-6434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6434
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: sankalp kohli
Assignee: Marcus Eriksson
 Fix For: 3.0


 Since the reason for gcgs is to ensure that we don't purge tombstones until 
 every replica has been notified, it's redundant in a world where we're 
 tracking repair times per sstable (and repairing frequentily), i.e., a world 
 where we default to incremental repair a la CASSANDRA-5351.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (CASSANDRA-5839) Save repair data to system table

2014-07-21 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson reassigned CASSANDRA-5839:
--

Assignee: Marcus Eriksson  (was: Jimmy MÃ¥rdell)

 Save repair data to system table
 

 Key: CASSANDRA-5839
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5839
 Project: Cassandra
  Issue Type: New Feature
  Components: Core, Tools
Reporter: Jonathan Ellis
Assignee: Marcus Eriksson
Priority: Minor
 Fix For: 2.0.10

 Attachments: 2.0.4-5839-draft.patch, 2.0.6-5839-v2.patch


 As noted in CASSANDRA-2405, it would be useful to store repair results, 
 particularly with sub-range repair available (CASSANDRA-5280).



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7443) SSTable Pluggability v2

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7443:
-

First impression is pretty positive - this is looking a lot cleaner than I 
might have hoped.

A few initial comments, obviously bearing in mind it's still in progress:

* I'm not super keen on using Class.getConstructor() for instantiating a 
reader/writer. Would prefer a factory method / class; using reflection for long 
type parameter lists worries me.
* Would prefer DatabaseDescriptor.getDefaultSSTableFormat, and permit overrides 
per Table
* LazilyCompactedRow is still tightly coupled with Big format (relates to 
AbstractCompactedRow as you mentioned)
* Streaming _may_ need a bit more work/thought - seems that compression format 
of sstables is coupled quite tightly with compression stream writer, and also 
assumes we can stream a single file range. Might not want to impose that 
requirement (we probably don't for 3.0 format - a set of ranges is more likely, 
but I would prefer to abstract the concept of a stream Chunk to be format 
specific anyway, to remove the coupling)

 SSTable Pluggability v2
 ---

 Key: CASSANDRA-7443
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7443
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: T Jake Luciani
Assignee: T Jake Luciani
 Fix For: 3.0


 As part of a wider effort to improve the performance of our storage engine we 
 will need to support basic pluggability of the SSTable reader/writer. We 
 primarily need this to support the current SSTable format and new SSTable 
 format in the same version.  This will also let us encapsulate the changes in 
 a single layer vs forcing the whole engine to change at once.
 We previously discussed how to accomplish this in CASSANDRA-3067
   



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-6751) Setting -Dcassandra.fd_initial_value_ms Results in NPE

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-6751:


Fix Version/s: 2.0.8

 Setting -Dcassandra.fd_initial_value_ms Results in NPE
 --

 Key: CASSANDRA-6751
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6751
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Tyler Hobbs
Assignee: Dave Brosius
Priority: Minor
 Fix For: 1.2.17, 2.0.8

 Attachments: 6751.txt


 Start Cassandra with {{-Dcassandra.fd_initial_value_ms=1000}} and you'll get 
 the following stacktrace:
 {noformat}
  INFO [main] 2014-02-21 14:45:57,731 StorageService.java (line 617) Starting 
 up server gossip
 ERROR [main] 2014-02-21 14:45:57,736 CassandraDaemon.java (line 464) 
 Exception encountered during startup
 java.lang.ExceptionInInitializerError
 at org.apache.cassandra.gms.Gossiper.init(Gossiper.java:178)
 at org.apache.cassandra.gms.Gossiper.clinit(Gossiper.java:71)
 at 
 org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:618)
 at 
 org.apache.cassandra.service.StorageService.initServer(StorageService.java:583)
 at 
 org.apache.cassandra.service.StorageService.initServer(StorageService.java:480)
 at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:348)
 at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:447)
 at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:490)
 Caused by: java.lang.NullPointerException
 at 
 org.apache.cassandra.gms.FailureDetector.getInitialValue(FailureDetector.java:81)
 at 
 org.apache.cassandra.gms.FailureDetector.clinit(FailureDetector.java:48)
 ... 8 more
 ERROR [StorageServiceShutdownHook] 2014-02-21 14:45:57,754 
 CassandraDaemon.java (line 191) Exception in thread 
 Thread[StorageServiceShutdownHook,5,main]
 java.lang.NoClassDefFoundError: Could not initialize class 
 org.apache.cassandra.gms.Gossiper
 at 
 org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:550)
 at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
 at java.lang.Thread.run(Thread.java:724)
 {noformat}
 Glancing at the code, this is because the FailureDetector logger isn't 
 initialized when the static initialization of {{INITIAL_VALUE}} happens.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[06/12] git commit: Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread brandonwilliams
Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

Patch by Gregory Ramsperger, reviewed by brandonwilliams for
CASSANDRA-7572


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

Branch: refs/heads/cassandra-2.1
Commit: 87548095859c210e7be8cc8bbb4a5aa1f857a6ad
Parents: 337e4a8
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:49:13 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:49:13 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/87548095/conf/cassandra-env.sh
--
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index 7604918..d4e6590 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -90,7 +90,7 @@ calculate_heap_sizes()
 
 java_ver_output=`${JAVA:-java} -version 21`
 
-jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
+jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
{print $2}'`
 JVM_VERSION=${jvmver%_*}
 JVM_PATCH_VERSION=${jvmver#*_}
 
@@ -100,7 +100,7 @@ if [ $JVM_VERSION \ 1.7 ] ; then
 fi
 
 
-jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
+jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
$1}'`
 case $jvm in
 OpenJDK)
 JVM_VENDOR=OpenJDK



[11/12] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/3b14f6a5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b14f6a5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b14f6a5

Branch: refs/heads/cassandra-2.1
Commit: 3b14f6a5dbc91b3e8d2efa95840a61604dd6fbcb
Parents: 82fa5d5 df7bd7f
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:51:10 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:51:10 2014 -0500

--
 CHANGES.txt   | 2 +-
 build.xml | 2 +-
 conf/cassandra-env.sh | 4 ++--
 debian/changelog  | 6 ++
 4 files changed, 10 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/CHANGES.txt
--
diff --cc CHANGES.txt
index 8fa96f6,5ba30cc..2aa2efa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,15 -1,4 +1,15 @@@
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 +
 +
- 2.1.0-final
+ 2.1.0-rc4
   * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 (CASSANDRA-7551)
   * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/build.xml
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/conf/cassandra-env.sh
--



[09/12] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.0' into cassandra-2.1.0


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

Branch: refs/heads/trunk
Commit: df7bd7f725f6df5102730de89647418dd9f9473d
Parents: d872e2c 8754809
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:50:18 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:50:18 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/df7bd7f7/conf/cassandra-env.sh
--



[07/12] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.0' into cassandra-2.1.0


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

Branch: refs/heads/cassandra-2.1
Commit: df7bd7f725f6df5102730de89647418dd9f9473d
Parents: d872e2c 8754809
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:50:18 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:50:18 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/df7bd7f7/conf/cassandra-env.sh
--



[02/12] git commit: update versioning for 2.1.0-rc4 release

2014-07-21 Thread brandonwilliams
update versioning for 2.1.0-rc4 release


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

Branch: refs/heads/trunk
Commit: d872e2c74685c0c8c019b2ef46aefa443efa95b9
Parents: 8fd8832
Author: Eric Evans eev...@apache.org
Authored: Fri Jul 18 13:42:11 2014 -0500
Committer: Eric Evans eev...@apache.org
Committed: Fri Jul 18 13:42:11 2014 -0500

--
 CHANGES.txt  | 2 +-
 build.xml| 2 +-
 debian/changelog | 6 ++
 3 files changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index ff417b1..5ba30cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,4 @@
-2.1.0-final
+2.1.0-rc4
  * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
(CASSANDRA-7551)
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/build.xml
--
diff --git a/build.xml b/build.xml
index fd0c72b..ca973cc 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
 property name=debuglevel value=source,lines,vars/
 
 !-- default version and SCM information --
-property name=base.version value=2.1.0-rc3/
+property name=base.version value=2.1.0-rc4/
 property name=scm.connection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.developerConnection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.url 
value=http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree/

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/debian/changelog
--
diff --git a/debian/changelog b/debian/changelog
index 6f8e3ec..7a38d2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (2.1.0~rc4) unstable; urgency=medium
+
+  * New RC release
+
+ -- Eric Evans eev...@apache.org  Fri, 18 Jul 2014 13:40:48 -0500
+
 cassandra (2.1.0~rc3) unstable; urgency=medium
 
   * New RC release



[03/12] git commit: Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread brandonwilliams
Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

Patch by Gregory Ramsperger, reviewed by brandonwilliams for
CASSANDRA-7572


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

Branch: refs/heads/cassandra-2.1.0
Commit: 87548095859c210e7be8cc8bbb4a5aa1f857a6ad
Parents: 337e4a8
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:49:13 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:49:13 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/87548095/conf/cassandra-env.sh
--
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index 7604918..d4e6590 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -90,7 +90,7 @@ calculate_heap_sizes()
 
 java_ver_output=`${JAVA:-java} -version 21`
 
-jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
+jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
{print $2}'`
 JVM_VERSION=${jvmver%_*}
 JVM_PATCH_VERSION=${jvmver#*_}
 
@@ -100,7 +100,7 @@ if [ $JVM_VERSION \ 1.7 ] ; then
 fi
 
 
-jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
+jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
$1}'`
 case $jvm in
 OpenJDK)
 JVM_VENDOR=OpenJDK



[01/12] git commit: update versioning for 2.1.0-rc4 release

2014-07-21 Thread brandonwilliams
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 337e4a829 - 875480958
  refs/heads/cassandra-2.1 82fa5d507 - 3b14f6a5d
  refs/heads/cassandra-2.1.0 d872e2c74 - df7bd7f72
  refs/heads/trunk 8d8fed522 - 2093270c7


update versioning for 2.1.0-rc4 release


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

Branch: refs/heads/cassandra-2.1
Commit: d872e2c74685c0c8c019b2ef46aefa443efa95b9
Parents: 8fd8832
Author: Eric Evans eev...@apache.org
Authored: Fri Jul 18 13:42:11 2014 -0500
Committer: Eric Evans eev...@apache.org
Committed: Fri Jul 18 13:42:11 2014 -0500

--
 CHANGES.txt  | 2 +-
 build.xml| 2 +-
 debian/changelog | 6 ++
 3 files changed, 8 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index ff417b1..5ba30cc 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,4 @@
-2.1.0-final
+2.1.0-rc4
  * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
(CASSANDRA-7551)
  * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/build.xml
--
diff --git a/build.xml b/build.xml
index fd0c72b..ca973cc 100644
--- a/build.xml
+++ b/build.xml
@@ -25,7 +25,7 @@
 property name=debuglevel value=source,lines,vars/
 
 !-- default version and SCM information --
-property name=base.version value=2.1.0-rc3/
+property name=base.version value=2.1.0-rc4/
 property name=scm.connection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.developerConnection 
value=scm:git://git.apache.org/cassandra.git/
 property name=scm.url 
value=http://git-wip-us.apache.org/repos/asf?p=cassandra.git;a=tree/

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d872e2c7/debian/changelog
--
diff --git a/debian/changelog b/debian/changelog
index 6f8e3ec..7a38d2d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+cassandra (2.1.0~rc4) unstable; urgency=medium
+
+  * New RC release
+
+ -- Eric Evans eev...@apache.org  Fri, 18 Jul 2014 13:40:48 -0500
+
 cassandra (2.1.0~rc3) unstable; urgency=medium
 
   * New RC release



[10/12] git commit: Merge branch 'cassandra-2.1.0' into cassandra-2.1

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.1.0' into cassandra-2.1

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/3b14f6a5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/3b14f6a5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/3b14f6a5

Branch: refs/heads/trunk
Commit: 3b14f6a5dbc91b3e8d2efa95840a61604dd6fbcb
Parents: 82fa5d5 df7bd7f
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:51:10 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:51:10 2014 -0500

--
 CHANGES.txt   | 2 +-
 build.xml | 2 +-
 conf/cassandra-env.sh | 4 ++--
 debian/changelog  | 6 ++
 4 files changed, 10 insertions(+), 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/CHANGES.txt
--
diff --cc CHANGES.txt
index 8fa96f6,5ba30cc..2aa2efa
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,15 -1,4 +1,15 @@@
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 +
 +
- 2.1.0-final
+ 2.1.0-rc4
   * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 (CASSANDRA-7551)
   * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/build.xml
--

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3b14f6a5/conf/cassandra-env.sh
--



[08/12] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1.0

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.0' into cassandra-2.1.0


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

Branch: refs/heads/cassandra-2.1.0
Commit: df7bd7f725f6df5102730de89647418dd9f9473d
Parents: d872e2c 8754809
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:50:18 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:50:18 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/df7bd7f7/conf/cassandra-env.sh
--



[05/12] git commit: Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread brandonwilliams
Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

Patch by Gregory Ramsperger, reviewed by brandonwilliams for
CASSANDRA-7572


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

Branch: refs/heads/cassandra-2.0
Commit: 87548095859c210e7be8cc8bbb4a5aa1f857a6ad
Parents: 337e4a8
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:49:13 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:49:13 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/87548095/conf/cassandra-env.sh
--
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index 7604918..d4e6590 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -90,7 +90,7 @@ calculate_heap_sizes()
 
 java_ver_output=`${JAVA:-java} -version 21`
 
-jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
+jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
{print $2}'`
 JVM_VERSION=${jvmver%_*}
 JVM_PATCH_VERSION=${jvmver#*_}
 
@@ -100,7 +100,7 @@ if [ $JVM_VERSION \ 1.7 ] ; then
 fi
 
 
-jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
+jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
$1}'`
 case $jvm in
 OpenJDK)
 JVM_VENDOR=OpenJDK



[04/12] git commit: Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread brandonwilliams
Fix jvm version detection when JAVA_TOOL_OPTIONS in environment

Patch by Gregory Ramsperger, reviewed by brandonwilliams for
CASSANDRA-7572


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

Branch: refs/heads/trunk
Commit: 87548095859c210e7be8cc8bbb4a5aa1f857a6ad
Parents: 337e4a8
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:49:13 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:49:13 2014 -0500

--
 conf/cassandra-env.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/87548095/conf/cassandra-env.sh
--
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index 7604918..d4e6590 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -90,7 +90,7 @@ calculate_heap_sizes()
 
 java_ver_output=`${JAVA:-java} -version 21`
 
-jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
+jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
{print $2}'`
 JVM_VERSION=${jvmver%_*}
 JVM_PATCH_VERSION=${jvmver#*_}
 
@@ -100,7 +100,7 @@ if [ $JVM_VERSION \ 1.7 ] ; then
 fi
 
 
-jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
+jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
$1}'`
 case $jvm in
 OpenJDK)
 JVM_VENDOR=OpenJDK



[12/12] git commit: Merge branch 'cassandra-2.1' into trunk

2014-07-21 Thread brandonwilliams
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 2093270c7c51700996577fd679f644bcfb17239e
Parents: 8d8fed5 3b14f6a
Author: Brandon Williams brandonwilli...@apache.org
Authored: Mon Jul 21 07:51:21 2014 -0500
Committer: Brandon Williams brandonwilli...@apache.org
Committed: Mon Jul 21 07:51:21 2014 -0500

--
 CHANGES.txt   | 2 +-
 build.xml | 2 +-
 conf/cassandra-env.sh | 4 ++--
 debian/changelog  | 6 ++
 4 files changed, 10 insertions(+), 4 deletions(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/2093270c/build.xml
--



[jira] [Updated] (CASSANDRA-5839) Save repair data to system table

2014-07-21 Thread Marcus Eriksson (JIRA)

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

Marcus Eriksson updated CASSANDRA-5839:
---

Fix Version/s: (was: 2.0.10)
   3.0

 Save repair data to system table
 

 Key: CASSANDRA-5839
 URL: https://issues.apache.org/jira/browse/CASSANDRA-5839
 Project: Cassandra
  Issue Type: New Feature
  Components: Core, Tools
Reporter: Jonathan Ellis
Assignee: Marcus Eriksson
Priority: Minor
 Fix For: 3.0

 Attachments: 2.0.4-5839-draft.patch, 2.0.6-5839-v2.patch


 As noted in CASSANDRA-2405, it would be useful to store repair results, 
 particularly with sub-range repair available (CASSANDRA-5280).



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (CASSANDRA-7572) cassandra-env.sh fails to find Java version if JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams resolved CASSANDRA-7572.
-

   Resolution: Fixed
Fix Version/s: 2.1.0
   2.0.10
 Reviewer: Brandon Williams

bq. Parsing this is not guaranteed to work as there is no contract for this 
output. The recommended way of dealing with this is via a Java application 
(which will have access to each of these pieces).

While I totally agree with you on this point, we've been using this method for 
years without any problem until now, so I committed the change with grep.

 cassandra-env.sh fails to find Java version if JAVA_TOOL_OPTIONS in 
 environment
 ---

 Key: CASSANDRA-7572
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7572
 Project: Cassandra
  Issue Type: Bug
  Components: Config
 Environment: Linux/darwin/etc
Reporter: Gregory Ramsperger
 Fix For: 2.0.10, 2.1.0


 Parsing of Java version is done in cassandra-env.sh via
 {code}
 java_ver_output=`${JAVA:-java} -version 21`
 jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
 {code}
 This fails if the first line of output from `java -version` does not contain 
 the version. When JAVA_TOOL_OPTIONS is set as the output is
 {quote}
 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 java version 1.7.0_40
 Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
 Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
 {quote}
 Parsing this is not guaranteed to work as there is no contract for this 
 output. The recommended way of dealing with this is via a Java application 
 (which will have access to each of these pieces).
 If you want to keep with this model of doing things, you can apply a very 
 small but hacky patch:
 {code}
 -jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
 +jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
 {print $2}'`
  JVM_VERSION=${jvmver%_*}
  JVM_PATCH_VERSION=${jvmver#*_}
 @@ -100,7 +100,7 @@
  fi
 -jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
 +jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
 $1}'`
  case $jvm in
  OpenJDK)
 {code}
 Otherwise, you need to write a java app, compiled for older versions, that 
 returns this data via the java.specification.version and a combination of 
 java.vm.name and java.vm.vendor.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (CASSANDRA-7572) cassandra-env.sh fails to find Java version if JAVA_TOOL_OPTIONS in environment

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-7572:
---

Assignee: Gregory Ramsperger

 cassandra-env.sh fails to find Java version if JAVA_TOOL_OPTIONS in 
 environment
 ---

 Key: CASSANDRA-7572
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7572
 Project: Cassandra
  Issue Type: Bug
  Components: Config
 Environment: Linux/darwin/etc
Reporter: Gregory Ramsperger
Assignee: Gregory Ramsperger
 Fix For: 2.0.10, 2.1.0


 Parsing of Java version is done in cassandra-env.sh via
 {code}
 java_ver_output=`${JAVA:-java} -version 21`
 jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
 {code}
 This fails if the first line of output from `java -version` does not contain 
 the version. When JAVA_TOOL_OPTIONS is set as the output is
 {quote}
 Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
 java version 1.7.0_40
 Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
 Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
 {quote}
 Parsing this is not guaranteed to work as there is no contract for this 
 output. The recommended way of dealing with this is via a Java application 
 (which will have access to each of these pieces).
 If you want to keep with this model of doing things, you can apply a very 
 small but hacky patch:
 {code}
 -jvmver=`echo $java_ver_output | awk -F'' 'NR==1 {print $2}'`
 +jvmver=`echo $java_ver_output | grep 'java version' | awk -F'' 'NR==1 
 {print $2}'`
  JVM_VERSION=${jvmver%_*}
  JVM_PATCH_VERSION=${jvmver#*_}
 @@ -100,7 +100,7 @@
  fi
 -jvm=`echo $java_ver_output | awk 'NR==2 {print $1}'`
 +jvm=`echo $java_ver_output | grep -A 1 'java version' | awk 'NR==2 {print 
 $1}'`
  case $jvm in
  OpenJDK)
 {code}
 Otherwise, you need to write a java app, compiled for older versions, that 
 returns this data via the java.specification.version and a combination of 
 java.vm.name and java.vm.vendor.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7578) Non-superusers can't login to tools because of no access to system.schema_usertypes

2014-07-21 Thread Mike Adamson (JIRA)
Mike Adamson created CASSANDRA-7578:
---

 Summary: Non-superusers can't login to tools because of no access 
to system.schema_usertypes
 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Blocker
 Fix For: 2.1.0


When I try to login to cqlsh as a non-superuser I get the following error:
{noformat}
ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
permission on table system.schema_usertypes or any of its parents
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


buildbot success in ASF Buildbot on cassandra-trunk

2014-07-21 Thread buildbot
The Buildbot has detected a restored build on builder cassandra-trunk while 
building cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/478

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch trunk] 2093270c7c51700996577fd679f644bcfb17239e
Blamelist: Brandon Williams brandonwilli...@apache.org,Eric Evans 
eev...@apache.org

Build succeeded!

sincerely,
 -The Buildbot





[jira] [Updated] (CASSANDRA-7578) Non-superusers can't login to tools because of no access to system.schema_usertypes

2014-07-21 Thread Mike Adamson (JIRA)

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

Mike Adamson updated CASSANDRA-7578:


Attachment: 7578.patch

 Non-superusers can't login to tools because of no access to 
 system.schema_usertypes
 ---

 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Blocker
 Fix For: 2.1.0

 Attachments: 7578.patch


 When I try to login to cqlsh as a non-superuser I get the following error:
 {noformat}
 ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
 permission on table system.schema_usertypes or any of its parents
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


buildbot failure in ASF Buildbot on cassandra-trunk

2014-07-21 Thread buildbot
The Buildbot has detected a new failure on builder cassandra-trunk while 
building libcloud.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/479

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch trunk] 075383509e507f88b2c105b4f5fde5b4d4af5e68
Blamelist: Tomaz Muraus to...@apache.org

BUILD FAILED: failed

sincerely,
 -The Buildbot





[jira] [Updated] (CASSANDRA-7578) Non-superusers can't login to tools because of no access to system.schema_usertypes

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7578:


Reviewer: Aleksey Yeschenko

 Non-superusers can't login to tools because of no access to 
 system.schema_usertypes
 ---

 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Blocker
 Fix For: 2.1.0

 Attachments: 7578.patch


 When I try to login to cqlsh as a non-superuser I get the following error:
 {noformat}
 ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
 permission on table system.schema_usertypes or any of its parents
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-7546:


Attachment: 7546.20.txt

Attaching my suggested alternative approach, which I think is a little simpler 
to reason about: if we loop for any reason we immediately take the monitor, if 
unsafe is available to us; if it isn't we don't benefit from the optimisation. 
We don't change the logic for updating, as taking the monitor doesn't guarantee 
we have exclusive access, it only guarantees we have exclusive access versus 
those writes that have themselves spun once, thereby capping the amount of 
competition.

For 2.1 I suggest sticking with the same approach, then in 3.0/.1 we'll take a 
look at the more complex approach of making writes lazy under competition.

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-7507:
---

Let's keep the scope of this ticket to dealing with OOM.  Open files can be 
another ticket.

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6434) Repair-aware gc grace period

2014-07-21 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis commented on CASSANDRA-6434:
---

We could approximate it as max(repairtime) for any sstable that may contain the 
key.  (And we already have the logic that says, checking bloom filters is 
expensive so avoid it until the last minute.)

 Repair-aware gc grace period 
 -

 Key: CASSANDRA-6434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6434
 Project: Cassandra
  Issue Type: New Feature
  Components: Core
Reporter: sankalp kohli
Assignee: Marcus Eriksson
 Fix For: 3.0


 Since the reason for gcgs is to ensure that we don't purge tombstones until 
 every replica has been notified, it's redundant in a world where we're 
 tracking repair times per sstable (and repairing frequentily), i.e., a world 
 where we default to incremental repair a la CASSANDRA-5351.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Joshua McKenzie (JIRA)

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

Joshua McKenzie commented on CASSANDRA-7507:


Was planning on creating another ticket for that effort and doing a little 
tidying up on this patch to make it more general rather than oom-specific on 
naming.  I should be able to get to that today.

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7507:
-

It's worth noting then that this applies also to catch (Throwable), although it 
looks a little less widespread.

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson updated CASSANDRA-7546:


Attachment: 7546.20_alt.txt

Thanks for taking a look Benedict - I am in the process of actually measuring 
the effect via cassandra stress in the real world for code paths that might hit 
this (actual user initiated contended write on a partition, hint based 
contented write, and low cardinality secondary indexes).

I had initially shied away from the non obviously paired monitor usage because 
a) it requires unsafe, and b) whilst monitorenter and monitorexit do exist as 
separate byte codes, I seem to recall that there is code in the monitor fast 
path (especially w.r.t. biased locking which we probably wan't to avoid) that 
expects them to be trivially paired... c) on the negative side this forces two 
loops under contention, but that is better than unbounded obviously.

I'm not sure if b) is an actual issue (or what effect it has - does it matter 
if the monitor is always inflated for example).

As for c) I guess I'll have to measure and see.

Note I attached the current version of the 2.0 patch I was testing with, which 
pushed the loop body into a class similar to ColumnUpdater in 2.1 (which I 
would update accordingly)... 

again any attempt to further simplify the three separate loops, didn't really 
make things any simpler looking.

I'm not sure my code (whilst not blazingly pretty) is insanely hard to reason 
about... clearly someone always makes progress (since any change in state is 
dependent on a CAS success or failure due to someone else succeeding); the 
un-contended and highly contended cases are pretty simple, and any 
flip-flopping between the count and raw state again always means we made 
progress AND must (still) be under low contention anyway.

In any case, I'll defer to your judgement as to what you'd like to see in the 
code base... as I say some actual numbers outside of a synthetic test should 
help

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_alt.txt, suggestion1.txt, 
 suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7579) File descriptor exhaustion can lead to unreliable state in exception condition

2014-07-21 Thread Joshua McKenzie (JIRA)
Joshua McKenzie created CASSANDRA-7579:
--

 Summary: File descriptor exhaustion can lead to unreliable state 
in exception condition
 Key: CASSANDRA-7579
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7579
 Project: Cassandra
  Issue Type: New Feature
Reporter: Joshua McKenzie
Priority: Minor


If the JVM runs out of file descriptors we can get into an unreliable state 
(similar to CASSANDRA-7507 on OOM) where we cannot trust our shutdown hook to 
run successfully to completion.  We need to check IOExceptions and appropriate 
Throwable to see if we have a FileNotFoundException w/message Too many files 
open and forcefully shutdown the Daemon in these cases.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Joshua McKenzie (JIRA)

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

Joshua McKenzie updated CASSANDRA-7507:
---

Attachment: 7507_v2.txt

Attaching a v2 w/naming that's not OOM-centric and exposes an external method 
for others to call to cause a hardExit (i.e. CASSANDRA-7579)

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt, 7507_v2.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7546:
-

bq. I'm not sure my code (whilst not blazingly pretty) is insanely hard to 
reason about... 

I'm not suggesting it is by any means abhorrent, only that we can achieve the 
desired goal with fewer changes, so unless there's a lot of evidence that the 
extra complexity is worth it, we should stick with the simpler approach (this 
also means less pollution of the instruction cache in a very hot part of the 
codebase, which is a good thing). I would suggest running a stress workload 
with a fixed number of threads, with increasing numbers of partitions (from 1 
up to  number of threads) and see how the curve changes, if you want to 
benchmark this closely.

As to (b): since we only ever acquire the lock when we are contending, it must 
always be inflated anyway, so this shouldn't be an issue.

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_alt.txt, suggestion1.txt, 
 suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7507:
-

Starting a thread is sometimes impossible after an OOM (since OOM can be thrown 
for having exhausted our permitted thread count), so we should probably execute 
our shutdown directly in the thread that caught the exception. Also, we need to 
(IMO) deal with all the catch (Throwable) instances that do not propagate the 
exception - esp. any worker threads in SEP, DebuggableExecutor etc, but there 
are other places we could get bitten as well.

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt, 7507_v2.txt


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7580) Super user cannot list permissions with cqlsh

2014-07-21 Thread Mike Adamson (JIRA)

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

Mike Adamson updated CASSANDRA-7580:


Description: 
On a system configured with:

 * PasswordAuthenticator
 * CassandraAuthorizer

If you login as a super user and issue:
{noformat}
list all permissions;
{noformat}
where permissions have been granted to a user you get back:
{noformat}
Keyspace None not found.
{noformat}

  was:
On a system configured with:
 * PasswordAuthenticator
 * CassandraAuthorizer
If you login as a super user and issue:
{noformat}
list all permissions;
{noformat}
where permissions have been granted to a user you get back:
{noformat}
Keyspace None not found.
{noformat}


 Super user cannot list permissions with cqlsh
 -

 Key: CASSANDRA-7580
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7580
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Critical
 Fix For: 2.1.0


 On a system configured with:
  * PasswordAuthenticator
  * CassandraAuthorizer
 If you login as a super user and issue:
 {noformat}
 list all permissions;
 {noformat}
 where permissions have been granted to a user you get back:
 {noformat}
 Keyspace None not found.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7580) Super user cannot list permissions with cqlsh

2014-07-21 Thread Mike Adamson (JIRA)
Mike Adamson created CASSANDRA-7580:
---

 Summary: Super user cannot list permissions with cqlsh
 Key: CASSANDRA-7580
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7580
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Critical
 Fix For: 2.1.0


On a system configured with:
 * PasswordAuthenticator
 * CassandraAuthorizer
If you login as a super user and issue:
{noformat}
list all permissions;
{noformat}
where permissions have been granted to a user you get back:
{noformat}
Keyspace None not found.
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7580) Super user cannot list permissions with cqlsh

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7580:


Attachment: 7580.txt

Patch against 2.1.0

 Super user cannot list permissions with cqlsh
 -

 Key: CASSANDRA-7580
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7580
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Critical
 Fix For: 2.1.0

 Attachments: 7580.txt


 On a system configured with:
  * PasswordAuthenticator
  * CassandraAuthorizer
 If you login as a super user and issue:
 {noformat}
 list all permissions;
 {noformat}
 where permissions have been granted to a user you get back:
 {noformat}
 Keyspace None not found.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7580) Super user cannot list permissions with cqlsh

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams updated CASSANDRA-7580:


Reviewer: Tyler Hobbs
Priority: Minor  (was: Critical)

 Super user cannot list permissions with cqlsh
 -

 Key: CASSANDRA-7580
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7580
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Assignee: Brandon Williams
Priority: Minor
 Fix For: 2.1.0

 Attachments: 7580.txt


 On a system configured with:
  * PasswordAuthenticator
  * CassandraAuthorizer
 If you login as a super user and issue:
 {noformat}
 list all permissions;
 {noformat}
 where permissions have been granted to a user you get back:
 {noformat}
 Keyspace None not found.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (CASSANDRA-7580) Super user cannot list permissions with cqlsh

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams reassigned CASSANDRA-7580:
---

Assignee: Brandon Williams

 Super user cannot list permissions with cqlsh
 -

 Key: CASSANDRA-7580
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7580
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Assignee: Brandon Williams
Priority: Critical
 Fix For: 2.1.0

 Attachments: 7580.txt


 On a system configured with:
  * PasswordAuthenticator
  * CassandraAuthorizer
 If you login as a super user and issue:
 {noformat}
 list all permissions;
 {noformat}
 where permissions have been granted to a user you get back:
 {noformat}
 Keyspace None not found.
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson updated CASSANDRA-7546:


Attachment: 7546.20_2.txt

Yes, I agree with you; simpler is better - I didn't like the fact that it was 
hard to disentangle my code.

So I have attached a different patch 7546.20_2.txt, which is about the same as 
yours except that it tracks a very minimal state heuristic to avoid the first 
unlocked loop when it thinks it is contended... this helps under load where it 
attempts about 1.11 loop per mutation in the heavily contented case vs 1.93 
with 7546.20.txt (or about 18 without any patch at all).

It turns out to be rather hard to measure this with cassandra-stress in 
isolation - basically the looping causes very high memory allocation rates 
which may or may not be a problem based on the current state of memory in the 
JVM (e.g. currently resident recent memtables) and other activity. Also, I may 
open a separate ticket to allow batch (thrift and maybe CQL) inserts in 
cassandra-stress to bump up the load a little more.

That said, clearly this race is undesirable, and we have certainly observed its 
effects in practice in the hinting case (which is doubly unfortunate since you 
are already now doing more work per node than you thought, and you are going 
down a contention path you weren't expecting based on your own partitioning). 
Note when it goes wrong it goes really wrong!

So, I think settling for a patch with minimal code or uncontended path impact, 
that caps us nicely is the right way to go

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

FYI here are the same synthetic test results for 7546.20_2.txt

{code}
[junit] --
[junit] 1 THREAD; ELEMENT SIZE 64
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 993ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 34 ms for 3 collections
[junit]   Approx allocation = 553MB vs 8MB; ratio to raw data size = 
69.13799428571429
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 761ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 34 ms for 3 collections
[junit]   Approx allocation = 579MB vs 8MB; ratio to raw data size = 
72.31675047619048
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 780ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 25 ms for 2 collections
[junit]   Approx allocation = 436MB vs 8MB; ratio to raw data size = 
54.48992095238095
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 671ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 24 ms for 2 collections
[junit]   Approx allocation = 477MB vs 8MB; ratio to raw data size = 
59.545997142857146
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 256
[junit]  original code:
[junit]   Duration = 452ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 11 ms for 1 collections
[junit]   Approx allocation = 321MB vs 8MB; ratio to raw data size = 
40.14510761904762
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 460ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 10 ms for 1 collections
[junit]   Approx allocation = 341MB vs 8MB; ratio to raw data size = 
42.63770857142857
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 1 elements = 10 (of size 64) partitions = 1024
[junit]  original code:
[junit]   Duration = 462ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 14 ms for 1 collections
[junit]   Approx allocation = 264MB vs 8MB; ratio to raw data size = 
32.99879142857143
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 543ms maxConcurrency = 1
[junit]   GC for PS Scavenge: 14 ms for 1 collections
[junit]   Approx allocation = 272MB vs 8MB; ratio to raw data size = 
34.047360952380956
[junit]   loopRatio (closest to 1 best) 1.0 raw 10/10 counted 0/0 
sync 0/0 up 0 down 0
[junit] 
[junit] 
[junit] --
[junit] 100 THREADS; ELEMENT SIZE 64
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 1
[junit]  original code:
[junit]   Duration = 2318ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 119 ms for 32 collections
[junit]   Approx allocation = 10547MB vs 8MB; ratio to raw data size = 
1316.62704
[junit]   loopRatio (closest to 1 best) 18.35448 raw 10/1835448 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 1315ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 14 ms for 1 collections
[junit]   Approx allocation = 629MB vs 8MB; ratio to raw data size = 
78.62949142857143
[junit]   loopRatio (closest to 1 best) 1.11563 raw 13653/13653 counted 0/0 
sync 88223/97910 up 0 down 0
[junit] 
[junit] 
[junit] Threads = 100 elements = 10 (of size 64) partitions = 16
[junit]  original code:
[junit]   Duration = 215ms maxConcurrency = 100
[junit]   GC for PS Scavenge: 23 ms for 2 collections
[junit]   Approx allocation = 776MB vs 8MB; ratio to raw data size = 
96.92138285714286
[junit]   loopRatio (closest to 1 best) 1.95927 raw 10/195927 counted 
0/0 sync 0/0 up 0 down 0
[junit] 
[junit]  modified code: 
[junit]   Duration = 201ms maxConcurrency = 99
[junit]   GC for PS Scavenge: 9 ms for 1 collections

[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7546:
-

I'll take a look at your patch shortly, but in the meantime it's worth pointing 
out cassandra-stress does now support fairly complex CQL inserts including 
various sizes of batch updates, with fine grained control over how large a 
partition to generate, and what percentage of that total partition to update at 
any point. Take a look at the sample stress profiles under the tools hierarchy 
on latest 2.1

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7507) OOM creates unreliable state - die instantly better

2014-07-21 Thread Joshua McKenzie (JIRA)

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

Joshua McKenzie updated CASSANDRA-7507:
---

Attachment: exceptionHandlingResults.txt
findSwallowedExceptions.py

Some quick and dirty parsing of the code base gives me:
{code:title=Parse_Results}
Total Exceptions caught and rethrown as something other than RuntimeException: 
69  
Total Exceptions caught and rethrown as RuntimeException: 76
   
Total Exceptions Swallowed: 89  
  
Total Exceptions analyzed: 234  
  
{code}

While incredibly rough and not handling a bunch of edge-cases in the exception 
handling blocks, as a general metric of how pervasive these blanket catches are 
within the code-base this data should be helpful to get a general feel for how 
much work we're proposing here.

Attaching findSwallowedExceptions.py and exceptionHandlingResults.txt which is 
output from the script.

While I agree that this is something we need to look into, I'm not sure 2.1.1 
and this ticket is the right place to make changes that are this extensive.  
3.0 and another ticket to specifically go through the code-base and clean up 
blanket exception catch blocks to not swallow and be very specific on the logic 
surrounding rethrows would work for me.  WDYT [~jbellis]?

 OOM creates unreliable state - die instantly better
 ---

 Key: CASSANDRA-7507
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7507
 Project: Cassandra
  Issue Type: New Feature
Reporter: Karl Mueller
Assignee: Joshua McKenzie
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7507_v1.txt, 7507_v2.txt, exceptionHandlingResults.txt, 
 findSwallowedExceptions.py


 I had a cassandra node run OOM. My heap had enough headroom, there was just 
 something which either was a bug or some unfortunate amount of short-term 
 memory utilization. This resulted in the following error:
  WARN [StorageServiceShutdownHook] 2014-06-30 09:38:38,251 StorageProxy.java 
 (line 1713) Some hints were not written before shutdown.  This is not 
 supposed to happen.  You should (a) run repair, and (b) file a bug report
 There are no other messages of relevance besides the OOM error about 90 
 minutes earlier.
 My (limited) understanding of the JVM and Cassandra says that when it goes 
 OOM, it will attempt to signal cassandra to shut down cleanly. The problem, 
 in my view, is that with an OOM situation, nothing is guaranteed anymore. I 
 believe it's impossible to reliably cleanly shut down at this point, and 
 therefore it's wrong to even try. 
 Yes, ideally things could be written out, flushed to disk, memory messages 
 written, other nodes notified, etc. but why is there any reason to believe 
 any of those steps could happen? Would happen? Couldn't bad data be written 
 at this point to disk rather than good data? Some network messages delivered, 
 but not others?
 I think Cassandra should have the option to (and possibly default) to kill 
 itself immediately upon the OOM condition happening in a hard way, and not 
 rely on the java-based clean shutdown process. Cassandra already handles 
 recovery from unclean shutdown, and it's not a big deal. My node, for 
 example, kept in a sort-of alive state for 90 minutes where who knows what it 
 was doing or not doing.
 I don't know enough about the JVM and options for it to know the best exact 
 implementation of die instantly on OOM, but it should be something that's 
 possible either with some flags or a C library (which doesn't rely on java 
 memory to do something which it may not be able to get!)
 Short version: a kill -9 of all C* processes in that instance without needing 
 more java memory, when OOM is raised



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

Excellent - I will take a look in the 2.1 branch - I was wondering if there 
were some sample profiles.

The main problem we have in 2.0.x is that if we are under relatively heavy 
sustained write load, so we are allocating memtable slabs along with all the 
small short lived objects in the commit log and write path... you add to that 
hinting which means more memtable slabs, and now because of single partition 
for hints, much larger snap trees (whose somewhat contentious 
lazy-copy-on-write may or may not make things worse, I don't know)... under 
that allocation rate we spill huge numbers of small (possibly snap tree nodes) 
objects into the tenured gen along with the slabs, which tends to lead to 
promotion failure and need for compaction.

I'll have to play around, but I don't think it is easy to capture the effect of 
excessive (intended to be) temporary object allocation in a stress test as 
opposed to excessive CPU because the GC can cope really well until it doesn't.

Note my belief is your new tree in 2.1 probably mitigates the problem quite a 
bit (no contention in the tree, wider nodes, less rebalancing etc), though I 
suggest we still fix the CAS loop allocation there too.


 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7578) Non-superusers can't login to tools because of no access to system.schema_usertypes

2014-07-21 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko commented on CASSANDRA-7578:
--

Not available to anyone without access to table.schema_usertypes, only when 
both authn and authz are enabled. Not blocker-worthy.

 Non-superusers can't login to tools because of no access to 
 system.schema_usertypes
 ---

 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Priority: Blocker
 Fix For: 2.1.0

 Attachments: 7578.patch


 When I try to login to cqlsh as a non-superuser I get the following error:
 {noformat}
 ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
 permission on table system.schema_usertypes or any of its parents
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7578) Add system.schema_usertypes to the readable-by-default whitelist

2014-07-21 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko updated CASSANDRA-7578:
-

 Priority: Minor  (was: Blocker)
Fix Version/s: (was: 2.1.0)
   2.1.1
 Assignee: Mike Adamson
  Summary: Add system.schema_usertypes to the readable-by-default 
whitelist  (was: Non-superusers can't login to tools because of no access to 
system.schema_usertypes)

 Add system.schema_usertypes to the readable-by-default whitelist
 

 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Assignee: Mike Adamson
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7578.patch


 When I try to login to cqlsh as a non-superuser I get the following error:
 {noformat}
 ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
 permission on table system.schema_usertypes or any of its parents
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7468) Add time-based execution to cassandra-stress

2014-07-21 Thread Matt Kennedy (JIRA)

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

Matt Kennedy updated CASSANDRA-7468:


Attachment: trunk-7468-rebase.patch

 Add time-based execution to cassandra-stress
 

 Key: CASSANDRA-7468
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7468
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Matt Kennedy
Assignee: Matt Kennedy
Priority: Minor
 Fix For: 2.1.1

 Attachments: trunk-7468-rebase.patch, trunk-7468.patch






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7468) Add time-based execution to cassandra-stress

2014-07-21 Thread Matt Kennedy (JIRA)

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

Matt Kennedy commented on CASSANDRA-7468:
-

Rebased to trunk. Changed '-d' parameter to '-duration'. Note, running this 
without the latest DataStax Java driver (2.1-beta2) results in some seemingly 
extraneous stack traces, but they don't seem to affect functionality.

 Add time-based execution to cassandra-stress
 

 Key: CASSANDRA-7468
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7468
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Matt Kennedy
Assignee: Matt Kennedy
Priority: Minor
 Fix For: 2.1.1

 Attachments: trunk-7468-rebase.patch, trunk-7468.patch






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-2434) range movements can violate consistency

2014-07-21 Thread sankalp kohli (JIRA)

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

sankalp kohli commented on CASSANDRA-2434:
--

This will be very nice to have in 2.0
cc [~brandon.williams]

 range movements can violate consistency
 ---

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: T Jake Luciani
 Fix For: 2.1 beta2

 Attachments: 2434-3.patch.txt, 2434-testery.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7468) Add time-based execution to cassandra-stress

2014-07-21 Thread Benedict (JIRA)

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

Benedict updated CASSANDRA-7468:


Attachment: 7468v2.txt

Attached a slightly tweaked version that uses 
Uninterruptibles.sleepUninterruptibly instead of Thread.sleep(), and also asks 
that the duration units be specified, for the hell of it (supporting s, m and 
h)... duration seemed a bit strange without it :-)

For the record, and posterity, the switch is actually duration=, not -duration

If you review the changes I'll commit to trunk + 2.1

 Add time-based execution to cassandra-stress
 

 Key: CASSANDRA-7468
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7468
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Matt Kennedy
Assignee: Matt Kennedy
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7468v2.txt, trunk-7468-rebase.patch, trunk-7468.patch






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7581) Stop read requests for partitions which don't belong to a node

2014-07-21 Thread sankalp kohli (JIRA)
sankalp kohli created CASSANDRA-7581:


 Summary: Stop read requests for partitions which don't belong to a 
node
 Key: CASSANDRA-7581
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7581
 Project: Cassandra
  Issue Type: Bug
Reporter: sankalp kohli
Priority: Minor


A C* instance will serve CF level reads with null values or old values to a 
co-ordinator even if the instance is not responsible for the data. 
This is bad if co-ordinator has a wrong view of the ring and will return wrong 
results back to the client. 
A solution to this problem could be to not respond or return error to such read 
requests. 
Tricky part here is to respond to read requests when the instance has just lost 
ownership for a few ring delay. 
 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6851) Improve anticompaction after incremental repair

2014-07-21 Thread Russell Alexander Spitzer (JIRA)

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

Russell Alexander Spitzer commented on CASSANDRA-6851:
--

The only thing I worry about is changing the signature on,
bikeshed
{code}
public CollectionCollectionSSTableReader 
groupSSTablesForAntiCompaction(CollectionSSTableReader sstablesToGroup, int 
groupSize)
{code}

I was wondering if we might want multiple implementations, some of which may 
not have a set group size. I know this is bikesheding, but maybe we want to 
change the signature to maxGroupSize? 
/bikeshed

I'm +1 with everything else

 Improve anticompaction after incremental repair
 ---

 Key: CASSANDRA-6851
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6851
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
Reporter: Marcus Eriksson
Assignee: Russell Alexander Spitzer
Priority: Minor
  Labels: compaction, lhf
 Fix For: 3.0


 After an incremental repair we iterate over all sstables and split them in 
 two parts, one containing the repaired data and one the unrepaired. We could 
 in theory double the number of sstables on a node.
 To avoid this we could make anticompaction also do a compaction, for example, 
 if we are to anticompact 10 sstables, we could anticompact those to 2.
 Note that we need to avoid creating too big sstables though, if we 
 anticompact all sstables on a node it would essentially be a major compaction.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6572) Workload recording / playback

2014-07-21 Thread Lyuben Todorov (JIRA)

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

Lyuben Todorov commented on CASSANDRA-6572:
---

variablesClone was used for debugging the values being stored for replay so it 
was indeed redundant, pushing 
[6228df6|https://github.com/lyubent/cassandra/commit/6228df6e5f047b29476744b1012802de37edda37]
 that makes replay of prepared statements functional, now string statements and 
prepared statements can be mixed and replayed. The commit also addressed the 
above issues. 

Next up is logging of thread  session ids.

 Workload recording / playback
 -

 Key: CASSANDRA-6572
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6572
 Project: Cassandra
  Issue Type: New Feature
  Components: Core, Tools
Reporter: Jonathan Ellis
Assignee: Lyuben Todorov
 Fix For: 2.1.1

 Attachments: 6572-trunk.diff


 Write sample mode gets us part way to testing new versions against a real 
 world workload, but we need an easy way to test the query side as well.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: no need to enforce case, when using equalsIgnoreCase

2014-07-21 Thread dbrosius
Repository: cassandra
Updated Branches:
  refs/heads/trunk 2093270c7 - 453292f3c


no need to enforce case, when using equalsIgnoreCase


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

Branch: refs/heads/trunk
Commit: 453292f3c6a443aed72a4b53203f1a46b26d9aaf
Parents: 2093270
Author: Dave Brosius dbros...@mebigfatguy.com
Authored: Mon Jul 21 17:41:43 2014 -0400
Committer: Dave Brosius dbros...@mebigfatguy.com
Committed: Mon Jul 21 17:41:43 2014 -0400

--
 tools/stress/src/org/apache/cassandra/stress/StressProfile.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/453292f3/tools/stress/src/org/apache/cassandra/stress/StressProfile.java
--
diff --git a/tools/stress/src/org/apache/cassandra/stress/StressProfile.java 
b/tools/stress/src/org/apache/cassandra/stress/StressProfile.java
index 13f26a2..8037ba5 100644
--- a/tools/stress/src/org/apache/cassandra/stress/StressProfile.java
+++ b/tools/stress/src/org/apache/cassandra/stress/StressProfile.java
@@ -492,7 +492,7 @@ public class StressProfile implements Serializable
 while (iter.hasNext())
 {
 Map.EntryString, V e = iter.next();
-if (!e.getKey().toLowerCase().equalsIgnoreCase(e.getKey()))
+if (!e.getKey().equalsIgnoreCase(e.getKey()))
 {
 reinsert.add(e);
 iter.remove();



[jira] [Commented] (CASSANDRA-2434) range movements can violate consistency

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-2434:
-

Does seem like mostly new code we could just add with the flag defaulting to 
off to give 2.0 the option.

 range movements can violate consistency
 ---

 Key: CASSANDRA-2434
 URL: https://issues.apache.org/jira/browse/CASSANDRA-2434
 Project: Cassandra
  Issue Type: Bug
Reporter: Peter Schuller
Assignee: T Jake Luciani
 Fix For: 2.1 beta2

 Attachments: 2434-3.patch.txt, 2434-testery.patch.txt


 My reading (a while ago) of the code indicates that there is no logic 
 involved during bootstrapping that avoids consistency level violations. If I 
 recall correctly it just grabs neighbors that are currently up.
 There are at least two issues I have with this behavior:
 * If I have a cluster where I have applications relying on QUORUM with RF=3, 
 and bootstrapping complete based on only one node, I have just violated the 
 supposedly guaranteed consistency semantics of the cluster.
 * Nodes can flap up and down at any time, so even if a human takes care to 
 look at which nodes are up and things about it carefully before 
 bootstrapping, there's no guarantee.
 A complication is that not only does it depend on use-case where this is an 
 issue (if all you ever do you do at CL.ONE, it's fine); even in a cluster 
 which is otherwise used for QUORUM operations you may wish to accept 
 less-than-quorum nodes during bootstrap in various emergency situations.
 A potential easy fix is to have bootstrap take an argument which is the 
 number of hosts to bootstrap from, or to assume QUORUM if none is given.
 (A related concern is bootstrapping across data centers. You may *want* to 
 bootstrap to a local node and then do a repair to avoid sending loads of data 
 across DC:s while still achieving consistency. Or even if you don't care 
 about the consistency issues, I don't think there is currently a way to 
 bootstrap from local nodes only.)
 Thoughts?



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: remove unbound method template parm

2014-07-21 Thread dbrosius
Repository: cassandra
Updated Branches:
  refs/heads/trunk 453292f3c - 19b7d56fe


remove unbound method template parm


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

Branch: refs/heads/trunk
Commit: 19b7d56fece687b108e1b6ee024e0f09592a529e
Parents: 453292f
Author: Dave Brosius dbros...@mebigfatguy.com
Authored: Mon Jul 21 17:46:45 2014 -0400
Committer: Dave Brosius dbros...@mebigfatguy.com
Committed: Mon Jul 21 17:46:45 2014 -0400

--
 src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/19b7d56f/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
--
diff --git a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java 
b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
index 92fabf1..9469a9c 100644
--- a/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
+++ b/src/java/org/apache/cassandra/metrics/KeyspaceMetrics.java
@@ -223,7 +223,7 @@ public class KeyspaceMetrics
  * @param MetricValue 
  * @return Gaugegt;Long that computes sum of MetricValue.getValue()
  */
-private T extends Number GaugeLong createKeyspaceGauge(String name, 
final MetricValue extractor)
+private GaugeLong createKeyspaceGauge(String name, final MetricValue 
extractor)
 {
 allMetrics.add(name);
 return Metrics.newGauge(factory.createMetricName(name), new 
GaugeLong()



buildbot success in ASF Buildbot on cassandra-trunk

2014-07-21 Thread buildbot
The Buildbot has detected a restored build on builder cassandra-trunk while 
building cassandra.
Full details are available at:
 http://ci.apache.org/builders/cassandra-trunk/builds/480

Buildbot URL: http://ci.apache.org/

Buildslave for this Build: portunus_ubuntu

Build Reason: scheduler
Build Source Stamp: [branch trunk] 453292f3c6a443aed72a4b53203f1a46b26d9aaf
Blamelist: Dave Brosius dbros...@mebigfatguy.com

Build succeeded!

sincerely,
 -The Buildbot





[jira] [Commented] (CASSANDRA-7468) Add time-based execution to cassandra-stress

2014-07-21 Thread Matt Kennedy (JIRA)

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

Matt Kennedy commented on CASSANDRA-7468:
-

Thanks for the review, units are a welcome addition. I'm also relieved you got 
rid of the countInSeconds boolean to do it. I felt cheap doing it that way :-)

Everything else looks good to me.

 Add time-based execution to cassandra-stress
 

 Key: CASSANDRA-7468
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7468
 Project: Cassandra
  Issue Type: Improvement
  Components: Tools
Reporter: Matt Kennedy
Assignee: Matt Kennedy
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7468v2.txt, trunk-7468-rebase.patch, trunk-7468.patch






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread Benedict (JIRA)

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

Benedict commented on CASSANDRA-7546:
-

My concern with the approach you've outlined is that we're barely a hair's 
breadth from a lock: as soon as we hit _any_ contention, we inflate to locking 
behaviour. This is good for large partitions, and most likely bad for small 
ones, and more to the point seems barely worth the complexity of not just 
making it a lock in the first place. On further consideration, I think I would 
perhaps prefer to run this lock-inflation behaviour based on the size of the 
aborted changes, so if the amount of work we've wasted exceeds some threshold 
we decide it's high time all threads were stopped to let us finish. We could in 
this scenario flip a switch that requires all modifications to acquire the 
monitor once we hit this threshold once; I would be fine with this behaviour, 
and it would be simple. 

I do wonder how much of a problem this is in 2.1, though. I wonder if the 
largest problem with these racy modifications isn't actually the massive 
amounts of memtable arena allocations they incur in 2.0 with all their 
transformation.apply() calls (which reallocate the mutation on the arena), 
which is most likely what causes the promotion failures, as they cannot be 
collected. I wonder if we shouldn't simply backport the logic to only allocate 
these once, or at most twice (the first time we race). It seems much more 
likely to me that this is where the pain is being felt.

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7559) Switch Stress from using math3.pair because it is unserializable

2014-07-21 Thread Russell Alexander Spitzer (JIRA)

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

Russell Alexander Spitzer commented on CASSANDRA-7559:
--

[~tjake], This is the patch we were talking about a few days ago for fixing 
StressD. I would be grateful if you could review and make sure I haven't done 
anything destructive.

 Switch Stress from using math3.pair because it is unserializable 
 -

 Key: CASSANDRA-7559
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7559
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Russell Alexander Spitzer
Assignee: Russell Alexander Spitzer
 Attachments: CASSANDRA-7559-2.1.patch


 Stress uses org.apache.commons.math3.util.Pair to hold information in 
 settings because eventually it is used in commons.math3.distributions. This 
 makes the settings unserializable so we can't run with StressDemon.
 {code}
 /bin/cassandra-stress user no_warmup ops(insert=1) n=1 
 profile=cqlstress-example.yaml -sendto 127.0.0.1
 Exception in thread main java.io.NotSerializableException: 
 org.apache.commons.math3.util.Pair
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
 at java.util.ArrayList.writeObject(ArrayList.java:742)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at 
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:606)
   at 
 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:988)
   at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1495)
   at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
   at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
   at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
   at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
   at 
 java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1547)
   at 
 java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1508)
   at 
 java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1431)
   at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1177)
   at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
   at org.apache.cassandra.stress.Stress.main(Stress.java:78)
 Control-C caught. Canceling running action and shutting down...
 {code}
 To fix this we can pass around serializable pairs and convert to 
 commons.math3 pairs before we actually pass the objects to the distribution 
 code. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: Give read access to system.schema_usertypes to all authenticated users

2014-07-21 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 3b14f6a5d - 3d2da7987


Give read access to system.schema_usertypes to all authenticated users

patch by Mike Adamson; reviewed by Aleksey Yeschenko for CASSANDRA-7578


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

Branch: refs/heads/cassandra-2.1
Commit: 3d2da7987e3a6d0f1e088af9c661068335cc9f67
Parents: 3b14f6a
Author: Mike Adamson madam...@datastax.com
Authored: Mon Jul 21 14:36:01 2014 +0100
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:27:22 2014 +0300

--
 CHANGES.txt| 2 ++
 src/java/org/apache/cassandra/service/ClientState.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d2da798/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 2aa2efa..f05c98e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,8 @@
  * Configurable client timeout for cqlsh (CASSANDRA-7516)
  * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
  * Fix native protocol drop user type notification (CASSANDRA-7571)
+ * Give read access to system.schema_usertypes to all authenticated users
+   (CASSANDRA-7578)
 
 
 2.1.0-rc4

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d2da798/src/java/org/apache/cassandra/service/ClientState.java
--
diff --git a/src/java/org/apache/cassandra/service/ClientState.java 
b/src/java/org/apache/cassandra/service/ClientState.java
index be3b895..c0396cb 100644
--- a/src/java/org/apache/cassandra/service/ClientState.java
+++ b/src/java/org/apache/cassandra/service/ClientState.java
@@ -67,7 +67,8 @@ public class ClientState
SystemKeyspace.PEERS_CF,
SystemKeyspace.SCHEMA_KEYSPACES_CF,
SystemKeyspace.SCHEMA_COLUMNFAMILIES_CF,
-   SystemKeyspace.SCHEMA_COLUMNS_CF };
+   SystemKeyspace.SCHEMA_COLUMNS_CF,
+   SystemKeyspace.SCHEMA_USER_TYPES_CF};
 for (String cf : cfs)
 
READABLE_SYSTEM_RESOURCES.add(DataResource.columnFamily(Keyspace.SYSTEM_KS, 
cf));
 



[1/2] git commit: Give read access to system.schema_usertypes to all authenticated users

2014-07-21 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 19b7d56fe - 9c9fa1498


Give read access to system.schema_usertypes to all authenticated users

patch by Mike Adamson; reviewed by Aleksey Yeschenko for CASSANDRA-7578


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

Branch: refs/heads/trunk
Commit: 3d2da7987e3a6d0f1e088af9c661068335cc9f67
Parents: 3b14f6a
Author: Mike Adamson madam...@datastax.com
Authored: Mon Jul 21 14:36:01 2014 +0100
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:27:22 2014 +0300

--
 CHANGES.txt| 2 ++
 src/java/org/apache/cassandra/service/ClientState.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d2da798/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index 2aa2efa..f05c98e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -7,6 +7,8 @@
  * Configurable client timeout for cqlsh (CASSANDRA-7516)
  * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
  * Fix native protocol drop user type notification (CASSANDRA-7571)
+ * Give read access to system.schema_usertypes to all authenticated users
+   (CASSANDRA-7578)
 
 
 2.1.0-rc4

http://git-wip-us.apache.org/repos/asf/cassandra/blob/3d2da798/src/java/org/apache/cassandra/service/ClientState.java
--
diff --git a/src/java/org/apache/cassandra/service/ClientState.java 
b/src/java/org/apache/cassandra/service/ClientState.java
index be3b895..c0396cb 100644
--- a/src/java/org/apache/cassandra/service/ClientState.java
+++ b/src/java/org/apache/cassandra/service/ClientState.java
@@ -67,7 +67,8 @@ public class ClientState
SystemKeyspace.PEERS_CF,
SystemKeyspace.SCHEMA_KEYSPACES_CF,
SystemKeyspace.SCHEMA_COLUMNFAMILIES_CF,
-   SystemKeyspace.SCHEMA_COLUMNS_CF };
+   SystemKeyspace.SCHEMA_COLUMNS_CF,
+   SystemKeyspace.SCHEMA_USER_TYPES_CF};
 for (String cf : cfs)
 
READABLE_SYSTEM_RESOURCES.add(DataResource.columnFamily(Keyspace.SYSTEM_KS, 
cf));
 



[2/2] git commit: Merge branch 'cassandra-2.1' into trunk

2014-07-21 Thread aleksey
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 9c9fa1498096c51db7692a453f4af77f9276adfa
Parents: 19b7d56 3d2da79
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:30:10 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:30:10 2014 +0300

--
 CHANGES.txt| 2 ++
 src/java/org/apache/cassandra/service/ClientState.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


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

http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c9fa149/src/java/org/apache/cassandra/service/ClientState.java
--



[jira] [Updated] (CASSANDRA-7578) Give read access to system.schema_usertypes to all authenticated users

2014-07-21 Thread Aleksey Yeschenko (JIRA)

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

Aleksey Yeschenko updated CASSANDRA-7578:
-

Summary: Give read access to system.schema_usertypes to all authenticated 
users  (was: Add system.schema_usertypes to the readable-by-default whitelist)

 Give read access to system.schema_usertypes to all authenticated users
 --

 Key: CASSANDRA-7578
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7578
 Project: Cassandra
  Issue Type: Bug
  Components: Tools
Reporter: Mike Adamson
Assignee: Mike Adamson
Priority: Minor
 Fix For: 2.1.1

 Attachments: 7578.patch


 When I try to login to cqlsh as a non-superuser I get the following error:
 {noformat}
 ErrorMessage code=2100 [Unauthorized] message=User mike has no SELECT 
 permission on table system.schema_usertypes or any of its parents
 {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6454) Pig support for hadoop CqlInputFormat

2014-07-21 Thread Alex Liu (JIRA)

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

Alex Liu commented on CASSANDRA-6454:
-

cassandra_pig.yaml uses Murmur3Partitioner instead of ByteOrderedPartitioner. 
ByteOrderedPartitioner is used for other unit tests.

 Pig support for hadoop CqlInputFormat
 -

 Key: CASSANDRA-6454
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6454
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Reporter: Alex Liu
Assignee: Alex Liu
 Fix For: 2.0.10

 Attachments: 6454-2.0-branch.txt, 6454-v2-2.0-branch.txt, 
 6454-v3-2.0-branch.txt, 6454-v3-2.1-branch.txt


 CASSANDRA-6311 adds new CqlInputFormat, we need add the Pig support for it



--
This message was sent by Atlassian JIRA
(v6.2#6252)


git commit: Fix ReversedType(DateType) mapping to native protocol

2014-07-21 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.0 875480958 - ff211a4c4


Fix ReversedType(DateType) mapping to native protocol

patch by Ben Hood; reviewed by Aleksey Yeschenko for CASSANDRA-7576


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

Branch: refs/heads/cassandra-2.0
Commit: ff211a4c445cd74859aabf00f3ec81a5e69473f2
Parents: 8754809
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:42:24 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:42:24 2014 +0300

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d339309..9909760 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/src/java/org/apache/cassandra/transport/DataType.java
--
diff --git a/src/java/org/apache/cassandra/transport/DataType.java 
b/src/java/org/apache/cassandra/transport/DataType.java
index 1656d24..8cd7194 100644
--- a/src/java/org/apache/cassandra/transport/DataType.java
+++ b/src/java/org/apache/cassandra/transport/DataType.java
@@ -146,8 +146,9 @@ public enum DataType implements 
OptionCodec.CodecableDataType
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
+
 // For compatibility sake, we still return DateType as the timestamp 
type in resultSet metadata (#5723)
-else if (type instanceof DateType)
+if (type instanceof DateType)
 type = TimestampType.instance;
 
 DataType dt = dataTypeMap.get(type);



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

2014-07-21 Thread aleksey
Merge branch 'cassandra-2.1' into trunk


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

Branch: refs/heads/trunk
Commit: 3a7242eca51e703c33ed8a4ca7d61a66018f7a81
Parents: 9c9fa14 f9af6ab
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:46:32 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:46:32 2014 +0300

--
 CHANGES.txt   | 2 ++
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


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



[jira] [Commented] (CASSANDRA-6454) Pig support for hadoop CqlInputFormat

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-6454:
-

Is there a reason we need to switch to it for this? (not that I disagree with 
it at all)

 Pig support for hadoop CqlInputFormat
 -

 Key: CASSANDRA-6454
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6454
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Reporter: Alex Liu
Assignee: Alex Liu
 Fix For: 2.0.10

 Attachments: 6454-2.0-branch.txt, 6454-v2-2.0-branch.txt, 
 6454-v3-2.0-branch.txt, 6454-v3-2.1-branch.txt


 CASSANDRA-6311 adds new CqlInputFormat, we need add the Pig support for it



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[1/2] git commit: Fix ReversedType(DateType) mapping to native protocol

2014-07-21 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/cassandra-2.1 3d2da7987 - f9af6ab58


Fix ReversedType(DateType) mapping to native protocol

patch by Ben Hood; reviewed by Aleksey Yeschenko for CASSANDRA-7576


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

Branch: refs/heads/cassandra-2.1
Commit: ff211a4c445cd74859aabf00f3ec81a5e69473f2
Parents: 8754809
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:42:24 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:42:24 2014 +0300

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d339309..9909760 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/src/java/org/apache/cassandra/transport/DataType.java
--
diff --git a/src/java/org/apache/cassandra/transport/DataType.java 
b/src/java/org/apache/cassandra/transport/DataType.java
index 1656d24..8cd7194 100644
--- a/src/java/org/apache/cassandra/transport/DataType.java
+++ b/src/java/org/apache/cassandra/transport/DataType.java
@@ -146,8 +146,9 @@ public enum DataType implements 
OptionCodec.CodecableDataType
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
+
 // For compatibility sake, we still return DateType as the timestamp 
type in resultSet metadata (#5723)
-else if (type instanceof DateType)
+if (type instanceof DateType)
 type = TimestampType.instance;
 
 DataType dt = dataTypeMap.get(type);



[1/3] git commit: Fix ReversedType(DateType) mapping to native protocol

2014-07-21 Thread aleksey
Repository: cassandra
Updated Branches:
  refs/heads/trunk 9c9fa1498 - 3a7242eca


Fix ReversedType(DateType) mapping to native protocol

patch by Ben Hood; reviewed by Aleksey Yeschenko for CASSANDRA-7576


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

Branch: refs/heads/trunk
Commit: ff211a4c445cd74859aabf00f3ec81a5e69473f2
Parents: 8754809
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:42:24 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:42:24 2014 +0300

--
 CHANGES.txt   | 1 +
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/CHANGES.txt
--
diff --git a/CHANGES.txt b/CHANGES.txt
index d339309..9909760 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.10
+ * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
  * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
  * Fix range merging when DES scores are zero (CASSANDRA-7535)
  * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/ff211a4c/src/java/org/apache/cassandra/transport/DataType.java
--
diff --git a/src/java/org/apache/cassandra/transport/DataType.java 
b/src/java/org/apache/cassandra/transport/DataType.java
index 1656d24..8cd7194 100644
--- a/src/java/org/apache/cassandra/transport/DataType.java
+++ b/src/java/org/apache/cassandra/transport/DataType.java
@@ -146,8 +146,9 @@ public enum DataType implements 
OptionCodec.CodecableDataType
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
+
 // For compatibility sake, we still return DateType as the timestamp 
type in resultSet metadata (#5723)
-else if (type instanceof DateType)
+if (type instanceof DateType)
 type = TimestampType.instance;
 
 DataType dt = dataTypeMap.get(type);



[jira] [Commented] (CASSANDRA-7570) CqlPagingRecordReader is broken

2014-07-21 Thread Alex Liu (JIRA)

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

Alex Liu commented on CASSANDRA-7570:
-

It can be fixed at CPRR by changing  to = ( to =), then filter the first 
row if it's equal to the last row fetched. 

Since we have new CRR, we should depreciate CPRR. Should we fix this issue or 
just warn user that compact table is broken, should use the new CRR instead.

 CqlPagingRecordReader is broken
 ---

 Key: CASSANDRA-7570
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7570
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Reporter: Brandon Williams
Assignee: Alex Liu
 Fix For: 2.0.10


 As mentioned on CASSANDRA-7059, it broke CPRR.  It's not quite as simple as 
 changing the greater than to a greater than equal, either, since that makes 
 the task run forever.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


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

2014-07-21 Thread aleksey
Merge branch 'cassandra-2.0' into cassandra-2.1

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/f9af6ab5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f9af6ab5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f9af6ab5

Branch: refs/heads/cassandra-2.1
Commit: f9af6ab5874f4d33e32af1af8934bd7c0bed1724
Parents: 3d2da79 ff211a4
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:46:11 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:46:11 2014 +0300

--
 CHANGES.txt   | 2 ++
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9af6ab5/CHANGES.txt
--
diff --cc CHANGES.txt
index f05c98e,9909760..028128d
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,5 +1,31 @@@
 -2.0.10
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 + * Give read access to system.schema_usertypes to all authenticated users
 +   (CASSANDRA-7578)
++Merged from 2.0:
+  * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 +
 +
 +2.1.0-rc4
 + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 +   (CASSANDRA-7551)
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 + * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 + * Fix configuration error message when running nodetool ring (CASSANDRA-7508)
 + * Support conditional updates, tuple type, and the v3 protocol in cqlsh 
(CASSANDRA-7509)
 + * Handle queries on multiple secondary index types (CASSANDRA-7525)
 + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 +Merged from 2.0:
   * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9af6ab5/src/java/org/apache/cassandra/transport/DataType.java
--



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

2014-07-21 Thread aleksey
Merge branch 'cassandra-2.0' into cassandra-2.1

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/f9af6ab5
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f9af6ab5
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f9af6ab5

Branch: refs/heads/trunk
Commit: f9af6ab5874f4d33e32af1af8934bd7c0bed1724
Parents: 3d2da79 ff211a4
Author: Aleksey Yeschenko alek...@apache.org
Authored: Tue Jul 22 01:46:11 2014 +0300
Committer: Aleksey Yeschenko alek...@apache.org
Committed: Tue Jul 22 01:46:11 2014 +0300

--
 CHANGES.txt   | 2 ++
 src/java/org/apache/cassandra/transport/DataType.java | 3 ++-
 2 files changed, 4 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9af6ab5/CHANGES.txt
--
diff --cc CHANGES.txt
index f05c98e,9909760..028128d
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,29 -1,5 +1,31 @@@
 -2.0.10
 +2.1.1
 + * Add listen_interface and rpc_interface options (CASSANDRA-7417)
 + * Fail to start if commit log replay detects a problem (CASSANDRA-7125)
 + * Improve schema merge performance (CASSANDRA-7444)
 + * Adjust MT depth based on # of partition validating (CASSANDRA-5263)
 + * Optimise NativeCell comparisons (CASSANDRA-6755)
 + * Configurable client timeout for cqlsh (CASSANDRA-7516)
 + * Include snippet of CQL query near syntax error in messages (CASSANDRA-7111)
 + * Fix native protocol drop user type notification (CASSANDRA-7571)
 + * Give read access to system.schema_usertypes to all authenticated users
 +   (CASSANDRA-7578)
++Merged from 2.0:
+  * Fix ReversedType(DateType) mapping to native protocol (CASSANDRA-7576)
 +
 +
 +2.1.0-rc4
 + * Updated memtable_cleanup_threshold and memtable_flush_writers defaults 
 +   (CASSANDRA-7551)
 + * (Windows) fix startup when WMI memory query fails (CASSANDRA-7505)
 + * Anti-compaction proceeds if any part of the repair failed (CASANDRA-7521)
 + * Add missing table name to DROP INDEX responses and notifications 
(CASSANDRA-7539)
 + * Bump CQL version to 3.2.0 and update CQL documentation (CASSANDRA-7527)
 + * Fix configuration error message when running nodetool ring (CASSANDRA-7508)
 + * Support conditional updates, tuple type, and the v3 protocol in cqlsh 
(CASSANDRA-7509)
 + * Handle queries on multiple secondary index types (CASSANDRA-7525)
 + * Fix cqlsh authentication with v3 native protocol (CASSANDRA-7564)
 + * Fix NPE when unknown prepared statement ID is used (CASSANDRA-7454)
 +Merged from 2.0:
   * (Windows) force range-based repair to non-sequential mode (CASSANDRA-7541)
   * Fix range merging when DES scores are zero (CASSANDRA-7535)
   * Warn when SSL certificates have expired (CASSANDRA-7528)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f9af6ab5/src/java/org/apache/cassandra/transport/DataType.java
--



[jira] [Commented] (CASSANDRA-7570) CqlPagingRecordReader is broken

2014-07-21 Thread Brandon Williams (JIRA)

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

Brandon Williams commented on CASSANDRA-7570:
-

We probably at least need to fix it in 2.0, since that's where we broke it, but 
it's also a bit late to deprecate in 2.1.

 CqlPagingRecordReader is broken
 ---

 Key: CASSANDRA-7570
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7570
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Reporter: Brandon Williams
Assignee: Alex Liu
 Fix For: 2.0.10


 As mentioned on CASSANDRA-7059, it broke CPRR.  It's not quite as simple as 
 changing the greater than to a greater than equal, either, since that makes 
 the task run forever.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

{quote}
I do wonder how much of a problem this is in 2.1, though. I wonder if the 
largest problem with these racy modifications isn't actually the massive 
amounts of memtable arena allocations they incur in 2.0 with all their 
transformation.apply() calls (which reallocate the mutation on the arena), 
which is most likely what causes the promotion failures, as they cannot be 
collected. I wonder if we shouldn't simply backport the logic to only allocate 
these once, or at most twice (the first time we race). It seems much more 
likely to me that this is where the pain is being felt.
{quote}
I'm not sure which changes you are talking about back-porting and whether the 
at most twice refers to looping once then locking. Certainly avoiding any 
repeated cloning of the cells is good, however I'm still pretty sure based on 
PrintFLSStatistics that the slabs themselves are not the biggest problem (I 
suspect SnapTreeMap nodes, combined with high rebalancing cost of huge trees in 
the hint case since the keys are almost entirely sorted).

Are you suggesting a one way switch per Atomic*Columns instance that flips 
after a number waster operations? That sounds reasonable... I'd expect that a 
partition for a table is either likely to have high contention or not based on 
the schema design/use case. I have no idea how long these instances hang around 
in practice (presumably not insanely long)

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson edited comment on CASSANDRA-7546 at 7/21/14 11:28 PM:
---

{quote}
I do wonder how much of a problem this is in 2.1, though. I wonder if the 
largest problem with these racy modifications isn't actually the massive 
amounts of memtable arena allocations they incur in 2.0 with all their 
transformation.apply() calls (which reallocate the mutation on the arena), 
which is most likely what causes the promotion failures, as they cannot be 
collected. I wonder if we shouldn't simply backport the logic to only allocate 
these once, or at most twice (the first time we race). It seems much more 
likely to me that this is where the pain is being felt.
{quote}
I'm not sure which changes you are talking about back-porting and whether the 
at most twice refers to looping once then locking, and what is reasonable to 
modify in 2.0.x now. Certainly avoiding any repeated cloning of the cells is 
good, however I'm still pretty sure based on PrintFLSStatistics that the slabs 
themselves are not the biggest problem (I suspect SnapTreeMap nodes, combined 
with high rebalancing cost of huge trees in the hint case since the keys are 
almost entirely sorted).

Are you suggesting a one way switch per Atomic*Columns instance that flips 
after a number waster operations? That sounds reasonable... I'd expect that a 
partition for a table is either likely to have high contention or not based on 
the schema design/use case. I have no idea how long these instances hang around 
in practice (presumably not insanely long) at least if they are being actively 
used since I assume they get flushed eventually in that case, and if they 
aren't it doesn't really matter anyway


was (Author: graham sanderson):
{quote}
I do wonder how much of a problem this is in 2.1, though. I wonder if the 
largest problem with these racy modifications isn't actually the massive 
amounts of memtable arena allocations they incur in 2.0 with all their 
transformation.apply() calls (which reallocate the mutation on the arena), 
which is most likely what causes the promotion failures, as they cannot be 
collected. I wonder if we shouldn't simply backport the logic to only allocate 
these once, or at most twice (the first time we race). It seems much more 
likely to me that this is where the pain is being felt.
{quote}
I'm not sure which changes you are talking about back-porting and whether the 
at most twice refers to looping once then locking. Certainly avoiding any 
repeated cloning of the cells is good, however I'm still pretty sure based on 
PrintFLSStatistics that the slabs themselves are not the biggest problem (I 
suspect SnapTreeMap nodes, combined with high rebalancing cost of huge trees in 
the hint case since the keys are almost entirely sorted).

Are you suggesting a one way switch per Atomic*Columns instance that flips 
after a number waster operations? That sounds reasonable... I'd expect that a 
partition for a table is either likely to have high contention or not based on 
the schema design/use case. I have no idea how long these instances hang around 
in practice (presumably not insanely long)

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7576) DateType columns not properly converted to TimestampType when in ReversedType columns.

2014-07-21 Thread Karl Rieb (JIRA)

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

Karl Rieb commented on CASSANDRA-7576:
--

Thanks [~iamaleksey]!  No problems with the 'patch by', it's fine by me.  

Do you know approximately how long before *2.0.10* is released?  I'm guessing 
some time around August?

 DateType columns not properly converted to TimestampType when in ReversedType 
 columns.
 --

 Key: CASSANDRA-7576
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7576
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Karl Rieb
Assignee: Karl Rieb
 Fix For: 2.0.10, 2.1.1

 Attachments: DataType_CASSANDRA_7576.patch

   Original Estimate: 0.25h
  Remaining Estimate: 0.25h

 The {{org.apache.cassandra.transport.DataType.fromType(AbstractType)}} method 
 has a bug that prevents sending the correct Protocol ID for reversed 
 {{DateType}} columns.   This results in clients receiving Protocol ID {{0}}, 
 which maps to a {{CUSTOM}} type, for timestamp columns that are clustered in 
 reverse order.  
 Some clients can handle this properly since they recognize the 
 {{org.apache.cassandra.db.marshal.DateType}} marshaling type, however the 
 native Datastax java-driver does not.  It will produce errors like the one 
 below when trying to prepare queries against such tables:
 {noformat}
 com.datastax.driver.core.exceptions.InvalidTypeException: Invalid type 
 for value 2 of CQL type 'org.apache.cassandra.db.marshal.DateType', expecting 
 class java.nio.ByteBuffer but class java.util.Date provided
   at com.datastax.driver.core.BoundStatement.bind(BoundStatement.java:190)
   at 
 com.datastax.driver.core.DefaultPreparedStatement.bind(DefaultPreparedStatement.java:103)
 {noformat}
 On the Cassandra side, there is a check for {{DateType}} columns that is 
 supposed to convert these columns to TimestampType.  However, the check is 
 skipped when the column is also reversed.  Specifically:
 {code:title=DataType.java|borderStyle=solid}
 public static PairDataType, Object fromType(AbstractType type)
 {
 // For CQL3 clients, ReversedType is an implementation detail and they
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
 // For compatibility sake, we still return DateType as the timestamp type 
 in resultSet metadata (#5723)
 else if (type instanceof DateType)
 type = TimestampType.instance;
 // ...
 {code}
 The *else if* should be changed to just an *if*, like so:
 {code:title=DataType.java|borderStyle=solid}
 public static PairDataType, Object fromType(AbstractType type)
 {
 // For CQL3 clients, ReversedType is an implementation detail and they
 // shouldn't have to care about it.
 if (type instanceof ReversedType)
 type = ((ReversedType)type).baseType;
 // For compatibility sake, we still return DateType as the timestamp type 
 in resultSet metadata (#5723)
 if (type instanceof DateType)
 type = TimestampType.instance;
 // ...
 {code}
 This bug is preventing us from upgrading our 1.2.11 cluster to 2.0.9 because 
 our clients keep throwing exceptions trying to read or write data to tables 
 with reversed timestamp columns. This issue can be reproduced by creating a 
 CQL table in Cassandra 1.2.11 that clusters on a timestamp in reverse, then 
 upgrading the node to 2.0.9.  When querying the metadata for the table, the 
 node will return Protocol ID 0 (CUSTOM) instead of Protocol ID 11 (TIMESTAMP).



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-6454) Pig support for hadoop CqlInputFormat

2014-07-21 Thread Alex Liu (JIRA)

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

Alex Liu commented on CASSANDRA-6454:
-

Most of Cassandra deployment uses Murmur3Partitioner, testing on 
Murmur3Partitioner covers the general case. Some unit tests still use old 
ByteOrderedPartitioner, so just update the cassanra.yaml to Murmur3Partitioner 
breaks other unit tests. That's the reason I create a new yaml file.

 Pig support for hadoop CqlInputFormat
 -

 Key: CASSANDRA-6454
 URL: https://issues.apache.org/jira/browse/CASSANDRA-6454
 Project: Cassandra
  Issue Type: Bug
  Components: Hadoop
Reporter: Alex Liu
Assignee: Alex Liu
 Fix For: 2.0.10

 Attachments: 6454-2.0-branch.txt, 6454-v2-2.0-branch.txt, 
 6454-v3-2.0-branch.txt, 6454-v3-2.1-branch.txt


 CASSANDRA-6311 adds new CqlInputFormat, we need add the Pig support for it



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7546) AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory

2014-07-21 Thread graham sanderson (JIRA)

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

graham sanderson commented on CASSANDRA-7546:
-

Alternatively if you are saying, let each thread keep working while they still 
believe they can win, or while they have something to do that can be reused if 
they lose, then maybe give them one last shot to try again if they lose and 
haven't done anything reusable, then make them block... I'm okay with that. (of 
course on 2.0.x. today, that pretty much boils down to your patch!)

 AtomicSortedColumns.addAllWithSizeDelta has a spin loop that allocates memory
 -

 Key: CASSANDRA-7546
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7546
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: graham sanderson
Assignee: graham sanderson
 Attachments: 7546.20.txt, 7546.20_2.txt, 7546.20_alt.txt, 
 suggestion1.txt, suggestion1_21.txt


 In order to preserve atomicity, this code attempts to read, clone/update, 
 then CAS the state of the partition.
 Under heavy contention for updating a single partition this can cause some 
 fairly staggering memory growth (the more cores on your machine the worst it 
 gets).
 Whilst many usage patterns don't do highly concurrent updates to the same 
 partition, hinting today, does, and in this case wild (order(s) of magnitude 
 more than expected) memory allocation rates can be seen (especially when the 
 updates being hinted are small updates to different partitions which can 
 happen very fast on their own) - see CASSANDRA-7545
 It would be best to eliminate/reduce/limit the spinning memory allocation 
 whilst not slowing down the very common un-contended case.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7582) 2.1 multi-dc upgrade errors

2014-07-21 Thread Ryan McGuire (JIRA)

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

Ryan McGuire updated CASSANDRA-7582:


Assignee: Russ Hatch

 2.1 multi-dc upgrade errors
 ---

 Key: CASSANDRA-7582
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7582
 Project: Cassandra
  Issue Type: Bug
Reporter: Ryan McGuire
Assignee: Russ Hatch

 Multi-dc upgrade [was working from 2.0 - 2.1 fairly 
 recently|http://cassci.datastax.com/job/cassandra_upgrade_dtest/55/testReport/upgrade_through_versions_test/TestUpgrade_from_cassandra_2_0_latest_tag_to_cassandra_2_1_HEAD/],
  but is currently failing.
 Running 
 upgrade_through_versions_test.py:TestUpgrade_from_cassandra_2_0_HEAD_to_cassandra_2_1_HEAD.bootstrap_multidc_test
  I get the following errors when starting 2.1 upgraded from 2.0:
 {code}
 ERROR [main] 2014-07-21 23:54:20,862 CommitLog.java:143 - Commit log replay 
 failed due to replaying a mutation for a missing table. This error can be 
 ignored by providing -Dcassandra.commitlog.stop_on_missing_tables=false on 
 the command line
 ERROR [main] 2014-07-21 23:54:20,869 CassandraDaemon.java:474 - Exception 
 encountered during startup
 java.lang.RuntimeException: 
 org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
 cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
 [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:457)
  [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:546) 
 [main/:na]
 Caused by: org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't 
 find cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
  ~[main/:na]
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:353)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:333)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:365)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:98)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:137) 
 ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:115) 
 ~[main/:na]
 {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (CASSANDRA-7582) 2.1 multi-dc upgrade errors

2014-07-21 Thread Ryan McGuire (JIRA)
Ryan McGuire created CASSANDRA-7582:
---

 Summary: 2.1 multi-dc upgrade errors
 Key: CASSANDRA-7582
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7582
 Project: Cassandra
  Issue Type: Bug
Reporter: Ryan McGuire


Multi-dc upgrade [was working from 2.0 - 2.1 fairly 
recently|http://cassci.datastax.com/job/cassandra_upgrade_dtest/55/testReport/upgrade_through_versions_test/TestUpgrade_from_cassandra_2_0_latest_tag_to_cassandra_2_1_HEAD/],
 but is currently failing.

Running 
upgrade_through_versions_test.py:TestUpgrade_from_cassandra_2_0_HEAD_to_cassandra_2_1_HEAD.bootstrap_multidc_test
 I get the following errors when starting 2.1 upgraded from 2.0:

{code}
ERROR [main] 2014-07-21 23:54:20,862 CommitLog.java:143 - Commit log replay 
failed due to replaying a mutation for a missing table. This error can be 
ignored by providing -Dcassandra.commitlog.stop_on_missing_tables=false on the 
command line
ERROR [main] 2014-07-21 23:54:20,869 CassandraDaemon.java:474 - Exception 
encountered during startup
java.lang.RuntimeException: 
org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
[main/:na]
at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:457) 
[main/:na]
at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:546) 
[main/:na]
Caused by: org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
at 
org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
 ~[main/:na]
at 
org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
 ~[main/:na]
at 
org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:353)
 ~[main/:na]
at 
org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:333)
 ~[main/:na]
at 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:365)
 ~[main/:na]
at 
org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:98)
 ~[main/:na]
at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:137) 
~[main/:na]
at 
org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:115) 
~[main/:na]
{code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7582) 2.1 multi-dc upgrade errors

2014-07-21 Thread Ryan McGuire (JIRA)

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

Ryan McGuire commented on CASSANDRA-7582:
-

[~rhatch] can you repro and bisect this? It was passing last week.

 2.1 multi-dc upgrade errors
 ---

 Key: CASSANDRA-7582
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7582
 Project: Cassandra
  Issue Type: Bug
Reporter: Ryan McGuire
Assignee: Russ Hatch

 Multi-dc upgrade [was working from 2.0 - 2.1 fairly 
 recently|http://cassci.datastax.com/job/cassandra_upgrade_dtest/55/testReport/upgrade_through_versions_test/TestUpgrade_from_cassandra_2_0_latest_tag_to_cassandra_2_1_HEAD/],
  but is currently failing.
 Running 
 upgrade_through_versions_test.py:TestUpgrade_from_cassandra_2_0_HEAD_to_cassandra_2_1_HEAD.bootstrap_multidc_test
  I get the following errors when starting 2.1 upgraded from 2.0:
 {code}
 ERROR [main] 2014-07-21 23:54:20,862 CommitLog.java:143 - Commit log replay 
 failed due to replaying a mutation for a missing table. This error can be 
 ignored by providing -Dcassandra.commitlog.stop_on_missing_tables=false on 
 the command line
 ERROR [main] 2014-07-21 23:54:20,869 CassandraDaemon.java:474 - Exception 
 encountered during startup
 java.lang.RuntimeException: 
 org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
 cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
 [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:457)
  [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:546) 
 [main/:na]
 Caused by: org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't 
 find cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
  ~[main/:na]
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:353)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:333)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:365)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:98)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:137) 
 ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:115) 
 ~[main/:na]
 {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7582) 2.1 multi-dc upgrade errors

2014-07-21 Thread Ryan McGuire (JIRA)

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

Ryan McGuire updated CASSANDRA-7582:


Since Version: 2.1 rc3

 2.1 multi-dc upgrade errors
 ---

 Key: CASSANDRA-7582
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7582
 Project: Cassandra
  Issue Type: Bug
Reporter: Ryan McGuire
Assignee: Russ Hatch

 Multi-dc upgrade [was working from 2.0 - 2.1 fairly 
 recently|http://cassci.datastax.com/job/cassandra_upgrade_dtest/55/testReport/upgrade_through_versions_test/TestUpgrade_from_cassandra_2_0_latest_tag_to_cassandra_2_1_HEAD/],
  but is currently failing.
 Running 
 upgrade_through_versions_test.py:TestUpgrade_from_cassandra_2_0_HEAD_to_cassandra_2_1_HEAD.bootstrap_multidc_test
  I get the following errors when starting 2.1 upgraded from 2.0:
 {code}
 ERROR [main] 2014-07-21 23:54:20,862 CommitLog.java:143 - Commit log replay 
 failed due to replaying a mutation for a missing table. This error can be 
 ignored by providing -Dcassandra.commitlog.stop_on_missing_tables=false on 
 the command line
 ERROR [main] 2014-07-21 23:54:20,869 CassandraDaemon.java:474 - Exception 
 encountered during startup
 java.lang.RuntimeException: 
 org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
 cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
 [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:457)
  [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:546) 
 [main/:na]
 Caused by: org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't 
 find cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
  ~[main/:na]
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:353)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:333)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:365)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:98)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:137) 
 ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:115) 
 ~[main/:na]
 {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.

2014-07-21 Thread Robert Stupp (JIRA)

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

Robert Stupp updated CASSANDRA-7370:


Attachment: (was: 7370-v1-prototype.diff)

 Create a new system table node_config to load cassandra.yaml config data.
 ---

 Key: CASSANDRA-7370
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370
 Project: Cassandra
  Issue Type: Wish
  Components: Config
Reporter: Hayato Shimizu
Assignee: Robert Stupp
Priority: Minor
  Labels: ponies
 Attachments: 7370-v3.txt


 Currently the node configuration information specified in cassandra.yaml can 
 only be viewed via JMX or by looking at the file on individual machines.
 As an administrator, it would be extremely useful to be able to execute 
 queries like the following example;
 select concurrent_reads from system.node_config;
 which will list all the concurrent_reads value from all of the nodes in a 
 cluster.
 This will require a new table in the system keyspace and the data to be 
 loaded (if required) during the bootstrap, and updated when MBeans attribute 
 value updates are performed. The data from other nodes in the cluster is also 
 required in the table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.

2014-07-21 Thread Robert Stupp (JIRA)

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

Robert Stupp updated CASSANDRA-7370:


Attachment: 7370-v3.txt

merge trunk

 Create a new system table node_config to load cassandra.yaml config data.
 ---

 Key: CASSANDRA-7370
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370
 Project: Cassandra
  Issue Type: Wish
  Components: Config
Reporter: Hayato Shimizu
Assignee: Robert Stupp
Priority: Minor
  Labels: ponies
 Attachments: 7370-v3.txt


 Currently the node configuration information specified in cassandra.yaml can 
 only be viewed via JMX or by looking at the file on individual machines.
 As an administrator, it would be extremely useful to be able to execute 
 queries like the following example;
 select concurrent_reads from system.node_config;
 which will list all the concurrent_reads value from all of the nodes in a 
 cluster.
 This will require a new table in the system keyspace and the data to be 
 loaded (if required) during the bootstrap, and updated when MBeans attribute 
 value updates are performed. The data from other nodes in the cluster is also 
 required in the table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7370) Create a new system table node_config to load cassandra.yaml config data.

2014-07-21 Thread Robert Stupp (JIRA)

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

Robert Stupp updated CASSANDRA-7370:


Attachment: (was: 7370-v2-with-jmx.diff)

 Create a new system table node_config to load cassandra.yaml config data.
 ---

 Key: CASSANDRA-7370
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7370
 Project: Cassandra
  Issue Type: Wish
  Components: Config
Reporter: Hayato Shimizu
Assignee: Robert Stupp
Priority: Minor
  Labels: ponies
 Attachments: 7370-v3.txt


 Currently the node configuration information specified in cassandra.yaml can 
 only be viewed via JMX or by looking at the file on individual machines.
 As an administrator, it would be extremely useful to be able to execute 
 queries like the following example;
 select concurrent_reads from system.node_config;
 which will list all the concurrent_reads value from all of the nodes in a 
 cluster.
 This will require a new table in the system keyspace and the data to be 
 loaded (if required) during the bootstrap, and updated when MBeans attribute 
 value updates are performed. The data from other nodes in the cluster is also 
 required in the table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (CASSANDRA-7582) 2.1 multi-dc upgrade errors

2014-07-21 Thread Jonathan Ellis (JIRA)

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

Jonathan Ellis updated CASSANDRA-7582:
--

  Component/s: Core
 Priority: Critical  (was: Major)
Fix Version/s: 2.1.0

 2.1 multi-dc upgrade errors
 ---

 Key: CASSANDRA-7582
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7582
 Project: Cassandra
  Issue Type: Bug
  Components: Core
Reporter: Ryan McGuire
Assignee: Russ Hatch
Priority: Critical
 Fix For: 2.1.0


 Multi-dc upgrade [was working from 2.0 - 2.1 fairly 
 recently|http://cassci.datastax.com/job/cassandra_upgrade_dtest/55/testReport/upgrade_through_versions_test/TestUpgrade_from_cassandra_2_0_latest_tag_to_cassandra_2_1_HEAD/],
  but is currently failing.
 Running 
 upgrade_through_versions_test.py:TestUpgrade_from_cassandra_2_0_HEAD_to_cassandra_2_1_HEAD.bootstrap_multidc_test
  I get the following errors when starting 2.1 upgraded from 2.0:
 {code}
 ERROR [main] 2014-07-21 23:54:20,862 CommitLog.java:143 - Commit log replay 
 failed due to replaying a mutation for a missing table. This error can be 
 ignored by providing -Dcassandra.commitlog.stop_on_missing_tables=false on 
 the command line
 ERROR [main] 2014-07-21 23:54:20,869 CassandraDaemon.java:474 - Exception 
 encountered during startup
 java.lang.RuntimeException: 
 org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't find 
 cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:300) 
 [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:457)
  [main/:na]
 at 
 org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:546) 
 [main/:na]
 Caused by: org.apache.cassandra.db.UnknownColumnFamilyException: Couldn't 
 find cfId=a1b676f3-0c5d-3276-bfd5-07cf43397004
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserializeCfId(ColumnFamilySerializer.java:164)
  ~[main/:na]
 at 
 org.apache.cassandra.db.ColumnFamilySerializer.deserialize(ColumnFamilySerializer.java:97)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserializeOneCf(Mutation.java:353)
  ~[main/:na]
 at 
 org.apache.cassandra.db.Mutation$MutationSerializer.deserialize(Mutation.java:333)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:365)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLogReplayer.recover(CommitLogReplayer.java:98)
  ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:137) 
 ~[main/:na]
 at 
 org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:115) 
 ~[main/:na]
 {code}



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-07-21 Thread Vijay (JIRA)

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

Vijay commented on CASSANDRA-7438:
--

Attached patch makes the off heap/Serialization Cache configurable. (the 
default is still SerializationCache).

Regarding performance, the performance of the new cache is obviously better 
when the JNI overhead is less than the GC overhead, but for the smaller sized 
caches which can fit in memory the performance is little lower which is 
understandable (but both of them out perform pagecache performance by a large 
number). Here are the numbers.

OffheapCacheProvider

Running READ with 1200 threads  for 1000 iterations
ops   ,op/s,   key/s,mean, med, .95, .99,.999, 
max,   time,   stderr
2030355   , 2029531, 2029531, 3.1, 3.1, 5.4, 5.7,61.8,  
3014.5,1.0,  0.0
2395480   ,  202845,  202845, 5.8, 5.4, 5.8,20.2,   522.4,   
545.9,2.8,  0.0
2638600   ,  221368,  221368, 5.4, 5.3, 5.8,16.3,78.8,   
131.5,3.9,  0.57860
2891705   ,  221976,  221976, 5.4, 5.3, 5.6, 6.2,15.2,
19.2,5.0,  0.60478
3147747   ,  222527,  222527, 5.4, 5.3, 5.6, 6.1,15.4,
18.2,6.2,  0.58659
3394999   ,  221527,  221527, 5.4, 5.3, 5.6, 6.6,15.9,
19.4,7.3,  0.55884
3663559   ,  226114,  226114, 5.3, 5.2, 5.6,15.0,84.4,   
110.7,8.5,  0.52924
3911154   ,  223831,  223831, 5.4, 5.3, 5.6, 6.1,15.6,
20.0,9.6,  0.50018
4152946   ,  223246,  223246, 5.4, 5.3, 5.6, 6.1,15.7,
18.8,   10.7,  0.47323
4403162   ,  228532,  228532, 5.2, 5.2, 5.6,23.2,   107.4,   
121.4,   11.8,  0.44856
4641021   ,  225196,  225196, 5.3, 5.2, 5.6, 5.9,15.3,
18.4,   12.8,  0.42557
4889523   ,  222826,  222826, 5.4, 5.3, 5.6, 6.3,16.2,
22.0,   13.9,  0.40476
5124891   ,  223203,  223203, 5.4, 5.3, 5.6, 5.8, 6.2,
14.8,   15.0,  0.38602
5375262   ,  221222,  221222, 5.4, 5.2, 5.6,18.4,94.2,   
115.1,   16.1,  0.36899
5616470   ,  224022,  224022, 5.4, 5.3, 5.6, 5.9,14.3,
17.8,   17.2,  0.35349
5866825   ,  223000,  223000, 5.4, 5.3, 5.6, 6.1,15.5,
18.2,   18.3,  0.33882
6125601   ,  225757,  225757, 5.2, 5.3, 5.6, 9.6,49.4,
72.0,   19.5,  0.32535
6348030   ,  192703,  192703, 6.3, 5.3, 9.3,14.4,77.1,
91.5,   20.6,  0.31282
6483574   ,  128520,  128520, 9.3, 8.4,10.9,19.5,88.7,
99.0,   21.7,  0.30329
6626176   ,  137199,  137199, 8.7, 8.4,10.6,14.0,32.7,
40.9,   22.7,  0.29771
6768401   ,  136860,  136860, 8.8, 8.4,10.3,14.1,35.1,
40.8,   23.8,  0.29213
6911785   ,  138204,  138204, 8.7, 8.3,10.2,13.7,34.1,
37.8,   24.8,  0.28669
7055951   ,  138633,  138633, 8.7, 8.3,10.5,32.0,40.5,
46.9,   25.8,  0.28130
7199084   ,  137731,  137731, 8.7, 8.4,10.2,14.0,33.4,
40.9,   26.9,  0.27623
7338032   ,  133201,  133201, 9.0, 8.4,10.9,34.0,39.4,
43.8,   27.9,  0.27116
7480439   ,  137059,  137059, 8.8, 8.4,10.2,13.9,35.9,
39.5,   29.0,  0.26663
7647810   ,  161209,  161209, 7.5, 7.8, 9.6,13.4,33.9,
77.9,   30.0,  0.26185
7898882   ,  226498,  226498, 5.3, 5.2, 5.6,19.7,   108.5,   
119.3,   31.1,  0.25629
8136305   ,  223840,  223840, 5.4, 5.3, 5.6, 5.9,17.3,
23.2,   32.2,  0.24838
8372076   ,  223790,  223790, 5.4, 5.3, 5.6, 6.0,15.2,
20.0,   33.2,  0.24095
8633758   ,  232914,  232914, 5.1, 5.2, 5.6,17.5,   138.4,   
182.0,   34.4,  0.23397
8869214   ,  43,  43, 5.4, 5.3, 5.6, 6.0,15.2,
17.9,   35.4,  0.22717
9121652   ,  223037,  223037, 5.4, 5.3, 5.6, 5.9,15.4,
18.8,   36.5,  0.22105
9360286   ,  225070,  225070, 5.3, 5.3, 5.6,14.8,82.7,
92.1,   37.6,  0.21524
9609676   ,  224089,  224089, 5.4, 5.3, 5.6, 5.8, 6.2,
14.3,   38.7,  0.20967
9848551   ,  222123,  222123, 5.4, 5.3, 5.6, 5.9,24.2,
27.2,   39.8,  0.20440
1000  ,  229511,  229511, 5.0, 5.2, 5.8,60.0,74.3,   
132.0,   40.5,  0.19935


Results:
real op rate  : 247211
adjusted op rate stderr   : 0
key rate  : 247211
latency mean  : 5.4
latency median: 3.5
latency 95th percentile   : 5.5
latency 99th percentile   : 6.1
latency 99.9th percentile : 83.4
latency max   : 3014.5
Total operation 

[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-07-21 Thread Vijay (JIRA)

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

Vijay edited comment on CASSANDRA-7438 at 7/22/14 5:49 AM:
---

Attached patch makes the off heap/Serialization Cache configurable. (the 
default is still SerializationCache).

Regarding performance, the performance of the new cache is obviously better 
when the JNI overhead is less than the GC overhead, but for the smaller sized 
caches which can fit in memory the performance is little lower which is 
understandable (but both of them out perform pagecache performance by a large 
number). Here are the numbers.

*OffheapCacheProvider*
{panel}
Running READ with 1200 threads  for 1000 iterations
ops   ,op/s,   key/s,mean, med, .95, .99,.999, 
max,   time,   stderr
2030355   , 2029531, 2029531, 3.1, 3.1, 5.4, 5.7,61.8,  
3014.5,1.0,  0.0
2395480   ,  202845,  202845, 5.8, 5.4, 5.8,20.2,   522.4,   
545.9,2.8,  0.0
2638600   ,  221368,  221368, 5.4, 5.3, 5.8,16.3,78.8,   
131.5,3.9,  0.57860
2891705   ,  221976,  221976, 5.4, 5.3, 5.6, 6.2,15.2,
19.2,5.0,  0.60478
3147747   ,  222527,  222527, 5.4, 5.3, 5.6, 6.1,15.4,
18.2,6.2,  0.58659
3394999   ,  221527,  221527, 5.4, 5.3, 5.6, 6.6,15.9,
19.4,7.3,  0.55884
3663559   ,  226114,  226114, 5.3, 5.2, 5.6,15.0,84.4,   
110.7,8.5,  0.52924
3911154   ,  223831,  223831, 5.4, 5.3, 5.6, 6.1,15.6,
20.0,9.6,  0.50018
4152946   ,  223246,  223246, 5.4, 5.3, 5.6, 6.1,15.7,
18.8,   10.7,  0.47323
4403162   ,  228532,  228532, 5.2, 5.2, 5.6,23.2,   107.4,   
121.4,   11.8,  0.44856
4641021   ,  225196,  225196, 5.3, 5.2, 5.6, 5.9,15.3,
18.4,   12.8,  0.42557
4889523   ,  222826,  222826, 5.4, 5.3, 5.6, 6.3,16.2,
22.0,   13.9,  0.40476
5124891   ,  223203,  223203, 5.4, 5.3, 5.6, 5.8, 6.2,
14.8,   15.0,  0.38602
5375262   ,  221222,  221222, 5.4, 5.2, 5.6,18.4,94.2,   
115.1,   16.1,  0.36899
5616470   ,  224022,  224022, 5.4, 5.3, 5.6, 5.9,14.3,
17.8,   17.2,  0.35349
5866825   ,  223000,  223000, 5.4, 5.3, 5.6, 6.1,15.5,
18.2,   18.3,  0.33882
6125601   ,  225757,  225757, 5.2, 5.3, 5.6, 9.6,49.4,
72.0,   19.5,  0.32535
6348030   ,  192703,  192703, 6.3, 5.3, 9.3,14.4,77.1,
91.5,   20.6,  0.31282
6483574   ,  128520,  128520, 9.3, 8.4,10.9,19.5,88.7,
99.0,   21.7,  0.30329
6626176   ,  137199,  137199, 8.7, 8.4,10.6,14.0,32.7,
40.9,   22.7,  0.29771
6768401   ,  136860,  136860, 8.8, 8.4,10.3,14.1,35.1,
40.8,   23.8,  0.29213
6911785   ,  138204,  138204, 8.7, 8.3,10.2,13.7,34.1,
37.8,   24.8,  0.28669
7055951   ,  138633,  138633, 8.7, 8.3,10.5,32.0,40.5,
46.9,   25.8,  0.28130
7199084   ,  137731,  137731, 8.7, 8.4,10.2,14.0,33.4,
40.9,   26.9,  0.27623
7338032   ,  133201,  133201, 9.0, 8.4,10.9,34.0,39.4,
43.8,   27.9,  0.27116
7480439   ,  137059,  137059, 8.8, 8.4,10.2,13.9,35.9,
39.5,   29.0,  0.26663
7647810   ,  161209,  161209, 7.5, 7.8, 9.6,13.4,33.9,
77.9,   30.0,  0.26185
7898882   ,  226498,  226498, 5.3, 5.2, 5.6,19.7,   108.5,   
119.3,   31.1,  0.25629
8136305   ,  223840,  223840, 5.4, 5.3, 5.6, 5.9,17.3,
23.2,   32.2,  0.24838
8372076   ,  223790,  223790, 5.4, 5.3, 5.6, 6.0,15.2,
20.0,   33.2,  0.24095
8633758   ,  232914,  232914, 5.1, 5.2, 5.6,17.5,   138.4,   
182.0,   34.4,  0.23397
8869214   ,  43,  43, 5.4, 5.3, 5.6, 6.0,15.2,
17.9,   35.4,  0.22717
9121652   ,  223037,  223037, 5.4, 5.3, 5.6, 5.9,15.4,
18.8,   36.5,  0.22105
9360286   ,  225070,  225070, 5.3, 5.3, 5.6,14.8,82.7,
92.1,   37.6,  0.21524
9609676   ,  224089,  224089, 5.4, 5.3, 5.6, 5.8, 6.2,
14.3,   38.7,  0.20967
9848551   ,  222123,  222123, 5.4, 5.3, 5.6, 5.9,24.2,
27.2,   39.8,  0.20440
1000  ,  229511,  229511, 5.0, 5.2, 5.8,60.0,74.3,   
132.0,   40.5,  0.19935


Results:
real op rate  : 247211
adjusted op rate stderr   : 0
key rate  : 247211
latency mean  : 5.4
latency median: 3.5
latency 95th percentile   : 5.5
latency 99th percentile   : 6.1
latency 99.9th percentile : 83.4
latency max  

[jira] [Updated] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-07-21 Thread Vijay (JIRA)

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

Vijay updated CASSANDRA-7438:
-

Attachment: 0001-CASSANDRA-7438.patch

 Serializing Row cache alternative (Fully off heap)
 --

 Key: CASSANDRA-7438
 URL: https://issues.apache.org/jira/browse/CASSANDRA-7438
 Project: Cassandra
  Issue Type: Improvement
  Components: Core
 Environment: Linux
Reporter: Vijay
Assignee: Vijay
  Labels: performance
 Fix For: 3.0

 Attachments: 0001-CASSANDRA-7438.patch


 Currently SerializingCache is partially off heap, keys are still stored in 
 JVM heap as BB, 
 * There is a higher GC costs for a reasonably big cache.
 * Some users have used the row cache efficiently in production for better 
 results, but this requires careful tunning.
 * Overhead in Memory for the cache entries are relatively high.
 So the proposal for this ticket is to move the LRU cache logic completely off 
 heap and use JNI to interact with cache. We might want to ensure that the new 
 implementation match the existing API's (ICache), and the implementation 
 needs to have safe memory access, low overhead in memory and less memcpy's 
 (As much as possible).
 We might also want to make this cache configurable.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-07-21 Thread Vijay (JIRA)

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

Vijay edited comment on CASSANDRA-7438 at 7/22/14 5:51 AM:
---

Attached patch makes the off heap/Serialization Cache configurable. (the 
default is still SerializationCache).

Regarding performance, the performance of the new cache is obviously better 
when the JNI overhead is less than the GC overhead, but for the smaller sized 
caches which can fit in memory the performance is little lower which is 
understandable (but both of them out perform pagecache performance by a large 
number). Here are the numbers.

*OffheapCacheProvider*
{panel}
Running READ with 1200 threads  for 1000 iterations
ops   ,op/s,   key/s,mean, med, .95, .99,.999, 
max,   time,   stderr
2030355   , 2029531, 2029531, 3.1, 3.1, 5.4, 5.7,61.8,  
3014.5,1.0,  0.0
2395480   ,  202845,  202845, 5.8, 5.4, 5.8,20.2,   522.4,   
545.9,2.8,  0.0
2638600   ,  221368,  221368, 5.4, 5.3, 5.8,16.3,78.8,   
131.5,3.9,  0.57860
2891705   ,  221976,  221976, 5.4, 5.3, 5.6, 6.2,15.2,
19.2,5.0,  0.60478
3147747   ,  222527,  222527, 5.4, 5.3, 5.6, 6.1,15.4,
18.2,6.2,  0.58659
3394999   ,  221527,  221527, 5.4, 5.3, 5.6, 6.6,15.9,
19.4,7.3,  0.55884
3663559   ,  226114,  226114, 5.3, 5.2, 5.6,15.0,84.4,   
110.7,8.5,  0.52924
3911154   ,  223831,  223831, 5.4, 5.3, 5.6, 6.1,15.6,
20.0,9.6,  0.50018
4152946   ,  223246,  223246, 5.4, 5.3, 5.6, 6.1,15.7,
18.8,   10.7,  0.47323
4403162   ,  228532,  228532, 5.2, 5.2, 5.6,23.2,   107.4,   
121.4,   11.8,  0.44856
4641021   ,  225196,  225196, 5.3, 5.2, 5.6, 5.9,15.3,
18.4,   12.8,  0.42557
4889523   ,  222826,  222826, 5.4, 5.3, 5.6, 6.3,16.2,
22.0,   13.9,  0.40476
5124891   ,  223203,  223203, 5.4, 5.3, 5.6, 5.8, 6.2,
14.8,   15.0,  0.38602
5375262   ,  221222,  221222, 5.4, 5.2, 5.6,18.4,94.2,   
115.1,   16.1,  0.36899
5616470   ,  224022,  224022, 5.4, 5.3, 5.6, 5.9,14.3,
17.8,   17.2,  0.35349
5866825   ,  223000,  223000, 5.4, 5.3, 5.6, 6.1,15.5,
18.2,   18.3,  0.33882
6125601   ,  225757,  225757, 5.2, 5.3, 5.6, 9.6,49.4,
72.0,   19.5,  0.32535
6348030   ,  192703,  192703, 6.3, 5.3, 9.3,14.4,77.1,
91.5,   20.6,  0.31282
6483574   ,  128520,  128520, 9.3, 8.4,10.9,19.5,88.7,
99.0,   21.7,  0.30329
6626176   ,  137199,  137199, 8.7, 8.4,10.6,14.0,32.7,
40.9,   22.7,  0.29771
6768401   ,  136860,  136860, 8.8, 8.4,10.3,14.1,35.1,
40.8,   23.8,  0.29213
6911785   ,  138204,  138204, 8.7, 8.3,10.2,13.7,34.1,
37.8,   24.8,  0.28669
7055951   ,  138633,  138633, 8.7, 8.3,10.5,32.0,40.5,
46.9,   25.8,  0.28130
7199084   ,  137731,  137731, 8.7, 8.4,10.2,14.0,33.4,
40.9,   26.9,  0.27623
7338032   ,  133201,  133201, 9.0, 8.4,10.9,34.0,39.4,
43.8,   27.9,  0.27116
7480439   ,  137059,  137059, 8.8, 8.4,10.2,13.9,35.9,
39.5,   29.0,  0.26663
7647810   ,  161209,  161209, 7.5, 7.8, 9.6,13.4,33.9,
77.9,   30.0,  0.26185
7898882   ,  226498,  226498, 5.3, 5.2, 5.6,19.7,   108.5,   
119.3,   31.1,  0.25629
8136305   ,  223840,  223840, 5.4, 5.3, 5.6, 5.9,17.3,
23.2,   32.2,  0.24838
8372076   ,  223790,  223790, 5.4, 5.3, 5.6, 6.0,15.2,
20.0,   33.2,  0.24095
8633758   ,  232914,  232914, 5.1, 5.2, 5.6,17.5,   138.4,   
182.0,   34.4,  0.23397
8869214   ,  43,  43, 5.4, 5.3, 5.6, 6.0,15.2,
17.9,   35.4,  0.22717
9121652   ,  223037,  223037, 5.4, 5.3, 5.6, 5.9,15.4,
18.8,   36.5,  0.22105
9360286   ,  225070,  225070, 5.3, 5.3, 5.6,14.8,82.7,
92.1,   37.6,  0.21524
9609676   ,  224089,  224089, 5.4, 5.3, 5.6, 5.8, 6.2,
14.3,   38.7,  0.20967
9848551   ,  222123,  222123, 5.4, 5.3, 5.6, 5.9,24.2,
27.2,   39.8,  0.20440
1000  ,  229511,  229511, 5.0, 5.2, 5.8,60.0,74.3,   
132.0,   40.5,  0.19935


Results:
real op rate  : 247211
adjusted op rate stderr   : 0
key rate  : 247211
latency mean  : 5.4
latency median: 3.5
latency 95th percentile   : 5.5
latency 99th percentile   : 6.1
latency 99.9th percentile : 83.4
latency max  

[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)

2014-07-21 Thread Vijay (JIRA)

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

Vijay edited comment on CASSANDRA-7438 at 7/22/14 5:54 AM:
---

Attached patch makes the off heap/Serialization Cache configurable. (the 
default is still SerializationCache).

Regarding performance, the performance of the new cache is obviously better 
when the JNI overhead is less than the GC overhead. For smaller size cache that 
can fit in the JVM heap, the performance is a little lower understandablely 
(but both of them out perform pagecache performance by a large number). Here 
are the numbers.

*OffheapCacheProvider*
{panel}
Running READ with 1200 threads  for 1000 iterations
ops   ,op/s,   key/s,mean, med, .95, .99,.999, 
max,   time,   stderr
2030355   , 2029531, 2029531, 3.1, 3.1, 5.4, 5.7,61.8,  
3014.5,1.0,  0.0
2395480   ,  202845,  202845, 5.8, 5.4, 5.8,20.2,   522.4,   
545.9,2.8,  0.0
2638600   ,  221368,  221368, 5.4, 5.3, 5.8,16.3,78.8,   
131.5,3.9,  0.57860
2891705   ,  221976,  221976, 5.4, 5.3, 5.6, 6.2,15.2,
19.2,5.0,  0.60478
3147747   ,  222527,  222527, 5.4, 5.3, 5.6, 6.1,15.4,
18.2,6.2,  0.58659
3394999   ,  221527,  221527, 5.4, 5.3, 5.6, 6.6,15.9,
19.4,7.3,  0.55884
3663559   ,  226114,  226114, 5.3, 5.2, 5.6,15.0,84.4,   
110.7,8.5,  0.52924
3911154   ,  223831,  223831, 5.4, 5.3, 5.6, 6.1,15.6,
20.0,9.6,  0.50018
4152946   ,  223246,  223246, 5.4, 5.3, 5.6, 6.1,15.7,
18.8,   10.7,  0.47323
4403162   ,  228532,  228532, 5.2, 5.2, 5.6,23.2,   107.4,   
121.4,   11.8,  0.44856
4641021   ,  225196,  225196, 5.3, 5.2, 5.6, 5.9,15.3,
18.4,   12.8,  0.42557
4889523   ,  222826,  222826, 5.4, 5.3, 5.6, 6.3,16.2,
22.0,   13.9,  0.40476
5124891   ,  223203,  223203, 5.4, 5.3, 5.6, 5.8, 6.2,
14.8,   15.0,  0.38602
5375262   ,  221222,  221222, 5.4, 5.2, 5.6,18.4,94.2,   
115.1,   16.1,  0.36899
5616470   ,  224022,  224022, 5.4, 5.3, 5.6, 5.9,14.3,
17.8,   17.2,  0.35349
5866825   ,  223000,  223000, 5.4, 5.3, 5.6, 6.1,15.5,
18.2,   18.3,  0.33882
6125601   ,  225757,  225757, 5.2, 5.3, 5.6, 9.6,49.4,
72.0,   19.5,  0.32535
6348030   ,  192703,  192703, 6.3, 5.3, 9.3,14.4,77.1,
91.5,   20.6,  0.31282
6483574   ,  128520,  128520, 9.3, 8.4,10.9,19.5,88.7,
99.0,   21.7,  0.30329
6626176   ,  137199,  137199, 8.7, 8.4,10.6,14.0,32.7,
40.9,   22.7,  0.29771
6768401   ,  136860,  136860, 8.8, 8.4,10.3,14.1,35.1,
40.8,   23.8,  0.29213
6911785   ,  138204,  138204, 8.7, 8.3,10.2,13.7,34.1,
37.8,   24.8,  0.28669
7055951   ,  138633,  138633, 8.7, 8.3,10.5,32.0,40.5,
46.9,   25.8,  0.28130
7199084   ,  137731,  137731, 8.7, 8.4,10.2,14.0,33.4,
40.9,   26.9,  0.27623
7338032   ,  133201,  133201, 9.0, 8.4,10.9,34.0,39.4,
43.8,   27.9,  0.27116
7480439   ,  137059,  137059, 8.8, 8.4,10.2,13.9,35.9,
39.5,   29.0,  0.26663
7647810   ,  161209,  161209, 7.5, 7.8, 9.6,13.4,33.9,
77.9,   30.0,  0.26185
7898882   ,  226498,  226498, 5.3, 5.2, 5.6,19.7,   108.5,   
119.3,   31.1,  0.25629
8136305   ,  223840,  223840, 5.4, 5.3, 5.6, 5.9,17.3,
23.2,   32.2,  0.24838
8372076   ,  223790,  223790, 5.4, 5.3, 5.6, 6.0,15.2,
20.0,   33.2,  0.24095
8633758   ,  232914,  232914, 5.1, 5.2, 5.6,17.5,   138.4,   
182.0,   34.4,  0.23397
8869214   ,  43,  43, 5.4, 5.3, 5.6, 6.0,15.2,
17.9,   35.4,  0.22717
9121652   ,  223037,  223037, 5.4, 5.3, 5.6, 5.9,15.4,
18.8,   36.5,  0.22105
9360286   ,  225070,  225070, 5.3, 5.3, 5.6,14.8,82.7,
92.1,   37.6,  0.21524
9609676   ,  224089,  224089, 5.4, 5.3, 5.6, 5.8, 6.2,
14.3,   38.7,  0.20967
9848551   ,  222123,  222123, 5.4, 5.3, 5.6, 5.9,24.2,
27.2,   39.8,  0.20440
1000  ,  229511,  229511, 5.0, 5.2, 5.8,60.0,74.3,   
132.0,   40.5,  0.19935


Results:
real op rate  : 247211
adjusted op rate stderr   : 0
key rate  : 247211
latency mean  : 5.4
latency median: 3.5
latency 95th percentile   : 5.5
latency 99th percentile   : 6.1
latency 99.9th percentile : 83.4
latency max