[jira] [Commented] (CASSANDRA-5862) Switch to adler checksum for sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-5862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771671#comment-13771671 ] Adrien Grand commented on CASSANDRA-5862: - I just learned about this issue and was wondering if you had considered XXHash (http://code.google.com/p/xxhash/) for checksuming. I am a little biased since I wrote the JNI bindings and Java ports of XXHash but the benchmarks show interesting results compared to other hash/checksum implementations: http://jpountz.github.io/lz4-java/1.2.0/xxhash-benchmark/. Just beware that depending on the size of the input, the fastest impl of XXHash is not always the same: for large inputs ( 1024 bytes), the JNI one is faster while on smaller input (= 1024 bytes), the Java port using the Unsafe API is faster, probably because of the JNI overhead. You can find the sources of the benchmark at https://github.com/jpountz/jvm-checksum-benchmark. Switch to adler checksum for sstables - Key: CASSANDRA-5862 URL: https://issues.apache.org/jira/browse/CASSANDRA-5862 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: T Jake Luciani Fix For: 2.0.1 Attachments: 5862.txt Adler is significantly faster than CRC32: http://java-performance.info/java-crc32-and-adler32/ (Adler is weaker for short inputs, so we should leave the commitlog alone, as it checksums each mutation individually.) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6033) CQL: allow names for bind variables
[ https://issues.apache.org/jira/browse/CASSANDRA-6033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6033: Attachment: (was: 6033.txt) CQL: allow names for bind variables --- Key: CASSANDRA-6033 URL: https://issues.apache.org/jira/browse/CASSANDRA-6033 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Currently bind variables are anonymous, they're just a question mark. What this means is that the only reliable way to reference those variables after preparation is through position their position in the query string, which is not excessively user friendly. Of course some driver may be tempted to add their own version of named variables, but that forces said driver to parse the query string in the first place, which is something we've tried to avoid so far. Besides, this is useful enough that making it part of CQL would make this more consistent amongst driver rather than having everyone coming up with its own syntax. I'll add that because we are already sending column names in the metadata, I believe we can support this without any change to the protocol. The idea would be to support queries like this (happy to discuss the exact syntax): {noformat} SELECT * FROM test WHERE key = ?my_key AND time ?t_low AND time = ?t_high {noformat} From the Cassandra side, the only thing that this would change is that in the result set returned to the client, the column names would be 'my_key', 't_low' and 't_high' respectively rather than 'key', 'time' and 'time' as they are now. And so in particular using an anymous variable would be equivalent to using a name one with the name of the CQL column the variable is bound to. Driver side, the driver would just have to keep a map of each name to their position in the metadata to provide reliable setter by names. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6033) CQL: allow names for bind variables
[ https://issues.apache.org/jira/browse/CASSANDRA-6033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-6033: Attachment: 6033.txt Rebased patch attached CQL: allow names for bind variables --- Key: CASSANDRA-6033 URL: https://issues.apache.org/jira/browse/CASSANDRA-6033 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Attachments: 6033.txt Currently bind variables are anonymous, they're just a question mark. What this means is that the only reliable way to reference those variables after preparation is through position their position in the query string, which is not excessively user friendly. Of course some driver may be tempted to add their own version of named variables, but that forces said driver to parse the query string in the first place, which is something we've tried to avoid so far. Besides, this is useful enough that making it part of CQL would make this more consistent amongst driver rather than having everyone coming up with its own syntax. I'll add that because we are already sending column names in the metadata, I believe we can support this without any change to the protocol. The idea would be to support queries like this (happy to discuss the exact syntax): {noformat} SELECT * FROM test WHERE key = ?my_key AND time ?t_low AND time = ?t_high {noformat} From the Cassandra side, the only thing that this would change is that in the result set returned to the client, the column names would be 'my_key', 't_low' and 't_high' respectively rather than 'key', 'time' and 'time' as they are now. And so in particular using an anymous variable would be equivalent to using a name one with the name of the CQL column the variable is bound to. Driver side, the driver would just have to keep a map of each name to their position in the metadata to provide reliable setter by names. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6033) CQL: allow names for bind variables
[ https://issues.apache.org/jira/browse/CASSANDRA-6033?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771727#comment-13771727 ] Aleksey Yeschenko commented on CASSANDRA-6033: -- +1 CQL: allow names for bind variables --- Key: CASSANDRA-6033 URL: https://issues.apache.org/jira/browse/CASSANDRA-6033 Project: Cassandra Issue Type: Bug Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.0.1 Attachments: 6033.txt Currently bind variables are anonymous, they're just a question mark. What this means is that the only reliable way to reference those variables after preparation is through position their position in the query string, which is not excessively user friendly. Of course some driver may be tempted to add their own version of named variables, but that forces said driver to parse the query string in the first place, which is something we've tried to avoid so far. Besides, this is useful enough that making it part of CQL would make this more consistent amongst driver rather than having everyone coming up with its own syntax. I'll add that because we are already sending column names in the metadata, I believe we can support this without any change to the protocol. The idea would be to support queries like this (happy to discuss the exact syntax): {noformat} SELECT * FROM test WHERE key = ?my_key AND time ?t_low AND time = ?t_high {noformat} From the Cassandra side, the only thing that this would change is that in the result set returned to the client, the column names would be 'my_key', 't_low' and 't_high' respectively rather than 'key', 'time' and 'time' as they are now. And so in particular using an anymous variable would be equivalent to using a name one with the name of the CQL column the variable is bound to. Driver side, the driver would just have to keep a map of each name to their position in the metadata to provide reliable setter by names. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6056) Heavy write load exhausts heap space
[ https://issues.apache.org/jira/browse/CASSANDRA-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] arnaud-lb updated CASSANDRA-6056: - Attachment: jvisualvm-class-instances.png Heavy write load exhausts heap space Key: CASSANDRA-6056 URL: https://issues.apache.org/jira/browse/CASSANDRA-6056 Project: Cassandra Issue Type: Bug Environment: Debian, Cassandra 2.0 Reporter: arnaud-lb Attachments: jvisualvm-class-instances.png Issuing many INSERT or UPDATE queries cause cassandra to exhaust the heap space in a few minutes. It then gets stuck in full GCs, failing to recover. Observed with the default config from Datastax Debian packages, with a 8GB heap. Query rate is around 35K queries per second, with 16 concurrent queries. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6055) 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL)
[ https://issues.apache.org/jira/browse/CASSANDRA-6055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sergey Nagaytsev updated CASSANDRA-6055: Priority: Minor (was: Major) 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL) - Key: CASSANDRA-6055 URL: https://issues.apache.org/jira/browse/CASSANDRA-6055 Project: Cassandra Issue Type: Bug Environment: cqlsh, pdo_cassandra Reporter: Sergey Nagaytsev Priority: Minor Labels: cql3 Query: SELECT * FROM user WHERE key IN(uuid,NULL); Table: CREATE COLUMNFAMILY user ( KEY uuid PRIMARY KEY, name text, note text, avatar text, email text, phone text, login text, pw text, st text ); Logs: Nothing, last message hours ago. This query is good in SQL and so is generated by DB abstraction library. Fix on applications sides is multiplying of work. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6056) Heavy write load exhausts heap space
[ https://issues.apache.org/jira/browse/CASSANDRA-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771739#comment-13771739 ] arnaud-lb commented on CASSANDRA-6056: -- I can reproduce this with only UPDATES on two columns with small values (timestamp, int). Those columns were previously null. The entire rows are moderately small too, less than 200 bytes in average. This happens with only 4 concurrent queries after some times. Attached a screenshot of jvisualvm's classes view: [^jvisualvm-class-instances.png] The table being updated looks like this: {code} id timeuuid primary key str1 text str2 text str3 text str4 text time1 timestamp (the column being updated) time2 timestamp (mostly null) time3 timestamp (mostly null) n int (the second column being updated) time4 timestamp time5 timestamp (mostly null) {code} Looking at CASSANDRA-5982, it could very well be related. I'm willing to try with the fix applied, is this merged in any 2.0 branch? Heavy write load exhausts heap space Key: CASSANDRA-6056 URL: https://issues.apache.org/jira/browse/CASSANDRA-6056 Project: Cassandra Issue Type: Bug Environment: Debian, Cassandra 2.0 Reporter: arnaud-lb Attachments: jvisualvm-class-instances.png Issuing many INSERT or UPDATE queries cause cassandra to exhaust the heap space in a few minutes. It then gets stuck in full GCs, failing to recover. Observed with the default config from Datastax Debian packages, with a 8GB heap. Query rate is around 35K queries per second, with 16 concurrent queries. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Reopened] (CASSANDRA-6055) 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL)
[ https://issues.apache.org/jira/browse/CASSANDRA-6055?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne reopened CASSANDRA-6055: - 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL) - Key: CASSANDRA-6055 URL: https://issues.apache.org/jira/browse/CASSANDRA-6055 Project: Cassandra Issue Type: Bug Environment: cqlsh, pdo_cassandra Reporter: Sergey Nagaytsev Priority: Minor Labels: cql3 Query: SELECT * FROM user WHERE key IN(uuid,NULL); Table: CREATE COLUMNFAMILY user ( KEY uuid PRIMARY KEY, name text, note text, avatar text, email text, phone text, login text, pw text, st text ); Logs: Nothing, last message hours ago. This query is good in SQL and so is generated by DB abstraction library. Fix on applications sides is multiplying of work. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6055) 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL)
[ https://issues.apache.org/jira/browse/CASSANDRA-6055?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771751#comment-13771751 ] Sylvain Lebresne commented on CASSANDRA-6055: - Well, let me just quickly say that CQL is *nowhere* near close to SQL compatibility: it doesn't support joins, sub-queries, aggregations, transactions, etc. And there is strong reason why those will never be supported, not in their full SQL generality at least. So it's not like tools that generate SQL are likely to work with CQL in general anyway. So we won't do any change to CQL if we think it doesn't make sense to CQL *only* because it works in SQL. But that being said, I did somewhat misunderstood the issue raised and I apologize for that. If the goal is to support nulls as much as possible in the where clause of selects, then I guess that's something that can make sense for CQL. But while supporting it for PK columns is trivial (they can't be null, so we can just consider the clause as unsatisfiable, which is what SQL does), doing it for non-PK columns is quite a bit harder. Typically I don't see anyway to make null work for indexed columns. The only case where I think we could make it work is when ALLOW FILTERING is used but I'm not sure that's very useful. As for supporting it for PK columns (that cannot be null) if we don't support it for non-PK ones (that can be null), I'm -0 on the idea as I think it'll be more confusing/frustrating than anything else. Reopening nonetheless. If someone has a brilliant idea to support null value for indexed columns, that could be useful... 'Bad Request: Invalid null value for partition key part' on SELECT .. WHERE key IN (val,NULL) - Key: CASSANDRA-6055 URL: https://issues.apache.org/jira/browse/CASSANDRA-6055 Project: Cassandra Issue Type: Bug Environment: cqlsh, pdo_cassandra Reporter: Sergey Nagaytsev Priority: Minor Labels: cql3 Query: SELECT * FROM user WHERE key IN(uuid,NULL); Table: CREATE COLUMNFAMILY user ( KEY uuid PRIMARY KEY, name text, note text, avatar text, email text, phone text, login text, pw text, st text ); Logs: Nothing, last message hours ago. This query is good in SQL and so is generated by DB abstraction library. Fix on applications sides is multiplying of work. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Update version for 1.2.10 release
Update version for 1.2.10 release Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93753636 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93753636 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93753636 Branch: refs/heads/cassandra-1.2 Commit: 937536363a8a6d86ee32fe5ef90653264e67b6c7 Parents: a886e34 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:59:58 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:59:58 2013 +0200 -- NEWS.txt | 9 + build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 16 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 1f3f675..78c8a4c 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,15 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +1.2.10 +== + +Upgrading +- +- Nothing specific to this release, but please see 1.2.9 if you are upgrading + from a previous version. + + 1.2.9 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/build.xml -- diff --git a/build.xml b/build.xml index 122759c..74c7374 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=1.2.9/ +property name=base.version value=1.2.10/ 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/93753636/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 62ee968..63f75b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (1.2.10) unstable; urgency=low + + * New release + + -- Sylvain Lebresne slebre...@apache.org Thu, 19 Sep 2013 11:58:12 +0200 + cassandra (1.2.9) unstable; urgency=low * New release
[1/2] git commit: Fix sstable2json for CQL3 tables
Updated Branches: refs/heads/cassandra-1.2 eb390d02e - 937536363 Fix sstable2json for CQL3 tables patch by lyubent; reviewed by slebresne for CASSANDRA-5852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a886e349 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a886e349 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a886e349 Branch: refs/heads/cassandra-1.2 Commit: a886e34909c313a1c3fa5dff48b77f1cee2c6847 Parents: eb390d0 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:56:17 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:56:17 2013 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++- .../org/apache/cassandra/tools/SSTableImport.java| 7 ++- 3 files changed, 21 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c6e1169..f853cce 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -21,6 +21,7 @@ * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 33e3f00..4355737 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -995,7 +995,18 @@ public final class CFMetaData ByteBuffer[] components = composite.split(columnName); for (ColumnDefinition def : column_metadata.values()) { -ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex]; +ByteBuffer toCompare; +if (def.componentIndex == null) +{ +toCompare = columnName; +} +else +{ +if (def.componentIndex = components.length) +break; + +toCompare = components[def.componentIndex]; +} if (def.name.equals(toCompare)) return def; } @@ -1007,6 +1018,8 @@ public final class CFMetaData } } + + public ColumnDefinition getColumnDefinitionForIndex(String indexName) { for (ColumnDefinition def : column_metadata.values()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/tools/SSTableImport.java -- diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index 71b1b60..68d4397 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -156,7 +156,7 @@ public class SSTableImport } value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1)) -: stringAsType((String) fields.get(1), meta.getValueValidator(name.duplicate())); +: stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); } } @@ -245,6 +245,11 @@ public class SSTableImport { cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime)); } +// cql3 row marker, see CASSANDRA-5852 +else if (!path.columnName.hasRemaining()) +{ +cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp); +} else { cfamily.addColumn(path, col.getValue(), col.timestamp);
Git Push Summary
Updated Tags: refs/tags/1.2.10-tentative [created] 937536363
[jira] [Updated] (CASSANDRA-6056) Heavy write load exhausts heap space
[ https://issues.apache.org/jira/browse/CASSANDRA-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] arnaud-lb updated CASSANDRA-6056: - Attachment: dominator-tree.png Attached a screenshot of eclipse memory analyzer tool, showing the dominator tree report Heavy write load exhausts heap space Key: CASSANDRA-6056 URL: https://issues.apache.org/jira/browse/CASSANDRA-6056 Project: Cassandra Issue Type: Bug Environment: Debian, Cassandra 2.0 Reporter: arnaud-lb Attachments: dominator-tree.png, jvisualvm-class-instances.png Issuing many INSERT or UPDATE queries cause cassandra to exhaust the heap space in a few minutes. It then gets stuck in full GCs, failing to recover. Observed with the default config from Datastax Debian packages, with a 8GB heap. Query rate is around 35K queries per second, with 16 concurrent queries. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-5950) Make snapshot/sequential repair the default
[ https://issues.apache.org/jira/browse/CASSANDRA-5950?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lyuben Todorov updated CASSANDRA-5950: -- Attachment: 5950.patch Make snapshot/sequential repair the default --- Key: CASSANDRA-5950 URL: https://issues.apache.org/jira/browse/CASSANDRA-5950 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Jonathan Ellis Assignee: Lyuben Todorov Priority: Minor Fix For: 2.0.1 Attachments: 5950.patch -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[3/3] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: NEWS.txt build.xml debian/changelog Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2c316afb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2c316afb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2c316afb Branch: refs/heads/cassandra-2.0 Commit: 2c316afb2160de703f79d1c163413c7d801b3f1e Parents: 6e3a241 9375363 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:28:04 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:28:04 2013 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++- .../org/apache/cassandra/tools/SSTableImport.java| 7 ++- 3 files changed, 21 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/CHANGES.txt -- diff --cc CHANGES.txt index c218af5,f853cce..6003ed2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -49,54 -21,14 +49,55 @@@ Merged from 1.2 * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) -1.2.9 +2.0.0 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138) + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931) + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928) + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938) + * Add stream session progress to JMX (CASSANDRA-4757) + * Fix NPE during CAS operation (CASSANDRA-5925) +Merged from 1.2: * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900) - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases - (CASSANDRA-5800) - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831) + * Don't announce schema version until we've loaded the changes locally + (CASSANDRA-5904) + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903) + * Properly handle parsing huge map and set literals (CASSANDRA-5893) + + +2.0.0-rc2 + * enable vnodes by default (CASSANDRA-5869) + * fix CAS contention timeout (CASSANDRA-5830) + * fix HsHa to respect max frame size (CASSANDRA-4573) + * Fix (some) 2i on composite components omissions (CASSANDRA-5851) + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880) +Merged from 1.2: + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855) + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868) + * cqlsh: add support for multiline comments (CASSANDRA-5798) + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns + (CASSANDRA-5856) + + +2.0.0-rc1 + * improve DecimalSerializer performance (CASSANDRA-5837) + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822) + * Fix buffer underflow on socket close (CASSANDRA-5792) +Merged from 1.2: + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814) + * cqlsh: add collections support to COPY (CASSANDRA-5698) + * retry important messages for any IOException (CASSANDRA-5804) + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626) + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812) * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/config/CFMetaData.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/tools/SSTableImport.java -- diff --cc src/java/org/apache/cassandra/tools/SSTableImport.java index bd74541,68d4397..79584c5 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@@ -245,12 -243,16
[1/3] git commit: Fix sstable2json for CQL3 tables
Updated Branches: refs/heads/cassandra-2.0 6e3a241e1 - 2c316afb2 Fix sstable2json for CQL3 tables patch by lyubent; reviewed by slebresne for CASSANDRA-5852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a886e349 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a886e349 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a886e349 Branch: refs/heads/cassandra-2.0 Commit: a886e34909c313a1c3fa5dff48b77f1cee2c6847 Parents: eb390d0 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:56:17 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:56:17 2013 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++- .../org/apache/cassandra/tools/SSTableImport.java| 7 ++- 3 files changed, 21 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c6e1169..f853cce 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -21,6 +21,7 @@ * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 33e3f00..4355737 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -995,7 +995,18 @@ public final class CFMetaData ByteBuffer[] components = composite.split(columnName); for (ColumnDefinition def : column_metadata.values()) { -ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex]; +ByteBuffer toCompare; +if (def.componentIndex == null) +{ +toCompare = columnName; +} +else +{ +if (def.componentIndex = components.length) +break; + +toCompare = components[def.componentIndex]; +} if (def.name.equals(toCompare)) return def; } @@ -1007,6 +1018,8 @@ public final class CFMetaData } } + + public ColumnDefinition getColumnDefinitionForIndex(String indexName) { for (ColumnDefinition def : column_metadata.values()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/tools/SSTableImport.java -- diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index 71b1b60..68d4397 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -156,7 +156,7 @@ public class SSTableImport } value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1)) -: stringAsType((String) fields.get(1), meta.getValueValidator(name.duplicate())); +: stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); } } @@ -245,6 +245,11 @@ public class SSTableImport { cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime)); } +// cql3 row marker, see CASSANDRA-5852 +else if (!path.columnName.hasRemaining()) +{ +cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp); +} else { cfamily.addColumn(path, col.getValue(), col.timestamp);
[jira] [Issue Comment Deleted] (CASSANDRA-4191) Add `nodetool cfstats ks cf` abilities
[ https://issues.apache.org/jira/browse/CASSANDRA-4191?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lyuben Todorov updated CASSANDRA-4191: -- Comment: was deleted (was: So, from the comments I gather that we want to have a list of ks' and cfs in the style of: {code:xml} nodetool cfstats ks1.cf1 ks1.cf2 ks2 {code} The default being to include all these keyspaces/cfs, with the ability to supply an -i flag meaning ignore only these keyspaces/cfs and display everything else. Or would it be better to go with the 2 flag aproach where users supply something like: {code:xml} nodetool cfstats -i ks1.cf1 ks1.cf2 -e ks2 {code} where we include everything after -i and ignore everything after -e [~dbrosius] [~jbellis] What do you think?) Add `nodetool cfstats ks cf` abilities -- Key: CASSANDRA-4191 URL: https://issues.apache.org/jira/browse/CASSANDRA-4191 Project: Cassandra Issue Type: New Feature Affects Versions: 1.2.0 beta 1 Reporter: Joaquin Casares Assignee: Lyuben Todorov Priority: Minor Labels: datastax_qa Fix For: 1.2.9 Attachments: 4191.patch, 4191_specific_cfstats.diff This way cfstats will only print information per keyspace/column family combinations. Another related proposal as an alternative to this ticket: Allow for `nodetool cfstats` to use --excludes or --includes to accept keyspace and column family arguments. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/3] git commit: Update version for 1.2.10 release
Update version for 1.2.10 release Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93753636 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93753636 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93753636 Branch: refs/heads/cassandra-2.0 Commit: 937536363a8a6d86ee32fe5ef90653264e67b6c7 Parents: a886e34 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:59:58 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:59:58 2013 +0200 -- NEWS.txt | 9 + build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 16 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 1f3f675..78c8a4c 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,15 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +1.2.10 +== + +Upgrading +- +- Nothing specific to this release, but please see 1.2.9 if you are upgrading + from a previous version. + + 1.2.9 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/build.xml -- diff --git a/build.xml b/build.xml index 122759c..74c7374 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=1.2.9/ +property name=base.version value=1.2.10/ 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/93753636/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 62ee968..63f75b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (1.2.10) unstable; urgency=low + + * New release + + -- Sylvain Lebresne slebre...@apache.org Thu, 19 Sep 2013 11:58:12 +0200 + cassandra (1.2.9) unstable; urgency=low * New release
git commit: Fix validation of IN with 2ndary indexes
Updated Branches: refs/heads/cassandra-2.0 2c316afb2 - a0abadfdb Fix validation of IN with 2ndary indexes patch by slebresne; reviewed by iamaleskey for CASSANDRA-6050 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a0abadfd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a0abadfd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a0abadfd Branch: refs/heads/cassandra-2.0 Commit: a0abadfdb5721f6f595b6f9e33ed2bf44603d2fe Parents: 2c316af Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:35:43 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:35:43 2013 +0200 -- CHANGES.txt | 1 + .../cassandra/cql3/statements/Restriction.java | 16 .../cassandra/cql3/statements/SelectStatement.java | 7 ++- 3 files changed, 23 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6003ed2..d101c74 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * Paging filter empty rows too agressively (CASSANDRA-6040) * Support variadic parameters for IN clauses (CASSANDRA-4210) * cqlsh: return the result of CAS writes (CASSANDRA-5796) + * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/Restriction.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/Restriction.java b/src/java/org/apache/cassandra/cql3/statements/Restriction.java index 45cc607..3a3aa05 100644 --- a/src/java/org/apache/cassandra/cql3/statements/Restriction.java +++ b/src/java/org/apache/cassandra/cql3/statements/Restriction.java @@ -112,6 +112,12 @@ public interface Restriction return true; } +// Used when we need to know if it's a IN with just one value before we have +// the bind variables. This is ugly and only there for backward compatiblity +// because we used to treate IN with 1 value like an EQ and need to preserve +// this behavior. +public abstract boolean canHaveOnlyOneValue(); + public boolean isOnToken() { return false; @@ -134,6 +140,11 @@ public interface Restriction return buffers; } +public boolean canHaveOnlyOneValue() +{ +return values.size() == 1; +} + @Override public String toString() { @@ -158,6 +169,11 @@ public interface Restriction return lval.elements; } +public boolean canHaveOnlyOneValue() +{ +return false; +} + @Override public String toString() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index c85864f..86dad85 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -1124,7 +1124,12 @@ public class SelectStatement implements CQLStatement case VALUE_ALIAS: throw new InvalidRequestException(String.format(Predicates on the non-primary-key column (%s) of a COMPACT table are not yet supported, name.name)); case COLUMN_METADATA: -stmt.metadataRestrictions.put(name, updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names)); +// We only all IN on the row key and last clustering key so far, never on non-PK columns, and this even if there's an index +Restriction r = updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names); +if (r.isIN() !((Restriction.IN)r).canHaveOnlyOneValue()) +// Note: for backward compatibility reason, we conside a IN of 1 value the same as a EQ, so we let that slide. +throw new InvalidRequestException(String.format(IN
[1/5] git commit: Fix sstable2json for CQL3 tables
Updated Branches: refs/heads/trunk 0cec93c4f - 54f41a9f5 Fix sstable2json for CQL3 tables patch by lyubent; reviewed by slebresne for CASSANDRA-5852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a886e349 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a886e349 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a886e349 Branch: refs/heads/trunk Commit: a886e34909c313a1c3fa5dff48b77f1cee2c6847 Parents: eb390d0 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:56:17 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:56:17 2013 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++- .../org/apache/cassandra/tools/SSTableImport.java| 7 ++- 3 files changed, 21 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c6e1169..f853cce 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -21,6 +21,7 @@ * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) 1.2.9 http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/config/CFMetaData.java -- diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java b/src/java/org/apache/cassandra/config/CFMetaData.java index 33e3f00..4355737 100644 --- a/src/java/org/apache/cassandra/config/CFMetaData.java +++ b/src/java/org/apache/cassandra/config/CFMetaData.java @@ -995,7 +995,18 @@ public final class CFMetaData ByteBuffer[] components = composite.split(columnName); for (ColumnDefinition def : column_metadata.values()) { -ByteBuffer toCompare = def.componentIndex == null ? columnName : components[def.componentIndex]; +ByteBuffer toCompare; +if (def.componentIndex == null) +{ +toCompare = columnName; +} +else +{ +if (def.componentIndex = components.length) +break; + +toCompare = components[def.componentIndex]; +} if (def.name.equals(toCompare)) return def; } @@ -1007,6 +1018,8 @@ public final class CFMetaData } } + + public ColumnDefinition getColumnDefinitionForIndex(String indexName) { for (ColumnDefinition def : column_metadata.values()) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a886e349/src/java/org/apache/cassandra/tools/SSTableImport.java -- diff --git a/src/java/org/apache/cassandra/tools/SSTableImport.java b/src/java/org/apache/cassandra/tools/SSTableImport.java index 71b1b60..68d4397 100644 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@ -156,7 +156,7 @@ public class SSTableImport } value = isDeleted() ? ByteBufferUtil.hexToBytes((String) fields.get(1)) -: stringAsType((String) fields.get(1), meta.getValueValidator(name.duplicate())); +: stringAsType((String) fields.get(1), meta.getValueValidator(meta.getColumnDefinitionFromColumnName(name))); } } @@ -245,6 +245,11 @@ public class SSTableImport { cfamily.addAtom(new RangeTombstone(col.getName(), col.getValue(), col.timestamp, col.localExpirationTime)); } +// cql3 row marker, see CASSANDRA-5852 +else if (!path.columnName.hasRemaining()) +{ +cfamily.addColumn(new QueryPath(cfm.cfName, superName, ByteBuffer.wrap(new byte[3])), col.getValue(), col.timestamp); +} else { cfamily.addColumn(path, col.getValue(), col.timestamp);
[5/5] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/54f41a9f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/54f41a9f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/54f41a9f Branch: refs/heads/trunk Commit: 54f41a9f58414dbb595554ff5b2aa4b98cb7c3ec Parents: 0cec93c a0abadf Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:37:17 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:37:17 2013 +0200 -- CHANGES.txt | 2 ++ .../org/apache/cassandra/config/CFMetaData.java | 15 ++- .../cassandra/cql3/statements/Restriction.java | 16 .../cassandra/cql3/statements/SelectStatement.java | 7 ++- .../org/apache/cassandra/tools/SSTableImport.java | 7 ++- 5 files changed, 44 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/config/CFMetaData.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/cql3/statements/Restriction.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54f41a9f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java --
[2/5] git commit: Update version for 1.2.10 release
Update version for 1.2.10 release Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/93753636 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/93753636 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/93753636 Branch: refs/heads/trunk Commit: 937536363a8a6d86ee32fe5ef90653264e67b6c7 Parents: a886e34 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 11:59:58 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 11:59:58 2013 +0200 -- NEWS.txt | 9 + build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 16 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 1f3f675..78c8a4c 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,15 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +1.2.10 +== + +Upgrading +- +- Nothing specific to this release, but please see 1.2.9 if you are upgrading + from a previous version. + + 1.2.9 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/93753636/build.xml -- diff --git a/build.xml b/build.xml index 122759c..74c7374 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=1.2.9/ +property name=base.version value=1.2.10/ 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/93753636/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 62ee968..63f75b8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (1.2.10) unstable; urgency=low + + * New release + + -- Sylvain Lebresne slebre...@apache.org Thu, 19 Sep 2013 11:58:12 +0200 + cassandra (1.2.9) unstable; urgency=low * New release
[3/5] git commit: Merge branch 'cassandra-1.2' into cassandra-2.0
Merge branch 'cassandra-1.2' into cassandra-2.0 Conflicts: NEWS.txt build.xml debian/changelog Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2c316afb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2c316afb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2c316afb Branch: refs/heads/trunk Commit: 2c316afb2160de703f79d1c163413c7d801b3f1e Parents: 6e3a241 9375363 Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:28:04 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:28:04 2013 +0200 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/config/CFMetaData.java | 15 ++- .../org/apache/cassandra/tools/SSTableImport.java| 7 ++- 3 files changed, 21 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/CHANGES.txt -- diff --cc CHANGES.txt index c218af5,f853cce..6003ed2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -49,54 -21,14 +49,55 @@@ Merged from 1.2 * Fix snapshots in use get deleted during snapshot repair (CASSANDRA-6011) * Move hints and exception count to o.a.c.metrics (CASSANDRA-6017) * Fix memory leak in snapshot repair (CASSANDRA-6047) + * Fix sstable2sjon for CQL3 tables (CASSANDRA-5852) -1.2.9 +2.0.0 + * Fix thrift validation when inserting into CQL3 tables (CASSANDRA-5138) + * Fix periodic memtable flushing behavior with clean memtables (CASSANDRA-5931) + * Fix dateOf() function for pre-2.0 timestamp columns (CASSANDRA-5928) + * Fix SSTable unintentionally loads BF when opened for batch (CASSANDRA-5938) + * Add stream session progress to JMX (CASSANDRA-4757) + * Fix NPE during CAS operation (CASSANDRA-5925) +Merged from 1.2: * Fix getBloomFilterDiskSpaceUsed for AlwaysPresentFilter (CASSANDRA-5900) - * migrate 1.1 schema_columnfamilies.key_alias column to key_aliases - (CASSANDRA-5800) - * add --migrate option to sstableupgrade and sstablescrub (CASSANDRA-5831) + * Don't announce schema version until we've loaded the changes locally + (CASSANDRA-5904) + * Fix to support off heap bloom filters size greater than 2 GB (CASSANDRA-5903) + * Properly handle parsing huge map and set literals (CASSANDRA-5893) + + +2.0.0-rc2 + * enable vnodes by default (CASSANDRA-5869) + * fix CAS contention timeout (CASSANDRA-5830) + * fix HsHa to respect max frame size (CASSANDRA-4573) + * Fix (some) 2i on composite components omissions (CASSANDRA-5851) + * cqlsh: add DESCRIBE FULL SCHEMA variant (CASSANDRA-5880) +Merged from 1.2: + * Correctly validate sparse composite cells in scrub (CASSANDRA-5855) + * Add KeyCacheHitRate metric to CF metrics (CASSANDRA-5868) + * cqlsh: add support for multiline comments (CASSANDRA-5798) + * Handle CQL3 SELECT duplicate IN restrictions on clustering columns + (CASSANDRA-5856) + + +2.0.0-rc1 + * improve DecimalSerializer performance (CASSANDRA-5837) + * fix potential spurious wakeup in AsyncOneResponse (CASSANDRA-5690) + * fix schema-related trigger issues (CASSANDRA-5774) + * Better validation when accessing CQL3 table from thrift (CASSANDRA-5138) + * Fix assertion error during repair (CASSANDRA-5801) + * Fix range tombstone bug (CASSANDRA-5805) + * DC-local CAS (CASSANDRA-5797) + * Add a native_protocol_version column to the system.local table (CASSANRDA-5819) + * Use index_interval from cassandra.yaml when upgraded (CASSANDRA-5822) + * Fix buffer underflow on socket close (CASSANDRA-5792) +Merged from 1.2: + * Fix reading DeletionTime from 1.1-format sstables (CASSANDRA-5814) + * cqlsh: add collections support to COPY (CASSANDRA-5698) + * retry important messages for any IOException (CASSANDRA-5804) + * Allow empty IN relations in SELECT/UPDATE/DELETE statements (CASSANDRA-5626) + * cqlsh: fix crashing on Windows due to libedit detection (CASSANDRA-5812) * fix bulk-loading compressed sstables (CASSANDRA-5820) * (Hadoop) fix quoting in CqlPagingRecordReader and CqlRecordWriter (CASSANDRA-5824) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/config/CFMetaData.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2c316afb/src/java/org/apache/cassandra/tools/SSTableImport.java -- diff --cc src/java/org/apache/cassandra/tools/SSTableImport.java index bd74541,68d4397..79584c5 --- a/src/java/org/apache/cassandra/tools/SSTableImport.java +++ b/src/java/org/apache/cassandra/tools/SSTableImport.java @@@ -245,12 -243,16 +245,17 @@@
[4/5] git commit: Fix validation of IN with 2ndary indexes
Fix validation of IN with 2ndary indexes patch by slebresne; reviewed by iamaleskey for CASSANDRA-6050 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a0abadfd Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a0abadfd Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a0abadfd Branch: refs/heads/trunk Commit: a0abadfdb5721f6f595b6f9e33ed2bf44603d2fe Parents: 2c316af Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:35:43 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:35:43 2013 +0200 -- CHANGES.txt | 1 + .../cassandra/cql3/statements/Restriction.java | 16 .../cassandra/cql3/statements/SelectStatement.java | 7 ++- 3 files changed, 23 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 6003ed2..d101c74 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -25,6 +25,7 @@ * Paging filter empty rows too agressively (CASSANDRA-6040) * Support variadic parameters for IN clauses (CASSANDRA-4210) * cqlsh: return the result of CAS writes (CASSANDRA-5796) + * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/Restriction.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/Restriction.java b/src/java/org/apache/cassandra/cql3/statements/Restriction.java index 45cc607..3a3aa05 100644 --- a/src/java/org/apache/cassandra/cql3/statements/Restriction.java +++ b/src/java/org/apache/cassandra/cql3/statements/Restriction.java @@ -112,6 +112,12 @@ public interface Restriction return true; } +// Used when we need to know if it's a IN with just one value before we have +// the bind variables. This is ugly and only there for backward compatiblity +// because we used to treate IN with 1 value like an EQ and need to preserve +// this behavior. +public abstract boolean canHaveOnlyOneValue(); + public boolean isOnToken() { return false; @@ -134,6 +140,11 @@ public interface Restriction return buffers; } +public boolean canHaveOnlyOneValue() +{ +return values.size() == 1; +} + @Override public String toString() { @@ -158,6 +169,11 @@ public interface Restriction return lval.elements; } +public boolean canHaveOnlyOneValue() +{ +return false; +} + @Override public String toString() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/a0abadfd/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --git a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index c85864f..86dad85 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -1124,7 +1124,12 @@ public class SelectStatement implements CQLStatement case VALUE_ALIAS: throw new InvalidRequestException(String.format(Predicates on the non-primary-key column (%s) of a COMPACT table are not yet supported, name.name)); case COLUMN_METADATA: -stmt.metadataRestrictions.put(name, updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names)); +// We only all IN on the row key and last clustering key so far, never on non-PK columns, and this even if there's an index +Restriction r = updateRestriction(name, stmt.metadataRestrictions.get(name), rel, names); +if (r.isIN() !((Restriction.IN)r).canHaveOnlyOneValue()) +// Note: for backward compatibility reason, we conside a IN of 1 value the same as a EQ, so we let that slide. +throw new InvalidRequestException(String.format(IN predicates on non-primary-key columns (%s) is not yet supported, name)); +
git commit: Support named bind variables in CQL
Updated Branches: refs/heads/cassandra-2.0 a0abadfdb - 37e9bce38 Support named bind variables in CQL patch by slebresne; reviewed by iamaleksey for CASSANDRA-6033 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/37e9bce3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/37e9bce3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/37e9bce3 Branch: refs/heads/cassandra-2.0 Commit: 37e9bce381b9daf8e544db475e1a31d70e471e7b Parents: a0abadf Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:57:48 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:57:48 2013 +0200 -- CHANGES.txt | 1 + doc/cql3/CQL.textile| 6 ++- doc/native_protocol_v2.spec | 20 +--- .../apache/cassandra/cql3/AbstractMarker.java | 4 +- .../org/apache/cassandra/cql3/Attributes.java | 2 +- src/java/org/apache/cassandra/cql3/Cql.g| 31 +--- src/java/org/apache/cassandra/cql3/Lists.java | 4 +- src/java/org/apache/cassandra/cql3/Maps.java| 4 +- .../org/apache/cassandra/cql3/Operation.java| 2 +- src/java/org/apache/cassandra/cql3/Sets.java| 2 +- src/java/org/apache/cassandra/cql3/Term.java| 6 +-- .../cassandra/cql3/VariableSpecifications.java | 52 .../cassandra/cql3/functions/FunctionCall.java | 9 +--- .../cql3/statements/BatchStatement.java | 4 +- .../cql3/statements/CreateTableStatement.java | 1 - .../cql3/statements/DeleteStatement.java| 4 +- .../cql3/statements/ModificationStatement.java | 10 ++-- .../cql3/statements/ParsedStatement.java| 15 -- .../statements/SchemaAlteringStatement.java | 5 ++ .../cql3/statements/SelectStatement.java| 8 +-- .../cql3/statements/TruncateStatement.java | 5 ++ .../cql3/statements/UpdateStatement.java| 8 +-- .../cassandra/cql3/statements/UseStatement.java | 5 ++ 23 files changed, 150 insertions(+), 58 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/37e9bce3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d101c74..b2fa36e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -26,6 +26,7 @@ * Support variadic parameters for IN clauses (CASSANDRA-4210) * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) + * Support named bind variables in CQL (CASSANDRA-6033) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/37e9bce3/doc/cql3/CQL.textile -- diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile index a880c08..ee0d700 100644 --- a/doc/cql3/CQL.textile +++ b/doc/cql3/CQL.textile @@ -96,6 +96,7 @@ bc(syntax).. | boolean | hex variable ::= '?' + | ':' identifier term ::= constant | collection-literal | variable @@ -115,7 +116,7 @@ bc(syntax).. p. Please note that not every possible productions of the grammar above will be valid in practice. Most notably, @variable@ and nested @collection-literal@ are currently not allowed inside @collection-literal@. -p. The question mark (@?@) of @variable@ is a bind variables for prepared statements:#preparedStatement. +p. A @variable@ can be either anonymous (a question mark (@?@)) or named (an identifier preceded by @:@). Both declare a bind variables for prepared statements:#preparedStatement. The only difference between an anymous and a named variable is that a named one will be easier to refer to (how exactly depends on the client driver used). p. The @properties@ production is use by statement that create and alter keyspaces and tables. Each @property@ is either a _simple_ one, in which case it just has a value, or a _map_ one, in which case it's value is a map grouping sub-options. The following will refer to one or the other as the _kind_ (_simple_ or _map_) of the property. @@ -128,7 +129,7 @@ h3(#preparedStatement). Prepared Statement CQL supports _prepared statements_. Prepared statement is an optimization that allows to parse a query only once but execute it multiple times with different concrete values. -In a statement, each time a column value is expected (in the data manipulation and query statements), a bind variable marker (denoted by a @?@ symbol) can be used instead. A statement with bind variables must then be _prepared_.
[1/2] git commit: Support named bind variables in CQL
Updated Branches: refs/heads/trunk 54f41a9f5 - 63589bac5 Support named bind variables in CQL patch by slebresne; reviewed by iamaleksey for CASSANDRA-6033 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/37e9bce3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/37e9bce3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/37e9bce3 Branch: refs/heads/trunk Commit: 37e9bce381b9daf8e544db475e1a31d70e471e7b Parents: a0abadf Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:57:48 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:57:48 2013 +0200 -- CHANGES.txt | 1 + doc/cql3/CQL.textile| 6 ++- doc/native_protocol_v2.spec | 20 +--- .../apache/cassandra/cql3/AbstractMarker.java | 4 +- .../org/apache/cassandra/cql3/Attributes.java | 2 +- src/java/org/apache/cassandra/cql3/Cql.g| 31 +--- src/java/org/apache/cassandra/cql3/Lists.java | 4 +- src/java/org/apache/cassandra/cql3/Maps.java| 4 +- .../org/apache/cassandra/cql3/Operation.java| 2 +- src/java/org/apache/cassandra/cql3/Sets.java| 2 +- src/java/org/apache/cassandra/cql3/Term.java| 6 +-- .../cassandra/cql3/VariableSpecifications.java | 52 .../cassandra/cql3/functions/FunctionCall.java | 9 +--- .../cql3/statements/BatchStatement.java | 4 +- .../cql3/statements/CreateTableStatement.java | 1 - .../cql3/statements/DeleteStatement.java| 4 +- .../cql3/statements/ModificationStatement.java | 10 ++-- .../cql3/statements/ParsedStatement.java| 15 -- .../statements/SchemaAlteringStatement.java | 5 ++ .../cql3/statements/SelectStatement.java| 8 +-- .../cql3/statements/TruncateStatement.java | 5 ++ .../cql3/statements/UpdateStatement.java| 8 +-- .../cassandra/cql3/statements/UseStatement.java | 5 ++ 23 files changed, 150 insertions(+), 58 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/37e9bce3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index d101c74..b2fa36e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -26,6 +26,7 @@ * Support variadic parameters for IN clauses (CASSANDRA-4210) * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) + * Support named bind variables in CQL (CASSANDRA-6033) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/37e9bce3/doc/cql3/CQL.textile -- diff --git a/doc/cql3/CQL.textile b/doc/cql3/CQL.textile index a880c08..ee0d700 100644 --- a/doc/cql3/CQL.textile +++ b/doc/cql3/CQL.textile @@ -96,6 +96,7 @@ bc(syntax).. | boolean | hex variable ::= '?' + | ':' identifier term ::= constant | collection-literal | variable @@ -115,7 +116,7 @@ bc(syntax).. p. Please note that not every possible productions of the grammar above will be valid in practice. Most notably, @variable@ and nested @collection-literal@ are currently not allowed inside @collection-literal@. -p. The question mark (@?@) of @variable@ is a bind variables for prepared statements:#preparedStatement. +p. A @variable@ can be either anonymous (a question mark (@?@)) or named (an identifier preceded by @:@). Both declare a bind variables for prepared statements:#preparedStatement. The only difference between an anymous and a named variable is that a named one will be easier to refer to (how exactly depends on the client driver used). p. The @properties@ production is use by statement that create and alter keyspaces and tables. Each @property@ is either a _simple_ one, in which case it just has a value, or a _map_ one, in which case it's value is a map grouping sub-options. The following will refer to one or the other as the _kind_ (_simple_ or _map_) of the property. @@ -128,7 +129,7 @@ h3(#preparedStatement). Prepared Statement CQL supports _prepared statements_. Prepared statement is an optimization that allows to parse a query only once but execute it multiple times with different concrete values. -In a statement, each time a column value is expected (in the data manipulation and query statements), a bind variable marker (denoted by a @?@ symbol) can be used instead. A statement with bind variables must then be _prepared_. Once it has been
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/63589bac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/63589bac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/63589bac Branch: refs/heads/trunk Commit: 63589bac5aa70f5833ef2c821f47fc3b7739613c Parents: 54f41a9 37e9bce Author: Sylvain Lebresne sylv...@datastax.com Authored: Thu Sep 19 12:58:40 2013 +0200 Committer: Sylvain Lebresne sylv...@datastax.com Committed: Thu Sep 19 12:58:40 2013 +0200 -- CHANGES.txt | 1 + doc/cql3/CQL.textile| 6 ++- doc/native_protocol_v2.spec | 20 +--- .../apache/cassandra/cql3/AbstractMarker.java | 4 +- .../org/apache/cassandra/cql3/Attributes.java | 2 +- src/java/org/apache/cassandra/cql3/Cql.g| 31 +--- src/java/org/apache/cassandra/cql3/Lists.java | 4 +- src/java/org/apache/cassandra/cql3/Maps.java| 4 +- .../org/apache/cassandra/cql3/Operation.java| 2 +- src/java/org/apache/cassandra/cql3/Sets.java| 2 +- src/java/org/apache/cassandra/cql3/Term.java| 6 +-- .../cassandra/cql3/VariableSpecifications.java | 52 .../cassandra/cql3/functions/FunctionCall.java | 9 +--- .../cql3/statements/BatchStatement.java | 4 +- .../cql3/statements/CreateTableStatement.java | 1 - .../cql3/statements/DeleteStatement.java| 4 +- .../cql3/statements/ModificationStatement.java | 10 ++-- .../cql3/statements/ParsedStatement.java| 15 -- .../statements/SchemaAlteringStatement.java | 5 ++ .../cql3/statements/SelectStatement.java| 8 +-- .../cql3/statements/TruncateStatement.java | 5 ++ .../cql3/statements/UpdateStatement.java| 8 +-- .../cassandra/cql3/statements/UseStatement.java | 5 ++ 23 files changed, 150 insertions(+), 58 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63589bac/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/63589bac/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java --
Git Push Summary
Updated Tags: refs/tags/2.0.1-tentative [created] 72c50bd75
[jira] [Commented] (CASSANDRA-5906) Avoid allocating over-large bloom filters
[ https://issues.apache.org/jira/browse/CASSANDRA-5906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771821#comment-13771821 ] Matt Abrams commented on CASSANDRA-5906: Answers: 1. Since ByteBuffer's hashCode is only a function of the number of bits remaining we cannot use it directly in the offer function. If we implemented a helper function in HLL+ we would still need to get the byte array or some other derivative of the object that would be useful as a hash input. Let me know what you are looking for here and we can add to stream-lib. 2. The size of the HLL is a function of how precise you need it to be. If we use a p of 15 instead of 16 the size drops to 21K. Inserting the same 500K elements into a HLL+ with p=15 yields of .58% in my tests. The nice thing about HLLs is that their error is only a function of how big the HLL is, not how many elements you put into it. For example, with the same p=15 HLL+ instance I inserted 1 billion elements and still had an error of .49%. This error rate starts to break down when the number of elements inserted becomes massive (high billions or low trillions). It is possible to build a HLL that deals with that scale but it hasn't been an issue for us yet. Question: The constructor for the HLL+ only sets a p value, not the sp (sparse p value). The advantage of using an sp is that for smaller tables you will get a near exact count. I'm not sure if this is required for this use case but I thought I'd mention it just in case. Avoid allocating over-large bloom filters - Key: CASSANDRA-5906 URL: https://issues.apache.org/jira/browse/CASSANDRA-5906 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Yuki Morishita Fix For: 2.0.1 We conservatively estimate the number of partitions post-compaction to be the total number of partitions pre-compaction. That is, we assume the worst-case scenario of no partition overlap at all. This can result in substantial memory wasted in sstables resulting from highly overlapping compactions. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5906) Avoid allocating over-large bloom filters
[ https://issues.apache.org/jira/browse/CASSANDRA-5906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771836#comment-13771836 ] Jonathan Ellis commented on CASSANDRA-5906: --- bq. Since ByteBuffer's hashCode is only a function of the number of bits remaining we cannot use it directly in the offer function. I don't follow -- that should be exactly the desired behavior. The ByteBuffer offset/remaining are telling us, this is the part of the backing array that we're interested in, which lets us split up regions of memory without having to actually copy to new arrays. bq. The size of the HLL is a function of how precise you need it to be. If we use a p of 15 instead of 16 the size drops to 21K. Inserting the same 500K elements into a HLL+ with p=15 yields of .58% in my tests. So, we can trade a factor of 2 size for roughly a factor of 2 precision?. Unless we have a use for keeping these on heap that I can't think of, I'd say we should double the size and only read them in for compaction. Avoid allocating over-large bloom filters - Key: CASSANDRA-5906 URL: https://issues.apache.org/jira/browse/CASSANDRA-5906 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Yuki Morishita Fix For: 2.0.1 We conservatively estimate the number of partitions post-compaction to be the total number of partitions pre-compaction. That is, we assume the worst-case scenario of no partition overlap at all. This can result in substantial memory wasted in sstables resulting from highly overlapping compactions. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5906) Avoid allocating over-large bloom filters
[ https://issues.apache.org/jira/browse/CASSANDRA-5906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771836#comment-13771836 ] Jonathan Ellis edited comment on CASSANDRA-5906 at 9/19/13 12:35 PM: - bq. Since ByteBuffer's hashCode is only a function of the number of bits remaining we cannot use it directly in the offer function. I don't follow -- that should be exactly the desired behavior. The ByteBuffer offset/remaining are telling us, this is the part of the backing array that we're interested in, which lets us split up regions of memory without having to actually copy to new arrays. So BBU.getArray is only for when some API only allows arrays and possibly having to perform a copy is the only alternative: {code} /** * You should almost never use this. Instead, use the write* methods to avoid copies. */ public static byte[] getArray(ByteBuffer buffer) { int length = buffer.remaining(); if (buffer.hasArray()) { int boff = buffer.arrayOffset() + buffer.position(); if (boff == 0 length == buffer.array().length) return buffer.array(); else return Arrays.copyOfRange(buffer.array(), boff, boff + length); } // else, DirectByteBuffer.get() is the fastest route byte[] bytes = new byte[length]; buffer.duplicate().get(bytes); return bytes; } {code} bq. The size of the HLL is a function of how precise you need it to be. If we use a p of 15 instead of 16 the size drops to 21K. Inserting the same 500K elements into a HLL+ with p=15 yields of .58% in my tests. So, we can trade a factor of 2 size for roughly a factor of 2 precision?. Unless we have a use for keeping these on heap that I can't think of, I'd say we should double the size and only read them in for compaction. was (Author: jbellis): bq. Since ByteBuffer's hashCode is only a function of the number of bits remaining we cannot use it directly in the offer function. I don't follow -- that should be exactly the desired behavior. The ByteBuffer offset/remaining are telling us, this is the part of the backing array that we're interested in, which lets us split up regions of memory without having to actually copy to new arrays. bq. The size of the HLL is a function of how precise you need it to be. If we use a p of 15 instead of 16 the size drops to 21K. Inserting the same 500K elements into a HLL+ with p=15 yields of .58% in my tests. So, we can trade a factor of 2 size for roughly a factor of 2 precision?. Unless we have a use for keeping these on heap that I can't think of, I'd say we should double the size and only read them in for compaction. Avoid allocating over-large bloom filters - Key: CASSANDRA-5906 URL: https://issues.apache.org/jira/browse/CASSANDRA-5906 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Yuki Morishita Fix For: 2.0.1 We conservatively estimate the number of partitions post-compaction to be the total number of partitions pre-compaction. That is, we assume the worst-case scenario of no partition overlap at all. This can result in substantial memory wasted in sstables resulting from highly overlapping compactions. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6058) Make ThriftServer more easlly extensible
Aleksey Yeschenko created CASSANDRA-6058: Summary: Make ThriftServer more easlly extensible Key: CASSANDRA-6058 URL: https://issues.apache.org/jira/browse/CASSANDRA-6058 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Sam Tunnicliffe Priority: Minor Fix For: 2.0.1 Make ThriftServer more easlly extensible -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6058) Make ThriftServer more easlly extensible
[ https://issues.apache.org/jira/browse/CASSANDRA-6058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6058: - Attachment: 6058.txt Make ThriftServer more easlly extensible Key: CASSANDRA-6058 URL: https://issues.apache.org/jira/browse/CASSANDRA-6058 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Sam Tunnicliffe Priority: Minor Fix For: 2.0.1 Attachments: 6058.txt Make ThriftServer more easlly extensible -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b1d1fac8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b1d1fac8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b1d1fac8 Branch: refs/heads/trunk Commit: b1d1fac8d2ff44ecdf7584fa33dd1504c914c41d Parents: 63589ba caf047b Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 15:54:56 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 15:54:56 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/thrift/TServerFactory.java | 3 +- .../apache/cassandra/thrift/ThriftServer.java | 54 ++-- 3 files changed, 42 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b1d1fac8/CHANGES.txt --
git commit: Make ThriftServer more easlly extensible
Updated Branches: refs/heads/cassandra-2.0 37e9bce38 - caf047b85 Make ThriftServer more easlly extensible patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-6058 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/caf047b8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/caf047b8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/caf047b8 Branch: refs/heads/cassandra-2.0 Commit: caf047b8581709ba57327f9e3c4607f273771840 Parents: 37e9bce Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 15:53:24 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 15:53:24 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/thrift/TServerFactory.java | 3 +- .../apache/cassandra/thrift/ThriftServer.java | 54 ++-- 3 files changed, 42 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b2fa36e..06d9b16 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -27,6 +27,7 @@ * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) * Support named bind variables in CQL (CASSANDRA-6033) + * Make ThriftServer more easlly extensible (CASSANDRA-6058) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/src/java/org/apache/cassandra/thrift/TServerFactory.java -- diff --git a/src/java/org/apache/cassandra/thrift/TServerFactory.java b/src/java/org/apache/cassandra/thrift/TServerFactory.java index 0c93867..2e2acb8 100644 --- a/src/java/org/apache/cassandra/thrift/TServerFactory.java +++ b/src/java/org/apache/cassandra/thrift/TServerFactory.java @@ -20,6 +20,7 @@ package org.apache.cassandra.thrift; import java.net.InetSocketAddress; +import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TProtocolFactory; import org.apache.thrift.server.TServer; import org.apache.thrift.transport.TTransportFactory; @@ -32,7 +33,7 @@ public interface TServerFactory { public InetSocketAddress addr; public CassandraServer cassandraServer; -public Cassandra.Processor processor; +public TProcessor processor; public TProtocolFactory tProtocolFactory; public TTransportFactory inTransportFactory; public TTransportFactory outTransportFactory; http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/src/java/org/apache/cassandra/thrift/ThriftServer.java -- diff --git a/src/java/org/apache/cassandra/thrift/ThriftServer.java b/src/java/org/apache/cassandra/thrift/ThriftServer.java index 5f608a1..3a0d545 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftServer.java +++ b/src/java/org/apache/cassandra/thrift/ThriftServer.java @@ -25,19 +25,21 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.service.CassandraDaemon; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.server.TServer; import org.apache.thrift.transport.TFramedTransport; +import org.apache.thrift.transport.TTransportFactory; public class ThriftServer implements CassandraDaemon.Server { private static Logger logger = LoggerFactory.getLogger(ThriftServer.class); -final static String SYNC = sync; -final static String ASYNC = async; -final static String HSHA = hsha; +protected final static String SYNC = sync; +protected final static String ASYNC = async; +protected final static String HSHA = hsha; -private final InetAddress address; -private final int port; +protected final InetAddress address; +protected final int port; private volatile ThriftServerThread server; public ThriftServer(InetAddress address, int port) @@ -50,7 +52,8 @@ public class ThriftServer implements CassandraDaemon.Server { if (server == null) { -server = new ThriftServerThread(address, port); +CassandraServer iface = getCassandraServer(); +server = new ThriftServerThread(address, port, iface, getProcessor(iface), getTransportFactory()); server.start(); } } @@ -77,15 +80,39 @@ public class ThriftServer implements CassandraDaemon.Server return server != null;
[1/2] git commit: Make ThriftServer more easlly extensible
Updated Branches: refs/heads/trunk 63589bac5 - b1d1fac8d Make ThriftServer more easlly extensible patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-6058 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/caf047b8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/caf047b8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/caf047b8 Branch: refs/heads/trunk Commit: caf047b8581709ba57327f9e3c4607f273771840 Parents: 37e9bce Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 15:53:24 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 15:53:24 2013 +0300 -- CHANGES.txt | 1 + .../apache/cassandra/thrift/TServerFactory.java | 3 +- .../apache/cassandra/thrift/ThriftServer.java | 54 ++-- 3 files changed, 42 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b2fa36e..06d9b16 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -27,6 +27,7 @@ * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) * Support named bind variables in CQL (CASSANDRA-6033) + * Make ThriftServer more easlly extensible (CASSANDRA-6058) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/src/java/org/apache/cassandra/thrift/TServerFactory.java -- diff --git a/src/java/org/apache/cassandra/thrift/TServerFactory.java b/src/java/org/apache/cassandra/thrift/TServerFactory.java index 0c93867..2e2acb8 100644 --- a/src/java/org/apache/cassandra/thrift/TServerFactory.java +++ b/src/java/org/apache/cassandra/thrift/TServerFactory.java @@ -20,6 +20,7 @@ package org.apache.cassandra.thrift; import java.net.InetSocketAddress; +import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TProtocolFactory; import org.apache.thrift.server.TServer; import org.apache.thrift.transport.TTransportFactory; @@ -32,7 +33,7 @@ public interface TServerFactory { public InetSocketAddress addr; public CassandraServer cassandraServer; -public Cassandra.Processor processor; +public TProcessor processor; public TProtocolFactory tProtocolFactory; public TTransportFactory inTransportFactory; public TTransportFactory outTransportFactory; http://git-wip-us.apache.org/repos/asf/cassandra/blob/caf047b8/src/java/org/apache/cassandra/thrift/ThriftServer.java -- diff --git a/src/java/org/apache/cassandra/thrift/ThriftServer.java b/src/java/org/apache/cassandra/thrift/ThriftServer.java index 5f608a1..3a0d545 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftServer.java +++ b/src/java/org/apache/cassandra/thrift/ThriftServer.java @@ -25,19 +25,21 @@ import org.slf4j.LoggerFactory; import org.apache.cassandra.service.CassandraDaemon; import org.apache.cassandra.config.DatabaseDescriptor; +import org.apache.thrift.TProcessor; import org.apache.thrift.protocol.TBinaryProtocol; import org.apache.thrift.server.TServer; import org.apache.thrift.transport.TFramedTransport; +import org.apache.thrift.transport.TTransportFactory; public class ThriftServer implements CassandraDaemon.Server { private static Logger logger = LoggerFactory.getLogger(ThriftServer.class); -final static String SYNC = sync; -final static String ASYNC = async; -final static String HSHA = hsha; +protected final static String SYNC = sync; +protected final static String ASYNC = async; +protected final static String HSHA = hsha; -private final InetAddress address; -private final int port; +protected final InetAddress address; +protected final int port; private volatile ThriftServerThread server; public ThriftServer(InetAddress address, int port) @@ -50,7 +52,8 @@ public class ThriftServer implements CassandraDaemon.Server { if (server == null) { -server = new ThriftServerThread(address, port); +CassandraServer iface = getCassandraServer(); +server = new ThriftServerThread(address, port, iface, getProcessor(iface), getTransportFactory()); server.start(); } } @@ -77,15 +80,39 @@ public class ThriftServer implements CassandraDaemon.Server return server != null; } +
[jira] [Commented] (CASSANDRA-6056) Heavy write load exhausts heap space
[ https://issues.apache.org/jira/browse/CASSANDRA-6056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771907#comment-13771907 ] Jonathan Ellis commented on CASSANDRA-6056: --- 5982 is applied to the only 2.0 branch in the repository. Heavy write load exhausts heap space Key: CASSANDRA-6056 URL: https://issues.apache.org/jira/browse/CASSANDRA-6056 Project: Cassandra Issue Type: Bug Environment: Debian, Cassandra 2.0 Reporter: arnaud-lb Attachments: dominator-tree.png, jvisualvm-class-instances.png Issuing many INSERT or UPDATE queries cause cassandra to exhaust the heap space in a few minutes. It then gets stuck in full GCs, failing to recover. Observed with the default config from Datastax Debian packages, with a 8GB heap. Query rate is around 35K queries per second, with 16 concurrent queries. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6059) Improve memory-use defaults
Jonathan Ellis created CASSANDRA-6059: - Summary: Improve memory-use defaults Key: CASSANDRA-6059 URL: https://issues.apache.org/jira/browse/CASSANDRA-6059 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Anecdotally, it's still too easy to OOM Cassandra even after moving sstable internals off heap. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6059) Improve memory-use defaults
[ https://issues.apache.org/jira/browse/CASSANDRA-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-6059: -- Attachment: 6059.txt Improve memory-use defaults --- Key: CASSANDRA-6059 URL: https://issues.apache.org/jira/browse/CASSANDRA-6059 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6059.txt Anecdotally, it's still too easy to OOM Cassandra even after moving sstable internals off heap. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-5954) Make nodetool ring print an error message and suggest nodetool status when vnodes are enabled
[ https://issues.apache.org/jira/browse/CASSANDRA-5954?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lyuben Todorov updated CASSANDRA-5954: -- Attachment: 5954.patch Make nodetool ring print an error message and suggest nodetool status when vnodes are enabled - Key: CASSANDRA-5954 URL: https://issues.apache.org/jira/browse/CASSANDRA-5954 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Jonathan Ellis Assignee: Lyuben Todorov Priority: Minor Fix For: 2.0.1 Attachments: 5954.patch -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980
Updated Branches: refs/heads/cassandra-1.2 937536363 - df046d6b4 Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/df046d6b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/df046d6b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/df046d6b Branch: refs/heads/cassandra-1.2 Commit: df046d6b4262c3a879b60d1b6f082aea792e09a0 Parents: 9375363 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:18:07 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:18:07 2013 -0500 -- CHANGES.txt | 4 ++ .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 80 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index f853cce..27e6f24 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +1.2.11 + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) + + 1.2.10 * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 8e3cbe2..22de2d6 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -1251,6 +1251,11 @@ public class DatabaseDescriptor return conf.key_cache_keys_to_save; } +public static void setKeyCacheKeysToSave(int keyCacheKeysToSave) +{ +conf.key_cache_keys_to_save = keyCacheKeysToSave; +} + public static long getRowCacheSizeInMB() { return conf.row_cache_size_in_mb; @@ -1271,6 +1276,11 @@ public class DatabaseDescriptor return conf.row_cache_keys_to_save; } +public static void setRowCacheKeysToSave(int rowCacheKeysToSave) +{ +conf.row_cache_keys_to_save = rowCacheKeysToSave; +} + public static IRowCacheProvider getRowCacheProvider() { return rowCacheProvider; http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/service/CacheService.java -- diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java index 34864f2..5d3dc72 100644 --- a/src/java/org/apache/cassandra/service/CacheService.java +++ b/src/java/org/apache/cassandra/service/CacheService.java @@ -207,13 +207,13 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getRowCacheSavePeriod(); } -public void setRowCacheSavePeriodInSeconds(int rcspis) +public void setRowCacheSavePeriodInSeconds(int seconds) { -if (rcspis 0) +if (seconds 0) throw new RuntimeException(RowCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setRowCacheSavePeriod(rcspis); -rowCache.scheduleSaving(rcspis, DatabaseDescriptor.getRowCacheKeysToSave()); +DatabaseDescriptor.setRowCacheSavePeriod(seconds); +rowCache.scheduleSaving(seconds, DatabaseDescriptor.getRowCacheKeysToSave()); } public int getKeyCacheSavePeriodInSeconds() @@ -221,13 +221,39 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getKeyCacheSavePeriod(); } -public void setKeyCacheSavePeriodInSeconds(int kcspis) +public void setKeyCacheSavePeriodInSeconds(int seconds) { -if (kcspis 0) +if (seconds 0) throw new RuntimeException(KeyCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setKeyCacheSavePeriod(kcspis); -keyCache.scheduleSaving(kcspis, DatabaseDescriptor.getKeyCacheKeysToSave()); +DatabaseDescriptor.setKeyCacheSavePeriod(seconds); +keyCache.scheduleSaving(seconds,
[1/2] git commit: Fix comment
Updated Branches: refs/heads/trunk 23156863d - e1a910930 Fix comment Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c2a36e76 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c2a36e76 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c2a36e76 Branch: refs/heads/trunk Commit: c2a36e7601f02765ebc8b661abbfc7264e765dab Parents: 7453e6f Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:20:40 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:20:40 2013 +0300 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c2a36e76/src/java/org/apache/cassandra/thrift/ThriftServer.java -- diff --git a/src/java/org/apache/cassandra/thrift/ThriftServer.java b/src/java/org/apache/cassandra/thrift/ThriftServer.java index 3a0d545..dbd3824 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftServer.java +++ b/src/java/org/apache/cassandra/thrift/ThriftServer.java @@ -81,7 +81,7 @@ public class ThriftServer implements CassandraDaemon.Server } /* - * These methods are intended to be overriden to provide DSE specific implementations + * These methods are intended to be overridden to provide custom implementations. */ protected CassandraServer getCassandraServer() {
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e1a91093 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e1a91093 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e1a91093 Branch: refs/heads/trunk Commit: e1a9109309511d80c4358406990bcd80b17ae7e1 Parents: 2315686 c2a36e7 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:21:11 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:21:11 2013 +0300 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[1/7] git commit: Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980
Updated Branches: refs/heads/cassandra-2.0 c2a36e760 - cef6552c2 refs/heads/trunk e1a910930 - ec7a3e594 Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/df046d6b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/df046d6b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/df046d6b Branch: refs/heads/cassandra-2.0 Commit: df046d6b4262c3a879b60d1b6f082aea792e09a0 Parents: 9375363 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:18:07 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:18:07 2013 -0500 -- CHANGES.txt | 4 ++ .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 80 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index f853cce..27e6f24 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +1.2.11 + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) + + 1.2.10 * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 8e3cbe2..22de2d6 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -1251,6 +1251,11 @@ public class DatabaseDescriptor return conf.key_cache_keys_to_save; } +public static void setKeyCacheKeysToSave(int keyCacheKeysToSave) +{ +conf.key_cache_keys_to_save = keyCacheKeysToSave; +} + public static long getRowCacheSizeInMB() { return conf.row_cache_size_in_mb; @@ -1271,6 +1276,11 @@ public class DatabaseDescriptor return conf.row_cache_keys_to_save; } +public static void setRowCacheKeysToSave(int rowCacheKeysToSave) +{ +conf.row_cache_keys_to_save = rowCacheKeysToSave; +} + public static IRowCacheProvider getRowCacheProvider() { return rowCacheProvider; http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/service/CacheService.java -- diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java index 34864f2..5d3dc72 100644 --- a/src/java/org/apache/cassandra/service/CacheService.java +++ b/src/java/org/apache/cassandra/service/CacheService.java @@ -207,13 +207,13 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getRowCacheSavePeriod(); } -public void setRowCacheSavePeriodInSeconds(int rcspis) +public void setRowCacheSavePeriodInSeconds(int seconds) { -if (rcspis 0) +if (seconds 0) throw new RuntimeException(RowCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setRowCacheSavePeriod(rcspis); -rowCache.scheduleSaving(rcspis, DatabaseDescriptor.getRowCacheKeysToSave()); +DatabaseDescriptor.setRowCacheSavePeriod(seconds); +rowCache.scheduleSaving(seconds, DatabaseDescriptor.getRowCacheKeysToSave()); } public int getKeyCacheSavePeriodInSeconds() @@ -221,13 +221,39 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getKeyCacheSavePeriod(); } -public void setKeyCacheSavePeriodInSeconds(int kcspis) +public void setKeyCacheSavePeriodInSeconds(int seconds) { -if (kcspis 0) +if (seconds 0) throw new RuntimeException(KeyCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setKeyCacheSavePeriod(kcspis); -keyCache.scheduleSaving(kcspis, DatabaseDescriptor.getKeyCacheKeysToSave()); +DatabaseDescriptor.setKeyCacheSavePeriod(seconds); +keyCache.scheduleSaving(seconds,
[4/7] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb7b71f6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb7b71f6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb7b71f6 Branch: refs/heads/cassandra-2.0 Commit: fb7b71f6b1b8b8581f64ee86de5fdc2c7eabe590 Parents: 7453e6f df046d6 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:21:05 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:21:05 2013 -0500 -- CHANGES.txt | 2 + .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 78 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/CHANGES.txt -- diff --cc CHANGES.txt index fcc33f2,27e6f24..ae6eedc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,37 -1,8 +1,39 @@@ -1.2.11 +2.0.2 + * Make ThriftServer more easlly extensible (CASSANDRA-6058) ++Merged from 1.2: + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) -1.2.10 +2.0.1 + * add file_cache_size_in_mb setting (CASSANDRA-5661) + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) + * Make standalone scrubber handle old and new style leveled manifest + (CASSANDRA-6005) + * Fix paxos bugs (CASSANDRA-6012, 6013, 6023) + * Fix paged ranges with multiple replicas (CASSANDRA-6004) + * Fix potential AssertionError during tracing (CASSANDRA-6041) + * Fix NPE in sstablesplit (CASSANDRA-6027) + * Migrate pre-2.0 key/value/column aliases to system.schema_columns + (CASSANDRA-6009) + * Paging filter empty rows too agressively (CASSANDRA-6040) + * Support variadic parameters for IN clauses (CASSANDRA-4210) + * cqlsh: return the result of CAS writes (CASSANDRA-5796) + * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) + * Support named bind variables in CQL (CASSANDRA-6033) +Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) * (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --cc src/java/org/apache/cassandra/config/DatabaseDescriptor.java index b3eeca6,22de2d6..42459e4 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@@ -1207,11 -1276,16 +1212,16 @@@ public class DatabaseDescripto return conf.row_cache_keys_to_save; } -public static void setRowCacheKeysToSave(int rowCacheKeysToSave) +public static IAllocator getoffHeapMemoryAllocator() { -conf.row_cache_keys_to_save = rowCacheKeysToSave; +return memoryAllocator; } -public static IRowCacheProvider getRowCacheProvider() ++public static void setRowCacheKeysToSave(int rowCacheKeysToSave) + { -return rowCacheProvider; ++conf.row_cache_keys_to_save = rowCacheKeysToSave; + } + public static int getStreamingSocketTimeout() { return conf.streaming_socket_timeout_in_ms; http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/service/CacheService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/service/CacheServiceMBean.java
[5/7] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/636598d3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/636598d3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/636598d3 Branch: refs/heads/trunk Commit: 636598d3424b9eb7aeb2166193d5793d40d44925 Parents: 2315686 fb7b71f Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:22:01 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:22:01 2013 -0500 -- CHANGES.txt | 2 + .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 78 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/636598d3/CHANGES.txt -- diff --cc CHANGES.txt index fe652f6,ae6eedc..942063e --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,13 -1,7 +1,15 @@@ +2.1 + * change logging from log4j to logback (CASSANDRA-5883) + * switch to LZ4 compression for internode communication (CASSANDRA-5887) + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971) + * Remove 1.2 network compatibility code (CASSANDRA-5960) + * Remove leveled json manifest migration code (CASSANDRA-5996) + + 2.0.2 * Make ThriftServer more easlly extensible (CASSANDRA-6058) + Merged from 1.2: + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) 2.0.1 http://git-wip-us.apache.org/repos/asf/cassandra/blob/636598d3/src/java/org/apache/cassandra/config/DatabaseDescriptor.java --
[3/7] git commit: merge from 1.2
merge from 1.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fb7b71f6 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fb7b71f6 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fb7b71f6 Branch: refs/heads/trunk Commit: fb7b71f6b1b8b8581f64ee86de5fdc2c7eabe590 Parents: 7453e6f df046d6 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:21:05 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:21:05 2013 -0500 -- CHANGES.txt | 2 + .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 78 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/CHANGES.txt -- diff --cc CHANGES.txt index fcc33f2,27e6f24..ae6eedc --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,37 -1,8 +1,39 @@@ -1.2.11 +2.0.2 + * Make ThriftServer more easlly extensible (CASSANDRA-6058) ++Merged from 1.2: + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) -1.2.10 +2.0.1 + * add file_cache_size_in_mb setting (CASSANDRA-5661) + * Improve error message when yaml contains invalid properties (CASSANDRA-5958) + * Improve leveled compaction's ability to find non-overlapping L0 compactions + to work on concurrently (CASSANDRA-5921) + * Notify indexer of columns shadowed by range tombstones (CASSANDRA-5614) + * Log Merkle tree stats (CASSANDRA-2698) + * Switch from crc32 to adler32 for compressed sstable checksums (CASSANDRA-5862) + * Improve offheap memcpy performance (CASSANDRA-5884) + * Use a range aware scanner for cleanup (CASSANDRA-2524) + * Cleanup doesn't need to inspect sstables that contain only local data + (CASSANDRA-5722) + * Add ability for CQL3 to list partition keys (CASSANDRA-4536) + * Improve native protocol serialization (CASSANDRA-5664) + * Upgrade Thrift to 0.9.1 (CASSANDRA-5923) + * Require superuser status for adding triggers (CASSANDRA-5963) + * Make standalone scrubber handle old and new style leveled manifest + (CASSANDRA-6005) + * Fix paxos bugs (CASSANDRA-6012, 6013, 6023) + * Fix paged ranges with multiple replicas (CASSANDRA-6004) + * Fix potential AssertionError during tracing (CASSANDRA-6041) + * Fix NPE in sstablesplit (CASSANDRA-6027) + * Migrate pre-2.0 key/value/column aliases to system.schema_columns + (CASSANDRA-6009) + * Paging filter empty rows too agressively (CASSANDRA-6040) + * Support variadic parameters for IN clauses (CASSANDRA-4210) + * cqlsh: return the result of CAS writes (CASSANDRA-5796) + * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) + * Support named bind variables in CQL (CASSANDRA-6033) +Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) * (Hadoop) Fix CQLRW for thrift tables (CASSANDRA-6002) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --cc src/java/org/apache/cassandra/config/DatabaseDescriptor.java index b3eeca6,22de2d6..42459e4 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@@ -1207,11 -1276,16 +1212,16 @@@ public class DatabaseDescripto return conf.row_cache_keys_to_save; } -public static void setRowCacheKeysToSave(int rowCacheKeysToSave) +public static IAllocator getoffHeapMemoryAllocator() { -conf.row_cache_keys_to_save = rowCacheKeysToSave; +return memoryAllocator; } -public static IRowCacheProvider getRowCacheProvider() ++public static void setRowCacheKeysToSave(int rowCacheKeysToSave) + { -return rowCacheProvider; ++conf.row_cache_keys_to_save = rowCacheKeysToSave; + } + public static int getStreamingSocketTimeout() { return conf.streaming_socket_timeout_in_ms; http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/service/CacheService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fb7b71f6/src/java/org/apache/cassandra/service/CacheServiceMBean.java
[7/7] git commit: Merge remote-tracking branch 'origin/trunk' into trunk
Merge remote-tracking branch 'origin/trunk' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ec7a3e59 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ec7a3e59 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ec7a3e59 Branch: refs/heads/trunk Commit: ec7a3e594e99c5ae85739737f8c07d2d5786e37a Parents: 636598d e1a9109 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:22:40 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:22:40 2013 -0500 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[2/7] git commit: Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980
Allow cache-keys-to-save to be set at runtime patch by Chris Burroughs; reviewed by jbellis for CASSANDRA-5980 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/df046d6b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/df046d6b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/df046d6b Branch: refs/heads/trunk Commit: df046d6b4262c3a879b60d1b6f082aea792e09a0 Parents: 9375363 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:18:07 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:18:07 2013 -0500 -- CHANGES.txt | 4 ++ .../cassandra/config/DatabaseDescriptor.java| 10 + .../apache/cassandra/service/CacheService.java | 42 .../cassandra/service/CacheServiceMBean.java| 6 +++ .../org/apache/cassandra/tools/NodeCmd.java | 8 +++- .../org/apache/cassandra/tools/NodeProbe.java | 16 .../apache/cassandra/tools/NodeToolHelp.yaml| 3 ++ 7 files changed, 80 insertions(+), 9 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index f853cce..27e6f24 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +1.2.11 + * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) + + 1.2.10 * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982) http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 8e3cbe2..22de2d6 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -1251,6 +1251,11 @@ public class DatabaseDescriptor return conf.key_cache_keys_to_save; } +public static void setKeyCacheKeysToSave(int keyCacheKeysToSave) +{ +conf.key_cache_keys_to_save = keyCacheKeysToSave; +} + public static long getRowCacheSizeInMB() { return conf.row_cache_size_in_mb; @@ -1271,6 +1276,11 @@ public class DatabaseDescriptor return conf.row_cache_keys_to_save; } +public static void setRowCacheKeysToSave(int rowCacheKeysToSave) +{ +conf.row_cache_keys_to_save = rowCacheKeysToSave; +} + public static IRowCacheProvider getRowCacheProvider() { return rowCacheProvider; http://git-wip-us.apache.org/repos/asf/cassandra/blob/df046d6b/src/java/org/apache/cassandra/service/CacheService.java -- diff --git a/src/java/org/apache/cassandra/service/CacheService.java b/src/java/org/apache/cassandra/service/CacheService.java index 34864f2..5d3dc72 100644 --- a/src/java/org/apache/cassandra/service/CacheService.java +++ b/src/java/org/apache/cassandra/service/CacheService.java @@ -207,13 +207,13 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getRowCacheSavePeriod(); } -public void setRowCacheSavePeriodInSeconds(int rcspis) +public void setRowCacheSavePeriodInSeconds(int seconds) { -if (rcspis 0) +if (seconds 0) throw new RuntimeException(RowCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setRowCacheSavePeriod(rcspis); -rowCache.scheduleSaving(rcspis, DatabaseDescriptor.getRowCacheKeysToSave()); +DatabaseDescriptor.setRowCacheSavePeriod(seconds); +rowCache.scheduleSaving(seconds, DatabaseDescriptor.getRowCacheKeysToSave()); } public int getKeyCacheSavePeriodInSeconds() @@ -221,13 +221,39 @@ public class CacheService implements CacheServiceMBean return DatabaseDescriptor.getKeyCacheSavePeriod(); } -public void setKeyCacheSavePeriodInSeconds(int kcspis) +public void setKeyCacheSavePeriodInSeconds(int seconds) { -if (kcspis 0) +if (seconds 0) throw new RuntimeException(KeyCacheSavePeriodInSeconds must be non-negative.); -DatabaseDescriptor.setKeyCacheSavePeriod(kcspis); -keyCache.scheduleSaving(kcspis, DatabaseDescriptor.getKeyCacheKeysToSave()); +DatabaseDescriptor.setKeyCacheSavePeriod(seconds); +keyCache.scheduleSaving(seconds, DatabaseDescriptor.getKeyCacheKeysToSave()); +} + +public int getRowCacheKeysToSave() +{ +return
[6/7] git commit: Merge remote-tracking branch 'origin/cassandra-2.0' into cassandra-2.0
Merge remote-tracking branch 'origin/cassandra-2.0' into cassandra-2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cef6552c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cef6552c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cef6552c Branch: refs/heads/cassandra-2.0 Commit: cef6552c26d79baff1ecfcc4a9f556681c0cb15f Parents: fb7b71f c2a36e7 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:22:30 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:22:30 2013 -0500 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[jira] [Commented] (CASSANDRA-5980) Allow cache keys-to-save to be dynamically set
[ https://issues.apache.org/jira/browse/CASSANDRA-5980?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771967#comment-13771967 ] Jonathan Ellis commented on CASSANDRA-5980: --- LGTM, committed Allow cache keys-to-save to be dynamically set -- Key: CASSANDRA-5980 URL: https://issues.apache.org/jira/browse/CASSANDRA-5980 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Chris Burroughs Assignee: Chris Burroughs Priority: Minor Fix For: 1.2.11, 2.0.2 Attachments: j5980-a.txt We have the option {key,row}_cache_keys_to_save so that operators can chose a balance between can't handle load on cold start and takes too long to reboot. However, this can currently only be set at startup. This means that once it has been determined that X is a bad value for keys_to_save another badness inducing restart is required to change X. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: Fix comment
Updated Branches: refs/heads/cassandra-2.0 7453e6f2b - c2a36e760 Fix comment Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c2a36e76 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c2a36e76 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c2a36e76 Branch: refs/heads/cassandra-2.0 Commit: c2a36e7601f02765ebc8b661abbfc7264e765dab Parents: 7453e6f Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:20:40 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:20:40 2013 +0300 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/c2a36e76/src/java/org/apache/cassandra/thrift/ThriftServer.java -- diff --git a/src/java/org/apache/cassandra/thrift/ThriftServer.java b/src/java/org/apache/cassandra/thrift/ThriftServer.java index 3a0d545..dbd3824 100644 --- a/src/java/org/apache/cassandra/thrift/ThriftServer.java +++ b/src/java/org/apache/cassandra/thrift/ThriftServer.java @@ -81,7 +81,7 @@ public class ThriftServer implements CassandraDaemon.Server } /* - * These methods are intended to be overriden to provide DSE specific implementations + * These methods are intended to be overridden to provide custom implementations. */ protected CassandraServer getCassandraServer() {
git commit: Move CASSANDRA-6058 to 2.0.2
Updated Branches: refs/heads/cassandra-2.0 caf047b85 - 7453e6f2b Move CASSANDRA-6058 to 2.0.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7453e6f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7453e6f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7453e6f2 Branch: refs/heads/cassandra-2.0 Commit: 7453e6f2bacc8663bd2b07c54a44fba1533e64a8 Parents: caf047b Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:12:29 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:12:29 2013 +0300 -- CHANGES.txt | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7453e6f2/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 06d9b16..fcc33f2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +2.0.2 + * Make ThriftServer more easlly extensible (CASSANDRA-6058) + + 2.0.1 * add file_cache_size_in_mb setting (CASSANDRA-5661) * Improve error message when yaml contains invalid properties (CASSANDRA-5958) @@ -27,7 +31,6 @@ * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) * Support named bind variables in CQL (CASSANDRA-6033) - * Make ThriftServer more easlly extensible (CASSANDRA-6058) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)
[jira] [Updated] (CASSANDRA-5983) Include sample CQL schema with distribution
[ https://issues.apache.org/jira/browse/CASSANDRA-5983?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-5983: -- Component/s: Contrib Assignee: Patrick McFadin Issue Type: New Feature (was: Improvement) I like it. Lets add it to examples/, and update our README to point people to it. The queries probably needs a lot of comments. Include sample CQL schema with distribution --- Key: CASSANDRA-5983 URL: https://issues.apache.org/jira/browse/CASSANDRA-5983 Project: Cassandra Issue Type: New Feature Components: Contrib Reporter: Patrick McFadin Assignee: Patrick McFadin Priority: Minor Having a sample schema will give new users a easy place to start with CQL. I have been using an example schema for over a year that tries to cover many data model topics. I have made the examples available on my Githib account: https://github.com/pmcfadin/cassandra-videodb-sample-schema I need to add more sample queries but would like to start getting feedback on any specific CQL features to add. I would like to show as many features as possible and still make it useful. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5983) Include sample CQL schema with distribution
[ https://issues.apache.org/jira/browse/CASSANDRA-5983?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771957#comment-13771957 ] Jonathan Ellis edited comment on CASSANDRA-5983 at 9/19/13 3:06 PM: I like it. Give us a patch to add it to examples/, and update the main README to point people to it. The queries probably needs a lot of comments. was (Author: jbellis): I like it. Lets add it to examples/, and update our README to point people to it. The queries probably needs a lot of comments. Include sample CQL schema with distribution --- Key: CASSANDRA-5983 URL: https://issues.apache.org/jira/browse/CASSANDRA-5983 Project: Cassandra Issue Type: New Feature Components: Contrib Reporter: Patrick McFadin Assignee: Patrick McFadin Priority: Minor Having a sample schema will give new users a easy place to start with CQL. I have been using an example schema for over a year that tries to cover many data model topics. I have made the examples available on my Githib account: https://github.com/pmcfadin/cassandra-videodb-sample-schema I need to add more sample queries but would like to start getting feedback on any specific CQL features to add. I would like to show as many features as possible and still make it useful. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk 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/23156863 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23156863 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23156863 Branch: refs/heads/trunk Commit: 23156863d8c3ab8a8ea490a0cd7c76af63a5e994 Parents: b1d1fac 7453e6f Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:14:23 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:14:23 2013 +0300 -- CHANGES.txt | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/23156863/CHANGES.txt -- diff --cc CHANGES.txt index 4254d70,fcc33f2..fe652f6 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,10 -1,7 +1,15 @@@ +2.1 + * change logging from log4j to logback (CASSANDRA-5883) + * switch to LZ4 compression for internode communication (CASSANDRA-5887) + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971) + * Remove 1.2 network compatibility code (CASSANDRA-5960) + * Remove leveled json manifest migration code (CASSANDRA-5996) + ++ + 2.0.2 + * Make ThriftServer more easlly extensible (CASSANDRA-6058) + + 2.0.1 * add file_cache_size_in_mb setting (CASSANDRA-5661) * Improve error message when yaml contains invalid properties (CASSANDRA-5958)
[jira] [Updated] (CASSANDRA-6058) Make ThriftServer more easlly extensible
[ https://issues.apache.org/jira/browse/CASSANDRA-6058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6058: - Fix Version/s: (was: 2.0.1) 2.0.2 Make ThriftServer more easlly extensible Key: CASSANDRA-6058 URL: https://issues.apache.org/jira/browse/CASSANDRA-6058 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Sam Tunnicliffe Priority: Minor Fix For: 2.0.2 Attachments: 6058.txt Make ThriftServer more easlly extensible -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6060) Remove internal use of Strings for ks/cf namaes
Jonathan Ellis created CASSANDRA-6060: - Summary: Remove internal use of Strings for ks/cf namaes Key: CASSANDRA-6060 URL: https://issues.apache.org/jira/browse/CASSANDRA-6060 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Fix For: 2.1 We toss a lot of Strings around internally, including across the network. Once a request has been Prepared, we ought to be able to encode these as int ids. Unfortuntely, we moved from int to uuid in CASSANDRA-3794, which was a reasonable move at the time, but a uuid is a lot bigger than an int. Now that we have CAS we can allow concurrent schema updates while still using sequential int IDs. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-5863) Create a Decompressed Chunk [block] Cache
[ https://issues.apache.org/jira/browse/CASSANDRA-5863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-5863: - Assignee: Pavel Yaskevich (was: Tyler Hobbs) Create a Decompressed Chunk [block] Cache - Key: CASSANDRA-5863 URL: https://issues.apache.org/jira/browse/CASSANDRA-5863 Project: Cassandra Issue Type: New Feature Components: Core Reporter: T Jake Luciani Assignee: Pavel Yaskevich Fix For: 2.1 Currently, for every read, the CRAR reads each compressed chunk into a byte[], sends it to ICompressor, gets back another byte[] and verifies a checksum. This process is where the majority of time is spent in a read request. Before compression, we would have zero-copy of data and could respond directly from the page-cache. It would be useful to have some kind of Chunk cache that could speed up this process for hot data. Initially this could be a off heap cache but it would be great to put these decompressed chunks onto a SSD so the hot data lives on a fast disk similar to https://github.com/facebook/flashcache. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-5202) CFs should have non deterministic CF ID
[ https://issues.apache.org/jira/browse/CASSANDRA-5202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-5202: -- Summary: CFs should have non deterministic CF ID (was: CFs should have non deterministic) CFs should have non deterministic CF ID --- Key: CASSANDRA-5202 URL: https://issues.apache.org/jira/browse/CASSANDRA-5202 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.1.9 Environment: OS: Windows 7, Server: Cassandra 1.1.9 release drop Client: astyanax 1.56.21, JVM: Sun/Oracle JVM 64 bit (jdk1.6.0_27) Reporter: Marat Bedretdinov Assignee: Yuki Morishita Labels: test Fix For: 2.1 Attachments: 5202-1.1.txt, 5202-2.0.0.txt, astyanax-stress-driver.zip Attached is a driver that sequentially: 1. Drops keyspace 2. Creates keyspace 4. Creates 2 column families 5. Seeds 1M rows with 100 columns 6. Queries these 2 column families The above steps are repeated 1000 times. The following exception is observed at random (race - SEDA?): ERROR [ReadStage:55] 2013-01-29 19:24:52,676 AbstractCassandraDaemon.java (line 135) Exception in thread Thread[ReadStage:55,5,main] java.lang.AssertionError: DecoratedKey(-1, ) != DecoratedKey(62819832764241410631599989027761269388, 313a31) in C:\var\lib\cassandra\data\user_role_reverse_index\business_entity_role\user_role_reverse_index-business_entity_role-hf-1-Data.db at org.apache.cassandra.db.columniterator.SSTableSliceIterator.init(SSTableSliceIterator.java:60) at org.apache.cassandra.db.filter.SliceQueryFilter.getSSTableColumnIterator(SliceQueryFilter.java:67) at org.apache.cassandra.db.filter.QueryFilter.getSSTableColumnIterator(QueryFilter.java:79) at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:256) at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:64) at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1367) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1229) at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1164) at org.apache.cassandra.db.Table.getRow(Table.java:378) at org.apache.cassandra.db.SliceFromReadCommand.getRow(SliceFromReadCommand.java:69) at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:822) at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:1271) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) This exception appears in the server at the time of client submitting a query request (row slice) and not at the time data is seeded. The client times out and this data can no longer be queried as the same exception would always occur from there on. Also on iteration 201, it appears that dropping column families failed and as a result their recreation failed with unique column family name violation (see exception below). Note that the data files are actually gone, so it appears that the server runtime responsible for creating column family was out of sync with the piece that dropped them: Starting dropping column families Dropped column families Starting dropping keyspace Dropped keyspace Starting creating column families Created column families Starting seeding data Total rows inserted: 100 in 5105 ms Iteration: 200; Total running time for 1000 queries is 232; Average running time of 1000 queries is 0 ms Starting dropping column families Dropped column families Starting dropping keyspace Dropped keyspace Starting creating column families Created column families Starting seeding data Total rows inserted: 100 in 5361 ms Iteration: 201; Total running time for 1000 queries is 222; Average running time of 1000 queries is 0 ms Starting dropping column families Starting creating column families Exception in thread main com.netflix.astyanax.connectionpool.exceptions.BadRequestException: BadRequestException: [host=127.0.0.1(127.0.0.1):9160, latency=2468(2469), attempts=1]InvalidRequestException(why:Keyspace names must be case-insensitively unique (user_role_reverse_index conflicts with user_role_reverse_index)) at com.netflix.astyanax.thrift.ThriftConverter.ToConnectionPoolException(ThriftConverter.java:159) at com.netflix.astyanax.thrift.AbstractOperationImpl.execute(AbstractOperationImpl.java:60) at
[jira] [Assigned] (CASSANDRA-4175) Reduce memory, disk space, and cpu usage with a column name/id map
[ https://issues.apache.org/jira/browse/CASSANDRA-4175?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-4175: - Assignee: Jason Brown Reduce memory, disk space, and cpu usage with a column name/id map -- Key: CASSANDRA-4175 URL: https://issues.apache.org/jira/browse/CASSANDRA-4175 Project: Cassandra Issue Type: Improvement Reporter: Jonathan Ellis Assignee: Jason Brown Fix For: 2.1 We spend a lot of memory on column names, both transiently (during reads) and more permanently (in the row cache). Compression mitigates this on disk but not on the heap. The overhead is significant for typical small column values, e.g., ints. Even though we intern once we get to the memtable, this affects writes too via very high allocation rates in the young generation, hence more GC activity. Now that CQL3 provides us some guarantees that column names must be defined before they are inserted, we could create a map of (say) 32-bit int column id, to names, and use that internally right up until we return a resultset to the client. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4338) Experiment with direct buffer in SequentialWriter
[ https://issues.apache.org/jira/browse/CASSANDRA-4338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-4338: - Fix Version/s: 2.1 Experiment with direct buffer in SequentialWriter - Key: CASSANDRA-4338 URL: https://issues.apache.org/jira/browse/CASSANDRA-4338 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Aleksey Yeschenko Priority: Minor Fix For: 2.1 Attachments: 4338-gc.tar.gz, gc-4338-patched.png, gc-trunk.png Using a direct buffer instead of a heap-based byte[] should let us avoid a copy into native memory when we flush the buffer. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-5590) User defined types for CQL3
[ https://issues.apache.org/jira/browse/CASSANDRA-5590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne reassigned CASSANDRA-5590: --- Assignee: Sylvain Lebresne User defined types for CQL3 --- Key: CASSANDRA-5590 URL: https://issues.apache.org/jira/browse/CASSANDRA-5590 Project: Cassandra Issue Type: New Feature Components: API, Core Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 2.1 A typical use case for a collection could be to store a bunch of addresses in a user profile. An address could typically be composed of a few properties: say a street, a city, a postal code and maybe a few phone numbers associated to it. To model that currently with collections, you might use a {{mapstring, blob}}, where the map key could be a string identifying the address, and the value would be all the infos of an address serialized manually (you can use {{text}} instead of {{blob}} and shove everything in a string if you prefer but the principle is the same). This ticket suggests to make this more user friendly by allowing: {noformat} CREATE TYPE address ( street text, city text, zip_code int, phones settext ) CREATE TABLE users ( id uuid PRIMARY KEY, name text, addresses mapstring, address ) {noformat} Under the hood, that type declaration would just be metadata on top of CompositeType (which does mean a limitation would be that we wouldn't allow re-ordering or removal of fields in a custom TYPE). Namely, the {{address}} type would be in practice a {{CompositeType(UTF8Type, UTF8Type, Int32Type, SetType(UTF8Type))}} + some metadata that records the name of each component. In other words, this would mostly be user-friendly syntactic sugar to create composite blobs. I'll note that this would also be useful outside collections, as it might sometimes be more efficient/useful to have such simple composite blob. For instance, you could imagine to have a: {noformat} CREATE TYPE fullname ( firstname text, lastname text ) {noformat} and to rewrite the {{users}} table above as {noformat} CREATE TABLE users ( id uuid PRIMARY KEY, name fullname, addresses mapstring, address ) {noformat} In terms of inserts we'd need a syntax for those new struct. Could be: {noformat} INSERT INTO users (id, name) VALUES (2ad..., { firstname: 'Paul', lastname: 'smith'}); UPDATE users SET addresses = address + { 'home': { street: '...', city: 'SF', zip_code: 94102, phones: {} } } WHERE id=2ad...; {noformat} where the difference with a map is that the key would be a column name (in the CQL3 sense), not a value/literal. Though we might find that a bit confusing and find some other syntax. On the query side, we could optionally allow things like: {noformat} SELECT name.firstname, name.lastname FROM users WHERE id=2ad...; {noformat} One open question however is what type do we send back in the result set for a query like: {noformat} SELECT name FROM users WHERE id=2ad...; {noformat} We could: # return just that it's the user defined type named {{address}}, but that imply the client has to query the cluster metadata to find out the definition of the type. # return the full definition of the type every time. I also note that client side, it might be a tad harder to support such types cleanly in statically type languages than in dynamically typed ones, but that's not the end of the world either. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5862) Switch to adler checksum for sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-5862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772113#comment-13772113 ] T Jake Luciani commented on CASSANDRA-5862: --- Hi Adrien, Interesting benchmark! Did you run your benchmark with JDK7? I ask because I thought they sped up the implementations quite a bit for adler and crc Switch to adler checksum for sstables - Key: CASSANDRA-5862 URL: https://issues.apache.org/jira/browse/CASSANDRA-5862 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: T Jake Luciani Fix For: 2.0.1 Attachments: 5862.txt Adler is significantly faster than CRC32: http://java-performance.info/java-crc32-and-adler32/ (Adler is weaker for short inputs, so we should leave the commitlog alone, as it checksums each mutation individually.) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6059) Improve memory-use defaults
[ https://issues.apache.org/jira/browse/CASSANDRA-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772118#comment-13772118 ] Brandon Williams commented on CASSANDRA-6059: - I'm fine with the memtable change, but the write timeout, especially in a minor, seems like it's going to surprise some people who do large batches. Improve memory-use defaults --- Key: CASSANDRA-6059 URL: https://issues.apache.org/jira/browse/CASSANDRA-6059 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6059.txt Anecdotally, it's still too easy to OOM Cassandra even after moving sstable internals off heap. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6062) Remove Hadoop dependency from ITransportFactory
Aleksey Yeschenko created CASSANDRA-6062: Summary: Remove Hadoop dependency from ITransportFactory Key: CASSANDRA-6062 URL: https://issues.apache.org/jira/browse/CASSANDRA-6062 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Sam Tunnicliffe Priority: Trivial Fix For: 2.0.2 Attachments: 6062.txt Remove Hadoop dependency from ITransportFactory so that implementations don't require the Hadoop libs -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6062) Remove Hadoop dependency from ITransportFactory
[ https://issues.apache.org/jira/browse/CASSANDRA-6062?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-6062: - Attachment: 6062.txt Remove Hadoop dependency from ITransportFactory --- Key: CASSANDRA-6062 URL: https://issues.apache.org/jira/browse/CASSANDRA-6062 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Sam Tunnicliffe Priority: Trivial Fix For: 2.0.2 Attachments: 6062.txt Remove Hadoop dependency from ITransportFactory so that implementations don't require the Hadoop libs -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[1/3] git commit: Merge remote-tracking branch 'origin/cassandra-2.0' into cassandra-2.0
Updated Branches: refs/heads/trunk ec7a3e594 - e5a7cede6 Merge remote-tracking branch 'origin/cassandra-2.0' into cassandra-2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cef6552c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cef6552c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cef6552c Branch: refs/heads/trunk Commit: cef6552c26d79baff1ecfcc4a9f556681c0cb15f Parents: fb7b71f c2a36e7 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 10:22:30 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 10:22:30 2013 -0500 -- src/java/org/apache/cassandra/thrift/ThriftServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --
[jira] [Updated] (CASSANDRA-5916) gossip and tokenMetadata get hostId out of sync on failed replace_node with the same IP address
[ https://issues.apache.org/jira/browse/CASSANDRA-5916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan updated CASSANDRA-5916: --- Assignee: Brandon Williams (was: Jeremiah Jordan) gossip and tokenMetadata get hostId out of sync on failed replace_node with the same IP address --- Key: CASSANDRA-5916 URL: https://issues.apache.org/jira/browse/CASSANDRA-5916 Project: Cassandra Issue Type: Bug Reporter: Brandon Williams Assignee: Brandon Williams Fix For: 1.2.11 If you try to replace_node an existing, live hostId, it will error out. However if you're using an existing IP to do this (as in, you chose the wrong uuid to replace on accident) then the newly generated hostId wipes out the old one in TMD, and when you do try to replace it replace_node will complain it does not exist. Examination of gossipinfo still shows the old hostId, however now you can't replace it either. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-5916) gossip and tokenMetadata get hostId out of sync on failed replace_node with the same IP address
[ https://issues.apache.org/jira/browse/CASSANDRA-5916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan reassigned CASSANDRA-5916: -- Assignee: Jeremiah Jordan (was: Brandon Williams) gossip and tokenMetadata get hostId out of sync on failed replace_node with the same IP address --- Key: CASSANDRA-5916 URL: https://issues.apache.org/jira/browse/CASSANDRA-5916 Project: Cassandra Issue Type: Bug Reporter: Brandon Williams Assignee: Jeremiah Jordan Fix For: 1.2.11 If you try to replace_node an existing, live hostId, it will error out. However if you're using an existing IP to do this (as in, you chose the wrong uuid to replace on accident) then the newly generated hostId wipes out the old one in TMD, and when you do try to replace it replace_node will complain it does not exist. Examination of gossipinfo still shows the old hostId, however now you can't replace it either. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[2/3] git commit: Remove Hadoop dependency from ITransportFactory
Remove Hadoop dependency from ITransportFactory patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-6062 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2336d94e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2336d94e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2336d94e Branch: refs/heads/trunk Commit: 2336d94ef3a286bc9b7331086085eca56f915e76 Parents: cef6552 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 21:05:15 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 21:05:15 2013 +0300 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cli/CliMain.java | 28 + .../org/apache/cassandra/cli/CliOptions.java| 15 + .../apache/cassandra/cli/CliSessionState.java | 6 ++-- .../hadoop/AbstractColumnFamilyInputFormat.java | 11 --- .../AbstractColumnFamilyOutputFormat.java | 2 +- .../apache/cassandra/hadoop/ConfigHelper.java | 33 +++- .../cassandra/thrift/ITransportFactory.java | 14 +++-- .../thrift/TFramedTransportFactory.java | 17 +- 9 files changed, 50 insertions(+), 77 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2336d94e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ae6eedc..a25d03e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 2.0.2 * Make ThriftServer more easlly extensible (CASSANDRA-6058) + * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2336d94e/src/java/org/apache/cassandra/cli/CliMain.java -- diff --git a/src/java/org/apache/cassandra/cli/CliMain.java b/src/java/org/apache/cassandra/cli/CliMain.java index 144bd2e..77a9020 100644 --- a/src/java/org/apache/cassandra/cli/CliMain.java +++ b/src/java/org/apache/cassandra/cli/CliMain.java @@ -24,16 +24,15 @@ import java.io.IOException; import java.nio.charset.CharacterCodingException; import java.util.*; -import jline.ConsoleReader; -import jline.History; import org.apache.cassandra.auth.IAuthenticator; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.thrift.*; import org.apache.cassandra.utils.FBUtilities; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; +import jline.ConsoleReader; +import jline.History; /** * Cassandra Command Line Interface (CLI) Main @@ -58,19 +57,12 @@ public class CliMain */ public static void connect(String server, int port) { -TSocket socket = new TSocket(server, port); - if (transport != null) transport.close(); -transport = sessionState.transportFactory.getTransport(socket); -TBinaryProtocol binaryProtocol = new TBinaryProtocol(transport, true, true); -Cassandra.Client cassandraClient = new Cassandra.Client(binaryProtocol); - try { -if (!transport.isOpen()) -transport.open(); +transport = sessionState.transportFactory.openTransport(server, port); } catch (Exception e) { @@ -80,7 +72,8 @@ public class CliMain throw new RuntimeException(Exception connecting to + server + / + port + . Reason: + error + .); } -thriftClient = cassandraClient; +TBinaryProtocol binaryProtocol = new TBinaryProtocol(transport, true, true); +thriftClient = new Cassandra.Client(binaryProtocol); cliClient = new CliClient(sessionState, thriftClient); if ((sessionState.username != null) (sessionState.password != null)) @@ -125,12 +118,7 @@ public class CliMain cliClient.setKeySpace(sessionState.keyspace); updateCompletor(CliUtils.getCfNamesByKeySpace(cliClient.getKSMetaData(sessionState.keyspace))); } -catch (InvalidRequestException e) -{ -sessionState.err.println(Keyspace + sessionState.keyspace + not found); -return; -} -catch (NotFoundException e) +catch (InvalidRequestException | NotFoundException e) { sessionState.err.println(Keyspace + sessionState.keyspace + not found); return; @@ -201,7 +189,7 @@ public class CliMain completer.setCandidateStrings(strs); } -public
[jira] [Commented] (CASSANDRA-6059) Improve memory-use defaults
[ https://issues.apache.org/jira/browse/CASSANDRA-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772152#comment-13772152 ] Brandon Williams commented on CASSANDRA-6059: - Fair enough, but a 5x reduction seems a tad extreme. I don't want to bikeshed a number though, so +1. Improve memory-use defaults --- Key: CASSANDRA-6059 URL: https://issues.apache.org/jira/browse/CASSANDRA-6059 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6059.txt Anecdotally, it's still too easy to OOM Cassandra even after moving sstable internals off heap. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
git commit: Remove Hadoop dependency from ITransportFactory
Updated Branches: refs/heads/cassandra-2.0 cef6552c2 - 2336d94ef Remove Hadoop dependency from ITransportFactory patch by Sam Tunnicliffe; reviewed by Aleksey Yeschenko for CASSANDRA-6062 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2336d94e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2336d94e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2336d94e Branch: refs/heads/cassandra-2.0 Commit: 2336d94ef3a286bc9b7331086085eca56f915e76 Parents: cef6552 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 21:05:15 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 21:05:15 2013 +0300 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cli/CliMain.java | 28 + .../org/apache/cassandra/cli/CliOptions.java| 15 + .../apache/cassandra/cli/CliSessionState.java | 6 ++-- .../hadoop/AbstractColumnFamilyInputFormat.java | 11 --- .../AbstractColumnFamilyOutputFormat.java | 2 +- .../apache/cassandra/hadoop/ConfigHelper.java | 33 +++- .../cassandra/thrift/ITransportFactory.java | 14 +++-- .../thrift/TFramedTransportFactory.java | 17 +- 9 files changed, 50 insertions(+), 77 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2336d94e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index ae6eedc..a25d03e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,6 @@ 2.0.2 * Make ThriftServer more easlly extensible (CASSANDRA-6058) + * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980) http://git-wip-us.apache.org/repos/asf/cassandra/blob/2336d94e/src/java/org/apache/cassandra/cli/CliMain.java -- diff --git a/src/java/org/apache/cassandra/cli/CliMain.java b/src/java/org/apache/cassandra/cli/CliMain.java index 144bd2e..77a9020 100644 --- a/src/java/org/apache/cassandra/cli/CliMain.java +++ b/src/java/org/apache/cassandra/cli/CliMain.java @@ -24,16 +24,15 @@ import java.io.IOException; import java.nio.charset.CharacterCodingException; import java.util.*; -import jline.ConsoleReader; -import jline.History; import org.apache.cassandra.auth.IAuthenticator; import org.apache.cassandra.io.util.FileUtils; import org.apache.cassandra.thrift.*; import org.apache.cassandra.utils.FBUtilities; import org.apache.thrift.TException; import org.apache.thrift.protocol.TBinaryProtocol; -import org.apache.thrift.transport.TSocket; import org.apache.thrift.transport.TTransport; +import jline.ConsoleReader; +import jline.History; /** * Cassandra Command Line Interface (CLI) Main @@ -58,19 +57,12 @@ public class CliMain */ public static void connect(String server, int port) { -TSocket socket = new TSocket(server, port); - if (transport != null) transport.close(); -transport = sessionState.transportFactory.getTransport(socket); -TBinaryProtocol binaryProtocol = new TBinaryProtocol(transport, true, true); -Cassandra.Client cassandraClient = new Cassandra.Client(binaryProtocol); - try { -if (!transport.isOpen()) -transport.open(); +transport = sessionState.transportFactory.openTransport(server, port); } catch (Exception e) { @@ -80,7 +72,8 @@ public class CliMain throw new RuntimeException(Exception connecting to + server + / + port + . Reason: + error + .); } -thriftClient = cassandraClient; +TBinaryProtocol binaryProtocol = new TBinaryProtocol(transport, true, true); +thriftClient = new Cassandra.Client(binaryProtocol); cliClient = new CliClient(sessionState, thriftClient); if ((sessionState.username != null) (sessionState.password != null)) @@ -125,12 +118,7 @@ public class CliMain cliClient.setKeySpace(sessionState.keyspace); updateCompletor(CliUtils.getCfNamesByKeySpace(cliClient.getKSMetaData(sessionState.keyspace))); } -catch (InvalidRequestException e) -{ -sessionState.err.println(Keyspace + sessionState.keyspace + not found); -return; -} -catch (NotFoundException e) +catch (InvalidRequestException | NotFoundException e) { sessionState.err.println(Keyspace + sessionState.keyspace + not found); return; @@ -201,7 +189,7 @@ public class
[jira] [Commented] (CASSANDRA-4175) Reduce memory, disk space, and cpu usage with a column name/id map
[ https://issues.apache.org/jira/browse/CASSANDRA-4175?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772023#comment-13772023 ] Sylvain Lebresne commented on CASSANDRA-4175: - I'm pretty sure we'd need CASSANDRA-5417 to make that doable (in fact, that's one of my original motivation for doing CASSANDRA-5417). Namely, we don't want a cell name/id map, we want a cql3 column/id map, otherwise this loose most interest. And we can't do a cql3 column/id map if we store cell name as opaque byte buffers. To be more precise, I don't deny that a cell name/id map could be a start and would in fact server some use cases, but I'm a bit reluctant in implementing that knowing that we want to change to a cql3 column/id map sooner than later because I suspect it'll be a lot easier to do the right thing to start with rather than doing cell name/id map and then have a painful time to switch a cql3 column/id one without breaking backward compatibility. Besides, I also suspect there is a bunch of refactorings that are in CASSANDRA-5417 that would be needed here as well, so working on both separately without coordination is likely to be frustrating and a duplication of effort. Anyway, I do plan on getting back to CASSANDRA-5417 asap (though it will unlikely be like next week) so maybe we can hold a bit on that one until then? If I've made no progress on CASSANDRA-5417 in say a month or two, and people really want this, we can re-evaluate? Reduce memory, disk space, and cpu usage with a column name/id map -- Key: CASSANDRA-4175 URL: https://issues.apache.org/jira/browse/CASSANDRA-4175 Project: Cassandra Issue Type: Improvement Reporter: Jonathan Ellis Assignee: Jason Brown Fix For: 2.1 We spend a lot of memory on column names, both transiently (during reads) and more permanently (in the row cache). Compression mitigates this on disk but not on the heap. The overhead is significant for typical small column values, e.g., ints. Even though we intern once we get to the memtable, this affects writes too via very high allocation rates in the young generation, hence more GC activity. Now that CQL3 provides us some guarantees that column names must be defined before they are inserted, we could create a map of (say) 32-bit int column id, to names, and use that internally right up until we return a resultset to the client. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5862) Switch to adler checksum for sstables
[ https://issues.apache.org/jira/browse/CASSANDRA-5862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772131#comment-13772131 ] Adrien Grand commented on CASSANDRA-5862: - I ran this benchmark several weeks ago and I'm not sure but I think it was with JDK7. I'll run it again to be sure... Switch to adler checksum for sstables - Key: CASSANDRA-5862 URL: https://issues.apache.org/jira/browse/CASSANDRA-5862 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: T Jake Luciani Fix For: 2.0.1 Attachments: 5862.txt Adler is significantly faster than CRC32: http://java-performance.info/java-crc32-and-adler32/ (Adler is weaker for short inputs, so we should leave the commitlog alone, as it checksums each mutation individually.) -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5732) Can not query secondary index
[ https://issues.apache.org/jira/browse/CASSANDRA-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772032#comment-13772032 ] Daniel Meyer edited comment on CASSANDRA-5732 at 9/19/13 4:56 PM: -- This is definitly a bug in latest 1.2. Just reproduced in 1.2.10 Repro is easy. Create single node cluster off of latest 1.2 branch and do the following: cqlsh:ks CREATE TABLE test ( row text, name text, PRIMARY KEY (row) ); cqlsh:ks ALTER TABLE test WITH caching='all'; cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row1', 'daniel' ); cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row2', 'ryan' ); cqlsh:ks CREATE INDEX on test (name); cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how row is returned Stop node and set: row_cache_size_in_mb: 200 Start node again and follow this procedure: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; #Nothing is returned from this query Now stop the node and set: row_cache_size_in_mb: 0 start the node and do the following: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how the row is returned. was (Author: dmeyer): This is definitly a bug in latest 1.2. Just reproduced in 1.2.10 Repro is easy. Create single node cluster off of latest 1.2 branch and do the following: cqlsh use ks; cqlsh:ks CREATE TABLE test ( row text, name text, PRIMARY KEY (row) ); cqlsh:ks ALTER TABLE test WITH caching='all'; cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row1', 'daniel' ); cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row2', 'ryan' ); cqlsh:ks CREATE INDEX on test (name); cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how row is returned Stop node and set: row_cache_size_in_mb: 200 Start node again and follow this procedure: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; #Nothing is returned from this query Now stop the node and set: row_cache_size_in_mb: 0 start the node and do the following: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how the row is returned. Can not query secondary index - Key: CASSANDRA-5732 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.5 Environment: Windows 8, Jre 1.6.0_45 32-bit Reporter: Tony Anecito Assignee: Daniel Meyer Noticed after taking a column family that already existed and assigning to an IntegerType index_type:KEYS and the caching was already set to 'ALL' that the prepared statement do not return rows neither did it throw an exception. Here is the sequence. 1. Starting state query running with caching off for a Column Family with the query using the secondary index for te WHERE clause. 2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. Cassandra-cli Describe shows column family caching set to ALL 3. Rerun query and it works. 4. Restart Cassandra and run query and no rows returned. Cassandra-cli Describe shows column family caching set to ALL 5. Set Column Family caching to NONE using Cassandra-cli and update CQL. Rerun query and no rows returned. Cassandra-cli Describe for column family shows caching set to NONE. 6. Restart Cassandra. Rerun query and it is working again. We are now back to the starting state. Best Regards, -Tony -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5138) Provide a better CQL error when table data does not conform to CQL metadata.
[ https://issues.apache.org/jira/browse/CASSANDRA-5138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772031#comment-13772031 ] Elvis Pranskevichus edited comment on CASSANDRA-5138 at 9/19/13 4:56 PM: - Another related issue. This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component. CREATE TABLE test ( id text, attr text, value text, PRIMARY KEY (id, attr) ); The storage column structure for the table would be: |key|{attr,}|[empty] |key|{attr,value}|value There is no way to insert the first column (record demarcation) as it fails with Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column was (Author: elprans): Another related issue. This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component. CREATE TABLE test ( id text, attr text, value text, PRIMARY KEY (id, attr) ); The storage column structure for the table would be: key {attr,}[empty] key {attr,value} value There is no way to insert the first column (record demarcation) as it fails with Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column Provide a better CQL error when table data does not conform to CQL metadata. Key: CASSANDRA-5138 URL: https://issues.apache.org/jira/browse/CASSANDRA-5138 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.0 Environment: Mac OS X running 1.2 Reporter: Brian ONeill Assignee: Sylvain Lebresne Priority: Minor Fix For: 2.0 Attachments: 5138-2.txt, 5138.txt, northpole.cql When you create a table via CQL, then insert into it via Thrift. If you inadvertently leave out a component of the column name, in CQL you receive a: TSocket read 0 bytes Server-side the following exception is logged: ERROR 15:19:18,016 Error occurred during processing of message. java.lang.ArrayIndexOutOfBoundsException: 3 at org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43) at org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31) at org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:138) at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:805) at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:145) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:61) at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132) at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140) at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1686) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) I'll submit a schema, and steps to reproduce. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6059) Improve memory-use defaults
[ https://issues.apache.org/jira/browse/CASSANDRA-6059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772134#comment-13772134 ] Jonathan Ellis commented on CASSANDRA-6059: --- I respect that, but I still think it's time we fixed it: - Current value of 10s is mostly an accident, because we didn't want to surprise people back in 1.1? when we split the timeout values apart. At some point that logic needs to take a back seat to giving people actual good defaults. - We're very early in 2.0 still, mass adoption is still ahead of us. - Typically people doing minor version updates don't rip-and-replace cassandra.yaml so they will keep using their old settings. Improve memory-use defaults --- Key: CASSANDRA-6059 URL: https://issues.apache.org/jira/browse/CASSANDRA-6059 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6059.txt Anecdotally, it's still too easy to OOM Cassandra even after moving sstable internals off heap. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (CASSANDRA-5138) Provide a better CQL error when table data does not conform to CQL metadata.
[ https://issues.apache.org/jira/browse/CASSANDRA-5138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772031#comment-13772031 ] Elvis Pranskevichus edited comment on CASSANDRA-5138 at 9/19/13 4:57 PM: - Another related issue. This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component. {code:sql} CREATE TABLE test ( id text, attr text, value text, PRIMARY KEY (id, attr) ); {code} The storage column structure for the table would be: |key|{attr,}|[empty] |key|{attr,value}|value There is no way to insert the first column (record demarcation) as it fails with Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column was (Author: elprans): Another related issue. This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component. CREATE TABLE test ( id text, attr text, value text, PRIMARY KEY (id, attr) ); The storage column structure for the table would be: |key|{attr,}|[empty] |key|{attr,value}|value There is no way to insert the first column (record demarcation) as it fails with Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column Provide a better CQL error when table data does not conform to CQL metadata. Key: CASSANDRA-5138 URL: https://issues.apache.org/jira/browse/CASSANDRA-5138 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.0 Environment: Mac OS X running 1.2 Reporter: Brian ONeill Assignee: Sylvain Lebresne Priority: Minor Fix For: 2.0 Attachments: 5138-2.txt, 5138.txt, northpole.cql When you create a table via CQL, then insert into it via Thrift. If you inadvertently leave out a component of the column name, in CQL you receive a: TSocket read 0 bytes Server-side the following exception is logged: ERROR 15:19:18,016 Error occurred during processing of message. java.lang.ArrayIndexOutOfBoundsException: 3 at org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43) at org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31) at org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:138) at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:805) at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:145) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:61) at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132) at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140) at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1686) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) I'll submit a schema, and steps to reproduce. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5138) Provide a better CQL error when table data does not conform to CQL metadata.
[ https://issues.apache.org/jira/browse/CASSANDRA-5138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772099#comment-13772099 ] Elvis Pranskevichus commented on CASSANDRA-5138: I think the best fix would be to make CassandraServer insert row markers into CQL3 tables the same way CQL modification statements do. Provide a better CQL error when table data does not conform to CQL metadata. Key: CASSANDRA-5138 URL: https://issues.apache.org/jira/browse/CASSANDRA-5138 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.0 Environment: Mac OS X running 1.2 Reporter: Brian ONeill Assignee: Sylvain Lebresne Priority: Minor Fix For: 2.0 Attachments: 5138-2.txt, 5138.txt, northpole.cql When you create a table via CQL, then insert into it via Thrift. If you inadvertently leave out a component of the column name, in CQL you receive a: TSocket read 0 bytes Server-side the following exception is logged: ERROR 15:19:18,016 Error occurred during processing of message. java.lang.ArrayIndexOutOfBoundsException: 3 at org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43) at org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31) at org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:138) at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:805) at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:145) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:61) at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132) at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140) at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1686) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) I'll submit a schema, and steps to reproduce. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-5732) Can not query secondary index
[ https://issues.apache.org/jira/browse/CASSANDRA-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-5732: - Assignee: Sam Tunnicliffe (was: Daniel Meyer) Suspect this might be up your alley, [~beobal]. Can not query secondary index - Key: CASSANDRA-5732 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.5 Environment: Windows 8, Jre 1.6.0_45 32-bit Reporter: Tony Anecito Assignee: Sam Tunnicliffe Noticed after taking a column family that already existed and assigning to an IntegerType index_type:KEYS and the caching was already set to 'ALL' that the prepared statement do not return rows neither did it throw an exception. Here is the sequence. 1. Starting state query running with caching off for a Column Family with the query using the secondary index for te WHERE clause. 2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. Cassandra-cli Describe shows column family caching set to ALL 3. Rerun query and it works. 4. Restart Cassandra and run query and no rows returned. Cassandra-cli Describe shows column family caching set to ALL 5. Set Column Family caching to NONE using Cassandra-cli and update CQL. Rerun query and no rows returned. Cassandra-cli Describe for column family shows caching set to NONE. 6. Restart Cassandra. Rerun query and it is working again. We are now back to the starting state. Best Regards, -Tony -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[3/3] git commit: Merge branch 'cassandra-2.0' into trunk
Merge branch 'cassandra-2.0' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e5a7cede Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e5a7cede Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e5a7cede Branch: refs/heads/trunk Commit: e5a7cede6c9bf06854941bb2e31343c66deb3e54 Parents: ec7a3e5 2336d94 Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 21:06:20 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 21:06:20 2013 +0300 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/cli/CliMain.java | 28 + .../org/apache/cassandra/cli/CliOptions.java| 15 + .../apache/cassandra/cli/CliSessionState.java | 6 ++-- .../hadoop/AbstractColumnFamilyInputFormat.java | 11 --- .../AbstractColumnFamilyOutputFormat.java | 2 +- .../apache/cassandra/hadoop/ConfigHelper.java | 33 +++- .../cassandra/thrift/ITransportFactory.java | 14 +++-- .../thrift/TFramedTransportFactory.java | 17 +- 9 files changed, 50 insertions(+), 77 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e5a7cede/CHANGES.txt -- diff --cc CHANGES.txt index 942063e,a25d03e..44c7f1b --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,13 -1,6 +1,14 @@@ +2.1 + * change logging from log4j to logback (CASSANDRA-5883) + * switch to LZ4 compression for internode communication (CASSANDRA-5887) + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971) + * Remove 1.2 network compatibility code (CASSANDRA-5960) + * Remove leveled json manifest migration code (CASSANDRA-5996) + + 2.0.2 * Make ThriftServer more easlly extensible (CASSANDRA-6058) + * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: * Allow cache-keys-to-save to be set at runtime (CASSANDRA-5980)
[3/3] git commit: merge from 2.0
merge from 2.0 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fee30d5a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fee30d5a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fee30d5a Branch: refs/heads/trunk Commit: fee30d5ad654a90391f5871a7393330b34fa8ebb Parents: e5a7ced 72be2a4 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 14:41:06 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 14:41:06 2013 -0500 -- CHANGES.txt | 1 + NEWS.txt | 19 +++ conf/cassandra.yaml | 4 ++-- src/java/org/apache/cassandra/config/Config.java | 2 +- .../cassandra/config/DatabaseDescriptor.java | 2 +- 5 files changed, 20 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fee30d5a/CHANGES.txt -- diff --cc CHANGES.txt index 44c7f1b,979d6b0..2b5bf79 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,12 -1,5 +1,13 @@@ +2.1 + * change logging from log4j to logback (CASSANDRA-5883) + * switch to LZ4 compression for internode communication (CASSANDRA-5887) + * Stop using Thrift-generated Index* classes internally (CASSANDRA-5971) + * Remove 1.2 network compatibility code (CASSANDRA-5960) + * Remove leveled json manifest migration code (CASSANDRA-5996) + + 2.0.2 + * Improve memory use defaults (CASSANDRA-5069) * Make ThriftServer more easlly extensible (CASSANDRA-6058) * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: http://git-wip-us.apache.org/repos/asf/cassandra/blob/fee30d5a/NEWS.txt -- diff --cc NEWS.txt index 9b0938d,3712073..8990769 --- a/NEWS.txt +++ b/NEWS.txt @@@ -13,15 -13,15 +13,26 @@@ restore snapshots created with the prev 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +2.1 +=== +Upgrading +- + - Rolling upgrades from anything pre-2.0 is not supported. -- 2.0 must be atleast started before upgrading to 2.1 due to - the fact that the old JSON leveled manifest is migrated into - the sstable metadata files on startup in 2.0 and this code is - gone from 2.1. ++ - For leveled compaction users, 2.0 must be atleast started before ++ upgrading to 2.1 due to the fact that the old JSON leveled ++ manifest is migrated into the sstable metadata files on startup ++ in 2.0 and this code is gone from 2.1. ++ ++ + 2.0.2 + = + + Upgrading + - + - The default memtable allocation has changed from 1/3 of heap to 1/4 + of heap. Also, default (single-partition) read and write timeouts + have been reduced from 10s to 5s and 2s, respectively. + 2.0.0 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/fee30d5a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java --
[1/3] git commit: improve memory use and timeout defaults patch by jbellis; reviewed by brandonwilliams for CASSANDRA-6059
Updated Branches: refs/heads/cassandra-2.0 2336d94ef - 72be2a436 refs/heads/trunk e5a7cede6 - fee30d5ad improve memory use and timeout defaults patch by jbellis; reviewed by brandonwilliams for CASSANDRA-6059 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/72be2a43 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/72be2a43 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/72be2a43 Branch: refs/heads/cassandra-2.0 Commit: 72be2a4360caa0f9c315097bbd5d9199a032821c Parents: 2336d94 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 14:37:33 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 14:37:33 2013 -0500 -- CHANGES.txt | 1 + NEWS.txt | 10 ++ conf/cassandra.yaml | 4 ++-- src/java/org/apache/cassandra/config/Config.java | 2 +- .../org/apache/cassandra/config/DatabaseDescriptor.java | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index a25d03e..979d6b0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.2 + * Improve memory use defaults (CASSANDRA-5069) * Make ThriftServer more easlly extensible (CASSANDRA-6058) * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 68da597..3712073 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,16 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +2.0.2 += + +Upgrading +- +- The default memtable allocation has changed from 1/3 of heap to 1/4 + of heap. Also, default (single-partition) read and write timeouts + have been reduced from 10s to 5s and 2s, respectively. + + 2.0.0 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index df4501e..4af7275 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -460,11 +460,11 @@ compaction_preheat_key_cache: true # stream_throughput_outbound_megabits_per_sec: 200 # How long the coordinator should wait for read operations to complete -read_request_timeout_in_ms: 1 +read_request_timeout_in_ms: 5000 # How long the coordinator should wait for seq or index scans to complete range_request_timeout_in_ms: 1 # How long the coordinator should wait for writes to complete -write_request_timeout_in_ms: 1 +write_request_timeout_in_ms: 2000 # How long a coordinator should continue to retry a CAS operation # that contends with other proposals for the same row cas_contention_timeout_in_ms: 1000 http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/src/java/org/apache/cassandra/config/Config.java -- diff --git a/src/java/org/apache/cassandra/config/Config.java b/src/java/org/apache/cassandra/config/Config.java index 0414269..c6fd020 100644 --- a/src/java/org/apache/cassandra/config/Config.java +++ b/src/java/org/apache/cassandra/config/Config.java @@ -56,7 +56,7 @@ public class Config public Long range_request_timeout_in_ms = new Long(1); -public Long write_request_timeout_in_ms = new Long(1); +public Long write_request_timeout_in_ms = new Long(2000); public Long cas_contention_timeout_in_ms = new Long(1000); http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 42459e4..572a06f 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -249,7 +249,7 @@ public class DatabaseDescriptor conf.file_cache_size_in_mb = Math.min(512, (int) (Runtime.getRuntime().maxMemory() / (4 * 1048576))); if (conf.memtable_total_space_in_mb == null) -conf.memtable_total_space_in_mb = (int) (Runtime.getRuntime().maxMemory() / (3 * 1048576));
[2/3] git commit: improve memory use and timeout defaults patch by jbellis; reviewed by brandonwilliams for CASSANDRA-6059
improve memory use and timeout defaults patch by jbellis; reviewed by brandonwilliams for CASSANDRA-6059 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/72be2a43 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/72be2a43 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/72be2a43 Branch: refs/heads/trunk Commit: 72be2a4360caa0f9c315097bbd5d9199a032821c Parents: 2336d94 Author: Jonathan Ellis jbel...@apache.org Authored: Thu Sep 19 14:37:33 2013 -0500 Committer: Jonathan Ellis jbel...@apache.org Committed: Thu Sep 19 14:37:33 2013 -0500 -- CHANGES.txt | 1 + NEWS.txt | 10 ++ conf/cassandra.yaml | 4 ++-- src/java/org/apache/cassandra/config/Config.java | 2 +- .../org/apache/cassandra/config/DatabaseDescriptor.java | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index a25d03e..979d6b0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.2 + * Improve memory use defaults (CASSANDRA-5069) * Make ThriftServer more easlly extensible (CASSANDRA-6058) * Remove Hadoop dependency from ITransportFactory (CASSANDRA-6062) Merged from 1.2: http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 68da597..3712073 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,16 @@ restore snapshots created with the previous major version using the 'sstableloader' tool. You can upgrade the file format of your snapshots using the provided 'sstableupgrade' tool. +2.0.2 += + +Upgrading +- +- The default memtable allocation has changed from 1/3 of heap to 1/4 + of heap. Also, default (single-partition) read and write timeouts + have been reduced from 10s to 5s and 2s, respectively. + + 2.0.0 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/conf/cassandra.yaml -- diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index df4501e..4af7275 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -460,11 +460,11 @@ compaction_preheat_key_cache: true # stream_throughput_outbound_megabits_per_sec: 200 # How long the coordinator should wait for read operations to complete -read_request_timeout_in_ms: 1 +read_request_timeout_in_ms: 5000 # How long the coordinator should wait for seq or index scans to complete range_request_timeout_in_ms: 1 # How long the coordinator should wait for writes to complete -write_request_timeout_in_ms: 1 +write_request_timeout_in_ms: 2000 # How long a coordinator should continue to retry a CAS operation # that contends with other proposals for the same row cas_contention_timeout_in_ms: 1000 http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/src/java/org/apache/cassandra/config/Config.java -- diff --git a/src/java/org/apache/cassandra/config/Config.java b/src/java/org/apache/cassandra/config/Config.java index 0414269..c6fd020 100644 --- a/src/java/org/apache/cassandra/config/Config.java +++ b/src/java/org/apache/cassandra/config/Config.java @@ -56,7 +56,7 @@ public class Config public Long range_request_timeout_in_ms = new Long(1); -public Long write_request_timeout_in_ms = new Long(1); +public Long write_request_timeout_in_ms = new Long(2000); public Long cas_contention_timeout_in_ms = new Long(1000); http://git-wip-us.apache.org/repos/asf/cassandra/blob/72be2a43/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java index 42459e4..572a06f 100644 --- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java +++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java @@ -249,7 +249,7 @@ public class DatabaseDescriptor conf.file_cache_size_in_mb = Math.min(512, (int) (Runtime.getRuntime().maxMemory() / (4 * 1048576))); if (conf.memtable_total_space_in_mb == null) -conf.memtable_total_space_in_mb = (int) (Runtime.getRuntime().maxMemory() / (3 * 1048576)); +conf.memtable_total_space_in_mb = (int) (Runtime.getRuntime().maxMemory() / (4 * 1048576)); if
[jira] [Commented] (CASSANDRA-6061) Rewrite TokenMetadata
[ https://issues.apache.org/jira/browse/CASSANDRA-6061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772102#comment-13772102 ] Jonathan Ellis commented on CASSANDRA-6061: --- CASSANDRA-2434 may also be related. Rewrite TokenMetadata - Key: CASSANDRA-6061 URL: https://issues.apache.org/jira/browse/CASSANDRA-6061 Project: Cassandra Issue Type: Task Components: Core Reporter: Jonathan Ellis Assignee: Tyler Hobbs Priority: Minor Feels like this mostly works but is generally fragile (see: shuffle). Would be good to get a fresh perspective on it and see if we can do better. Bonus would be, ability to bootstrap multiple nodes w/o Two Minute Rule. Probably would involve using LWT on pending ranges state. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5020) Time to switch back to byte[] internally?
[ https://issues.apache.org/jira/browse/CASSANDRA-5020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772108#comment-13772108 ] T Jake Luciani commented on CASSANDRA-5020: --- I've been working on this along with CASSANDRA-5417, it's basically a wrapper on ByteBuffer that turns the BB into a native type, works well for composites. Time to switch back to byte[] internally? - Key: CASSANDRA-5020 URL: https://issues.apache.org/jira/browse/CASSANDRA-5020 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Fix For: 2.1 We switched to ByteBuffer for column names and values back in 0.7, which gave us a short term performance boost on mmap'd reads, but we gave that up when we switched to refcounted sstables in 1.0. (refcounting all the way up the read path would be too painful, so we copy into an on-heap buffer when reading from an sstable, then release the reference.) A HeapByteBuffer wastes a lot of memory compared to a byte[] (5 more ints, a long, and a boolean). The hard problem here is how to do the arena allocation we do on writes, which has been very successful in reducing STW CMS from heap fragmentation. ByteBuffer is a good fit there. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6063) Rename internal classes and interfaces to represent the modern Cassandra terminology
Aleksey Yeschenko created CASSANDRA-6063: Summary: Rename internal classes and interfaces to represent the modern Cassandra terminology Key: CASSANDRA-6063 URL: https://issues.apache.org/jira/browse/CASSANDRA-6063 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Priority: Minor Fix For: 3.0 Some of the class names we are using aren't exactly clear to the newcomers. We've already gone through the Table-Keyspace renaming, but it's not enough. Other things to consider: - ColumnFamilyStore - Table - Column - Cell (where appropriate) - ColumnFamily - CellFormation (CellGroup, something different?) - Row - Partition (where appropriate) - RowMutation - PartitionMutation -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-6067) Use non-pooling readers with openForBatch
[ https://issues.apache.org/jira/browse/CASSANDRA-6067?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-6067: -- Attachment: 6067-v2.txt v2 fixes BSF to not extend PSF. (Checked and this is fine in 1.2.) Use non-pooling readers with openForBatch - Key: CASSANDRA-6067 URL: https://issues.apache.org/jira/browse/CASSANDRA-6067 Project: Cassandra Issue Type: Bug Components: Core, Tools Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6067.txt, 6067-v2.txt Looks like CASSANDRA- was incorrectly merged forward. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6067) Use non-pooling readers with openForBatch
[ https://issues.apache.org/jira/browse/CASSANDRA-6067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772253#comment-13772253 ] Yuki Morishita commented on CASSANDRA-6067: --- BufferedSegmentedFile extends PoolingSegmentedFile. Still seeing the following error when bulk load: {code} Exception in thread main java.lang.ExceptionInInitializerError at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:36) at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:161) at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:142) at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:904) at org.apache.cassandra.io.sstable.SSTableReader.getPosition(SSTableReader.java:839) at org.apache.cassandra.io.sstable.SSTableReader.getPositionsForRanges(SSTableReader.java:751) at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:122) at java.io.File.list(File.java:1087) at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:73) at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:155) at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:66) Caused by: java.lang.NullPointerException at org.apache.cassandra.config.DatabaseDescriptor.getFileCacheSizeInMB(DatabaseDescriptor.java:1145) at org.apache.cassandra.service.FileCacheService.clinit(FileCacheService.java:41) ... 11 more {code} Use non-pooling readers with openForBatch - Key: CASSANDRA-6067 URL: https://issues.apache.org/jira/browse/CASSANDRA-6067 Project: Cassandra Issue Type: Bug Components: Core, Tools Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6067.txt Looks like CASSANDRA- was incorrectly merged forward. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6068) Support login/password auth in cassandra-stress
Aleksey Yeschenko created CASSANDRA-6068: Summary: Support login/password auth in cassandra-stress Key: CASSANDRA-6068 URL: https://issues.apache.org/jira/browse/CASSANDRA-6068 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Assignee: Aleksey Yeschenko Priority: Trivial Fix For: 1.2.11, 2.0.2 Support login/password auth in cassandra-stress -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-6067) Use non-pooling readers with openForBatch
[ https://issues.apache.org/jira/browse/CASSANDRA-6067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772280#comment-13772280 ] Yuki Morishita commented on CASSANDRA-6067: --- +1 Use non-pooling readers with openForBatch - Key: CASSANDRA-6067 URL: https://issues.apache.org/jira/browse/CASSANDRA-6067 Project: Cassandra Issue Type: Bug Components: Core, Tools Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.1 Attachments: 6067.txt, 6067-v2.txt Looks like CASSANDRA- was incorrectly merged forward. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6067) Use non-pooling readers with openForBatch
Jonathan Ellis created CASSANDRA-6067: - Summary: Use non-pooling readers with openForBatch Key: CASSANDRA-6067 URL: https://issues.apache.org/jira/browse/CASSANDRA-6067 Project: Cassandra Issue Type: Bug Components: Core, Tools Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 2.0.2 Looks like CASSANDRA- was incorrectly merged forward. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6066) LHF 2i performance improvements
Aleksey Yeschenko created CASSANDRA-6066: Summary: LHF 2i performance improvements Key: CASSANDRA-6066 URL: https://issues.apache.org/jira/browse/CASSANDRA-6066 Project: Cassandra Issue Type: Improvement Reporter: Aleksey Yeschenko Priority: Minor Fix For: 2.0.2 We should perform more aggressive paging over the index partition (costs us nothing) and also fetch the rows from the base table in one slice query (at least the ones belonging to the same partition). -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[1/2] git commit: Move CASSANDRA-6058 to 2.0.2
Updated Branches: refs/heads/trunk b1d1fac8d - 23156863d Move CASSANDRA-6058 to 2.0.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7453e6f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7453e6f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7453e6f2 Branch: refs/heads/trunk Commit: 7453e6f2bacc8663bd2b07c54a44fba1533e64a8 Parents: caf047b Author: Aleksey Yeschenko alek...@apache.org Authored: Thu Sep 19 18:12:29 2013 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Thu Sep 19 18:12:29 2013 +0300 -- CHANGES.txt | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7453e6f2/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 06d9b16..fcc33f2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +2.0.2 + * Make ThriftServer more easlly extensible (CASSANDRA-6058) + + 2.0.1 * add file_cache_size_in_mb setting (CASSANDRA-5661) * Improve error message when yaml contains invalid properties (CASSANDRA-5958) @@ -27,7 +31,6 @@ * cqlsh: return the result of CAS writes (CASSANDRA-5796) * Fix validation of IN clauses with 2ndary indexes (CASSANDRA-6050) * Support named bind variables in CQL (CASSANDRA-6033) - * Make ThriftServer more easlly extensible (CASSANDRA-6058) Merged from 1.2: * Avoid second-guessing out-of-space state (CASSANDRA-5605) * Tuning knobs for dealing with large blobs and many CFs (CASSANDRA-5982)
[jira] [Commented] (CASSANDRA-5981) Netty frame length exception when storing data to Cassandra using binary protocol
[ https://issues.apache.org/jira/browse/CASSANDRA-5981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13771999#comment-13771999 ] Jonathan Ellis commented on CASSANDRA-5981: --- Oops, wrong Daniel. Meant [~danielnorberg]. Netty frame length exception when storing data to Cassandra using binary protocol - Key: CASSANDRA-5981 URL: https://issues.apache.org/jira/browse/CASSANDRA-5981 Project: Cassandra Issue Type: Bug Components: Core Environment: Linux, Java 7 Reporter: Justin Sweeney Assignee: Sylvain Lebresne Priority: Minor Fix For: 1.2.11 Attachments: 0001-Correctly-catch-frame-too-long-exceptions.txt, 0002-Allow-to-configure-the-max-frame-length.txt Using Cassandra 1.2.8, I am running into an issue where when I send a large amount of data using the binary protocol, I get the following netty exception in the Cassandra log file: {quote} ERROR 09:08:35,845 Unexpected exception during request org.jboss.netty.handler.codec.frame.TooLongFrameException: Adjusted frame length exceeds 268435456: 292413714 - discarded at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.fail(LengthFieldBasedFrameDecoder.java:441) at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.failIfNecessary(LengthFieldBasedFrameDecoder.java:412) at org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder.decode(LengthFieldBasedFrameDecoder.java:372) at org.apache.cassandra.transport.Frame$Decoder.decode(Frame.java:181) at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:422) at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:84) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:472) at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:333) at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:35) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) {quote} I am using the Datastax driver and using CQL to execute insert queries. The query that is failing is using atomic batching executing a large number of statements (~55). Looking into the code a bit, I saw that in the org.apache.cassandra.transport.Frame$Decoder class, the MAX_FRAME_LENGTH is hard coded to 256 mb. Is this something that should be configurable or is this a hard limit that will prevent batch statements of this size from executing for some reason? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5732) Can not query secondary index
[ https://issues.apache.org/jira/browse/CASSANDRA-5732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772032#comment-13772032 ] Daniel Meyer commented on CASSANDRA-5732: - This is definitly a bug in latest 1.2. Just reproduced in 1.2.10 Repro is easy. Create single node cluster off of latest 1.2 branch and do the following: cqlsh use ks; cqlsh:ks CREATE TABLE test ( row text, name text, PRIMARY KEY (row) ); cqlsh:ks ALTER TABLE test WITH caching='all'; cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row1', 'daniel' ); cqlsh:ks INSERT INTO test (row, name) VALUES ( 'row2', 'ryan' ); cqlsh:ks CREATE INDEX on test (name); cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how row is returned Stop node and set: row_cache_size_in_mb: 200 Start node again and follow this procedure: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; #Nothing is returned from this query Now stop the node and set: row_cache_size_in_mb: 0 start the node and do the following: cqlsh use ks; cqlsh:ks select * from test where name='daniel'; row | name --+ row1 | daniel #Notice how the row is returned. Can not query secondary index - Key: CASSANDRA-5732 URL: https://issues.apache.org/jira/browse/CASSANDRA-5732 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.5 Environment: Windows 8, Jre 1.6.0_45 32-bit Reporter: Tony Anecito Assignee: Daniel Meyer Noticed after taking a column family that already existed and assigning to an IntegerType index_type:KEYS and the caching was already set to 'ALL' that the prepared statement do not return rows neither did it throw an exception. Here is the sequence. 1. Starting state query running with caching off for a Column Family with the query using the secondary index for te WHERE clause. 2, Set Column Family caching to ALL using Cassandra-CLI and update CQL. Cassandra-cli Describe shows column family caching set to ALL 3. Rerun query and it works. 4. Restart Cassandra and run query and no rows returned. Cassandra-cli Describe shows column family caching set to ALL 5. Set Column Family caching to NONE using Cassandra-cli and update CQL. Rerun query and no rows returned. Cassandra-cli Describe for column family shows caching set to NONE. 6. Restart Cassandra. Rerun query and it is working again. We are now back to the starting state. Best Regards, -Tony -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-5138) Provide a better CQL error when table data does not conform to CQL metadata.
[ https://issues.apache.org/jira/browse/CASSANDRA-5138?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13772031#comment-13772031 ] Elvis Pranskevichus commented on CASSANDRA-5138: Another related issue. This check seems to make it impossible to insert proper records into CQL3 tables via Thrift, since it bails out on an attempt to write a column with an empty last component. CREATE TABLE test ( id text, attr text, value text, PRIMARY KEY (id, attr) ); The storage column structure for the table would be: key {attr,}[empty] key {attr,value} value There is no way to insert the first column (record demarcation) as it fails with Invalid cell for CQL3 table test. The CQL3 column component () does not correspond to a defined CQL3 column Provide a better CQL error when table data does not conform to CQL metadata. Key: CASSANDRA-5138 URL: https://issues.apache.org/jira/browse/CASSANDRA-5138 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 1.2.0 Environment: Mac OS X running 1.2 Reporter: Brian ONeill Assignee: Sylvain Lebresne Priority: Minor Fix For: 2.0 Attachments: 5138-2.txt, 5138.txt, northpole.cql When you create a table via CQL, then insert into it via Thrift. If you inadvertently leave out a component of the column name, in CQL you receive a: TSocket read 0 bytes Server-side the following exception is logged: ERROR 15:19:18,016 Error occurred during processing of message. java.lang.ArrayIndexOutOfBoundsException: 3 at org.apache.cassandra.cql3.statements.ColumnGroupMap.add(ColumnGroupMap.java:43) at org.apache.cassandra.cql3.statements.ColumnGroupMap.access$200(ColumnGroupMap.java:31) at org.apache.cassandra.cql3.statements.ColumnGroupMap$Builder.add(ColumnGroupMap.java:138) at org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:805) at org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:145) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:134) at org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:61) at org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:132) at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:140) at org.apache.cassandra.thrift.CassandraServer.execute_cql3_query(CassandraServer.java:1686) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4074) at org.apache.cassandra.thrift.Cassandra$Processor$execute_cql3_query.getResult(Cassandra.java:4062) at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:32) at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:34) at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:199) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) I'll submit a schema, and steps to reproduce. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-4430) optional pluggable o.a.c.metrics reporters
[ https://issues.apache.org/jira/browse/CASSANDRA-4430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-4430: --- Attachment: 4430-trunk.txt I didn't test out everything this could do, but it seems like a solid starting point. The attached 4430-trunk.txt rebases Chris's changes against trunk (it looks like we want this to go in 2.1 now). The changes are also in my [branch|https://github.com/thobbs/cassandra/tree/CASSANDRA-4430-trunk-rebase], which includes the new jar files. optional pluggable o.a.c.metrics reporters -- Key: CASSANDRA-4430 URL: https://issues.apache.org/jira/browse/CASSANDRA-4430 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Chris Burroughs Assignee: Chris Burroughs Priority: Minor Fix For: 2.1 Attachments: 4430-trunk.txt, cassandra-ganglia-example.png CASSANDRA-4009 expanded the use of the metrics library which has a set of reporter modules http://metrics.codahale.com/manual/core/#reporters You can report to flat files, ganglia, spit everything over http, etc. The next step is a mechanism for using those reporters with o.a.c.metrics. To avoid bundling everything I suggest following the mx4j approach of enable only if on classpath coupled with a reporter configuration file. Strawman file: {noformat} console: time: 1 timeunit: seconds csv: - time: 1 timeunit: minutes file: foo.csv - time: 10 timeunit: seconds file: bar.csv ganglia: - time: 30 timunit: seconds host: server-1 port: 8649 - time: 30 timunit: seconds host: server-2 port: 8649 {noformat} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-6061) Rewrite TokenMetadata
Jonathan Ellis created CASSANDRA-6061: - Summary: Rewrite TokenMetadata Key: CASSANDRA-6061 URL: https://issues.apache.org/jira/browse/CASSANDRA-6061 Project: Cassandra Issue Type: Task Components: Core Reporter: Jonathan Ellis Assignee: Tyler Hobbs Priority: Minor Feels like this mostly works but is generally fragile (see: shuffle). Would be good to get a fresh perspective on it and see if we can do better. Bonus would be, ability to bootstrap multiple nodes w/o Two Minute Rule. Probably would involve using LWT on pending ranges state. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira