[jira] [Created] (CASSANDRA-9616) cfstats on 2.1.6 throws fatal exception during compaction cycles
Mark Manley created CASSANDRA-9616: -- Summary: cfstats on 2.1.6 throws fatal exception during compaction cycles Key: CASSANDRA-9616 URL: https://issues.apache.org/jira/browse/CASSANDRA-9616 Project: Cassandra Issue Type: Bug Reporter: Mark Manley When running cfstats against any cf that is doing a compaction cycle, I get the following exception for its reading of tmplink files: {code} error: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db {code} This seems to have started when I rolled out 2.1.6. I don't see a current bug in my cursory search, so here you go! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9471) Columns should be backed by a BTree, not an array
[ https://issues.apache.org/jira/browse/CASSANDRA-9471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benedict updated CASSANDRA-9471: Reviewer: Branimir Lambov Columns should be backed by a BTree, not an array - Key: CASSANDRA-9471 URL: https://issues.apache.org/jira/browse/CASSANDRA-9471 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Benedict Assignee: Benedict Fix For: 3.0 beta 1 Follow up to 8099. We have pretty terrible lookup performance as the number of columns grows (linear). In at least one location, this results in quadratic performance. We don't however want this structure to be either any more expensive to build, nor to store. Some small modifications to BTree will permit it to serve here, by permitting efficient lookup by index, and calculation _of_ index for a given key. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9615) Speed up Windows launch scripts
[ https://issues.apache.org/jira/browse/CASSANDRA-9615?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591807#comment-14591807 ] Philip Thompson commented on CASSANDRA-9615: /cc [~kishkaru] Speed up Windows launch scripts --- Key: CASSANDRA-9615 URL: https://issues.apache.org/jira/browse/CASSANDRA-9615 Project: Cassandra Issue Type: Improvement Reporter: Joshua McKenzie Assignee: Joshua McKenzie Priority: Minor Labels: Windows Fix For: 2.2.x Currently the async callback to start C* on Windows from within ccm is taking upwards of 1.5 to 2 seconds per node due to a variety of somewhat expensive process launches we're doing in there (java version check, async port open checking). Contrast this with a crisp 0-1 ms on linux... Some of that stuff can be cleaned up and sped up which should help both speed up our testing environment and iron out an error that pops up on the port check w/IPv6 (note: node still starts, just complains). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9614) I am trying to execute queries using execute_concurrent() in python but I am getting the best throughput on a concurrency of 4 whereas according to the documentatio
[ https://issues.apache.org/jira/browse/CASSANDRA-9614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591813#comment-14591813 ] Adam Holmberg commented on CASSANDRA-9614: -- [~kumarsaras] this is a good question for the Python Driver mailing list: https://groups.google.com/a/lists.datastax.com/forum/#!forum/python-driver-user When asking there, it would be good to include information about your schema, query, and deployment. I am trying to execute queries using execute_concurrent() in python but I am getting the best throughput on a concurrency of 4 whereas according to the documentation there can be 100 concurrent requests. Why this kind of behavior? -- Key: CASSANDRA-9614 URL: https://issues.apache.org/jira/browse/CASSANDRA-9614 Project: Cassandra Issue Type: Test Components: Documentation website Environment: Linux Reporter: Kumar Saras -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8099) Refactor and modernize the storage engine
[ https://issues.apache.org/jira/browse/CASSANDRA-8099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591661#comment-14591661 ] Sylvain Lebresne commented on CASSANDRA-8099: - As shown by Branimir's test, range tombstone merging was indeed broken and I've pushed the fix for that. I've included the old version test in question (with some ugly modification so it tests the reverse case), but I'll look at updating it for the more generic version unless you want to have a shot at it. bq. It would be great to have this clarification in the doc. Yes, sorry about that. I've tried to clarify and add to the comment in the code to start with. I'll update the guide to make that clearer when I have a bit more time. {quote} bq. I've pushed a small semantic-changing suggestion for serialization and merging of RT I hesitated doing this initially and don't remember why I didn't {quote} I remember now. The problem is reverse queries: we need to be able to merge iterator in reverse order. And if we re-use a start marker as updates of the deletion, we won't know when reversed and we see a start marker if that's a real start or an update. Plus we do need both deletion time at a range boundary (the one of the range we left for reverse queries, and the one of the range we enter for forward ones). In all fairness though, I did had forgotten to actually handle the reverse case in the merger, so I've fixed that, but said fix is trivial in the current approach. Now, there is obviously possible alternatives for dealing with RTs, but I feel that the current approach has a bunch of good properties: # it's a simple model: every RT has a begining followed by an end and that's it (no overlapping, no inclusions of ranges, very predictible). # it works in both forward and reverse order, and in an obvious way. # it makes the purging of gcable RTs trivial (you just blindly collect any gcable marker). This is something that was broken by the alternative patch in particular and would require some care. # it reuse slice bounds without adding a new concept, which is nice I think. So while other options are up for discussions, I think there is enough parameters to consider that I'd prefer such potential discussion to happen in a separate ticket. I'll note that the re-imaging of markers at the beginning of index blocks is actually not necessary and something I forgot to remove. We now store in each index block if there is an open marker at the end of that block (primary so that we can decide if a sstable don't have any data for a given slice just from the index) making this redundant. So I've removed it. Lastly, I fully agree that {{UnfilteredRowIterators.MergedUnfiltered}} is ugly and I meant it as a simple temporary solution: I'm sure we can find cleaner alternatives (maybe through some modification of the MergeIterator API so it's easy to produce more than one result for a given key). Refactor and modernize the storage engine - Key: CASSANDRA-8099 URL: https://issues.apache.org/jira/browse/CASSANDRA-8099 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 3.0 beta 1 Attachments: 8099-nit The current storage engine (which for this ticket I'll loosely define as the code implementing the read/write path) is suffering from old age. One of the main problem is that the only structure it deals with is the cell, which completely ignores the more high level CQL structure that groups cell into (CQL) rows. This leads to many inefficiencies, like the fact that during a reads we have to group cells multiple times (to count on replica, then to count on the coordinator, then to produce the CQL resultset) because we forget about the grouping right away each time (so lots of useless cell names comparisons in particular). But outside inefficiencies, having to manually recreate the CQL structure every time we need it for something is hindering new features and makes the code more complex that it should be. Said storage engine also has tons of technical debt. To pick an example, the fact that during range queries we update {{SliceQueryFilter.count}} is pretty hacky and error prone. Or the overly complex ways {{AbstractQueryPager}} has to go into to simply remove the last query result. So I want to bite the bullet and modernize this storage engine. I propose to do 2 main things: # Make the storage engine more aware of the CQL structure. In practice, instead of having partitions be a simple iterable map of cells, it should be an iterable list of row (each being itself composed of per-column cells, though obviously not exactly the same kind of cell we have today). # Make the engine more iterative.
[jira] [Commented] (CASSANDRA-9532) Provide access to select statement's real column definitions
[ https://issues.apache.org/jira/browse/CASSANDRA-9532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591734#comment-14591734 ] Sam Tunnicliffe commented on CASSANDRA-9532: After some further (offline) discussion with [~blerer] we concluded that with some refactoring around {{Selectable}} {{SelectorFactories}} we could probably do away with a separate class to maintain the mappings in 2.2 trunk. Rather than block this ticket, I'll open a separate issue to do that. In the meantime, to preserve the API for {{QueryHandler}} implementors, I've made {{SelectionColumnMapping}} an interface and renamed it to {{SelectionColumns}}, the idea being that at when we do the refactoring, we'll provide a means of getting a {{SelectionColumns}} from {{SelectorFactories}}. Provide access to select statement's real column definitions Key: CASSANDRA-9532 URL: https://issues.apache.org/jira/browse/CASSANDRA-9532 Project: Cassandra Issue Type: Improvement Reporter: mck Assignee: Sam Tunnicliffe Fix For: 3.x, 2.1.x, 2.0.x, 2.2.x Attachments: 9532-2.0-v2.txt, 9532-2.1-v2.txt, 9532-2.2-v2.txt, 9532-trunk-v2.txt, cassandra-2.0-9532.txt, cassandra-2.1-9532.txt, cassandra-2.2-9532.txt, trunk-9532.txt Currently there is no way to get access to the real ColumnDefinitions being used in a SelectStatement. This information is there in {{selectStatement.selection.columns}} but is private. Giving public access would make it possible for third-party implementations of a {{QueryHandler}} to work accurately with the real columns being queried and not have to work-around column aliases (or when the rawSelectors don't map directly to ColumnDefinitions, eg in Selection.fromSelectors(..), like functions), which is what one has to do today with going through ResultSet.metadata.names. This issue provides a very minimal patch to provide access to the already final and immutable fields. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8099) Refactor and modernize the storage engine
[ https://issues.apache.org/jira/browse/CASSANDRA-8099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591772#comment-14591772 ] Benedict commented on CASSANDRA-8099: - bq. I did had forgotten to actually handle the reverse case in the merger bq. This is something that was broken by the alternative patch in particular and would require some care. Do we have test coverage of these? I didn't notice them breaking :( From a nomenclature standpoint, I would like to suggest we relabel the marker types to (something like) {{UPPER/LOWER}}, so that _internally_ we can refer to either as an open marker without confusion. Right now, the concept is blurred, because we treat close markers as open markers when operating in reverse, and IMO this hinders clarity. On the matter of the method for dealing with RTs, I agree with the majority of your points. However to improve the ugliness of {{MergedUnfiltered}} and remove the double persistence, why not introduce a special kind of RTM, of type {{BOUNDARY}}, which just has two timestamps. That's basically what the {{MergedUnfiltered}} is, so why not save space and improve clarity by promoting it to a first class concept? Unpicking them at merge when performing GC shouldn't be onerous. I'm dubious about introducing more method calls to be invoked on every Cell, to permit the rare case of two atoms after one merge result. That's a code complexity and execution cost incurred for the uncommon case, but paid by all. Refactor and modernize the storage engine - Key: CASSANDRA-8099 URL: https://issues.apache.org/jira/browse/CASSANDRA-8099 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 3.0 beta 1 Attachments: 8099-nit The current storage engine (which for this ticket I'll loosely define as the code implementing the read/write path) is suffering from old age. One of the main problem is that the only structure it deals with is the cell, which completely ignores the more high level CQL structure that groups cell into (CQL) rows. This leads to many inefficiencies, like the fact that during a reads we have to group cells multiple times (to count on replica, then to count on the coordinator, then to produce the CQL resultset) because we forget about the grouping right away each time (so lots of useless cell names comparisons in particular). But outside inefficiencies, having to manually recreate the CQL structure every time we need it for something is hindering new features and makes the code more complex that it should be. Said storage engine also has tons of technical debt. To pick an example, the fact that during range queries we update {{SliceQueryFilter.count}} is pretty hacky and error prone. Or the overly complex ways {{AbstractQueryPager}} has to go into to simply remove the last query result. So I want to bite the bullet and modernize this storage engine. I propose to do 2 main things: # Make the storage engine more aware of the CQL structure. In practice, instead of having partitions be a simple iterable map of cells, it should be an iterable list of row (each being itself composed of per-column cells, though obviously not exactly the same kind of cell we have today). # Make the engine more iterative. What I mean here is that in the read path, we end up reading all cells in memory (we put them in a ColumnFamily object), but there is really no reason to. If instead we were working with iterators all the way through, we could get to a point where we're basically transferring data from disk to the network, and we should be able to reduce GC substantially. Please note that such refactor should provide some performance improvements right off the bat but it's not it's primary goal either. It's primary goal is to simplify the storage engine and adds abstraction that are better suited to further optimizations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9617) Improve range tombstone testing coverage
Sylvain Lebresne created CASSANDRA-9617: --- Summary: Improve range tombstone testing coverage Key: CASSANDRA-9617 URL: https://issues.apache.org/jira/browse/CASSANDRA-9617 Project: Cassandra Issue Type: Test Reporter: Sylvain Lebresne We don't have generally a very good test coverage of range tombstones. Typically, most range tombstones test are pretty simple, but we should test cases with many range tombstones, with and without them overlapping, and make sure everything (including forward, reverse, name and slice queries, purging of the ranges after gcgrace, etc...) still work as it should. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8099) Refactor and modernize the storage engine
[ https://issues.apache.org/jira/browse/CASSANDRA-8099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591825#comment-14591825 ] Sylvain Lebresne commented on CASSANDRA-8099: - bq. why not introduce a special kind of RTM, of type BOUNDARY Because that doesn't really fit the part about reusing slice bounds without adding a new concept. A RT is a slice of deletion, and I think that's rather clean. I strongly suspect that either not reusing slice for RTs, adding a {{BOUNDARY}} concept to {{Slice.BOUND}} (which doesn't really make sense for slices per-se), or some other hack to work around this will make things more confusing/complex, and is thus not worth a minor optimization of a probably pretty rare situation in practice. Feel free to give the changes a shot though if you're convinced otherwise, and we can have a more informed discussion on the result. bq. Do we have test coverage of these? We have generally poor coverage of range tombstone usage (though I've modified Branamir's test to test the reverse case too, so we have one test for that now at least). We have some basic tests, but nothing fancy enough. I've created CASSANDRA-9617 to improve this. bq. I would like to suggest we relabel the marker types to (something like) {{UPPER/LOWER}} We can, though due to the point above that means also renaming it for slices in general. Which is not crazy per-se in that we do scan slices from end to start for reverse queries so they are equivalent in that respect, it's just that it's a departure of the existing nomenclature (which I don't personally mind). Refactor and modernize the storage engine - Key: CASSANDRA-8099 URL: https://issues.apache.org/jira/browse/CASSANDRA-8099 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 3.0 beta 1 Attachments: 8099-nit The current storage engine (which for this ticket I'll loosely define as the code implementing the read/write path) is suffering from old age. One of the main problem is that the only structure it deals with is the cell, which completely ignores the more high level CQL structure that groups cell into (CQL) rows. This leads to many inefficiencies, like the fact that during a reads we have to group cells multiple times (to count on replica, then to count on the coordinator, then to produce the CQL resultset) because we forget about the grouping right away each time (so lots of useless cell names comparisons in particular). But outside inefficiencies, having to manually recreate the CQL structure every time we need it for something is hindering new features and makes the code more complex that it should be. Said storage engine also has tons of technical debt. To pick an example, the fact that during range queries we update {{SliceQueryFilter.count}} is pretty hacky and error prone. Or the overly complex ways {{AbstractQueryPager}} has to go into to simply remove the last query result. So I want to bite the bullet and modernize this storage engine. I propose to do 2 main things: # Make the storage engine more aware of the CQL structure. In practice, instead of having partitions be a simple iterable map of cells, it should be an iterable list of row (each being itself composed of per-column cells, though obviously not exactly the same kind of cell we have today). # Make the engine more iterative. What I mean here is that in the read path, we end up reading all cells in memory (we put them in a ColumnFamily object), but there is really no reason to. If instead we were working with iterators all the way through, we could get to a point where we're basically transferring data from disk to the network, and we should be able to reduce GC substantially. Please note that such refactor should provide some performance improvements right off the bat but it's not it's primary goal either. It's primary goal is to simplify the storage engine and adds abstraction that are better suited to further optimizations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8817) Error handling in Cassandra logs in low memory scenarios could use improvement
[ https://issues.apache.org/jira/browse/CASSANDRA-8817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591945#comment-14591945 ] Gary Dusbabek commented on CASSANDRA-8817: -- What would be appropriate levels for Y and Z? Error handling in Cassandra logs in low memory scenarios could use improvement -- Key: CASSANDRA-8817 URL: https://issues.apache.org/jira/browse/CASSANDRA-8817 Project: Cassandra Issue Type: Improvement Components: Core Environment: Ubuntu 14.04, VM originally created with 1 GB RAM, DSE 4.6.0 installed Reporter: Michael DeHaan Priority: Minor Labels: lhf Fix For: 2.1.x When running Cassandra with a low amount of RAM, in this case, using DataStax Enterprise 4.6.0 in a reasonably default configuration, I find that I get an error after starting and trying to use nodetool, namely that it cannot connect to 127.0.0.1. Originally this sends me up a creek, looking for why Cassandra is not listening on 7199. The truth ends up being a bit more cryptic - that Cassandra isn't running. Upon looking at the Cassandra system logs, I see the last thing that it did was print out the (very long) class path. This confused me as basically I'm seeing no errors in the log at all. I am proposing that Cassandra should check the amount of available RAM and issue a warning in the log, or possibly an error, because in this scenario Cassandra is going to oomkill and probably could have predicted this in advance. Something like: Found X MB of RAM, expecting at least Y MB of RAM, Z MB recommended, may crash, adjust SETTINGS or something similar would be a possible solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8099) Refactor and modernize the storage engine
[ https://issues.apache.org/jira/browse/CASSANDRA-8099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591912#comment-14591912 ] Branimir Lambov commented on CASSANDRA-8099: Pushed [updated test|https://github.com/pcmanus/cassandra/compare/8099...blambov:8099-fix]. The code is much better now, the equivalence test passes even for larger tests. There's one more problem to fix, though, it generates invalid empty ranges violating the ordering of the iterator, for example: {code} Seed 10 Merging 14=[8] 15[8] 23 46 56=[93] 69[93] 80 81 88=[70] 90[70] 90 93=[72] =95[72] 97 10 12 33 37=[71] 39[71] 39=[8] =44[8] 55[14] =57[14] 68 92=[45] 98[45] 98=[80] =98[80] 99 2 8 24 33=[7] 45[7] 51 62 63 63 79=[71] =79[71] 81=[16] =81[16] results in 2 8 10 12 14=[8] 15[8] 23 24 33=[7] 33 37[7] 37=[71] 39[71] 39=[7] 39[7] 39=[8] =44[8] 44[7] 45[7] 46 51 55[14] 56[14] 56=[93] 68 69[93] 79=[71] =79[71] 80 81=[16] =81[16] 88=[70] 90[70] 90 92=[45] 93[45] 93=[72] =95[72] 95 [45] 98[45] 98=[80] =98[80] 99 java.lang.AssertionError: 39=[7] not ordered before 39[7] {code} Refactor and modernize the storage engine - Key: CASSANDRA-8099 URL: https://issues.apache.org/jira/browse/CASSANDRA-8099 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 3.0 beta 1 Attachments: 8099-nit The current storage engine (which for this ticket I'll loosely define as the code implementing the read/write path) is suffering from old age. One of the main problem is that the only structure it deals with is the cell, which completely ignores the more high level CQL structure that groups cell into (CQL) rows. This leads to many inefficiencies, like the fact that during a reads we have to group cells multiple times (to count on replica, then to count on the coordinator, then to produce the CQL resultset) because we forget about the grouping right away each time (so lots of useless cell names comparisons in particular). But outside inefficiencies, having to manually recreate the CQL structure every time we need it for something is hindering new features and makes the code more complex that it should be. Said storage engine also has tons of technical debt. To pick an example, the fact that during range queries we update {{SliceQueryFilter.count}} is pretty hacky and error prone. Or the overly complex ways {{AbstractQueryPager}} has to go into to simply remove the last query result. So I want to bite the bullet and modernize this storage engine. I propose to do 2 main things: # Make the storage engine more aware of the CQL structure. In practice, instead of having partitions be a simple iterable map of cells, it should be an iterable list of row (each being itself composed of per-column cells, though obviously not exactly the same kind of cell we have today). # Make the engine more iterative. What I mean here is that in the read path, we end up reading all cells in memory (we put them in a ColumnFamily object), but there is really no reason to. If instead we were working with iterators all the way through, we could get to a point where we're basically transferring data from disk to the network, and we should be able to reduce GC substantially. Please note that such refactor should provide some performance improvements right off the bat but it's not it's primary goal either. It's primary goal is to simplify the storage engine and adds abstraction that are better suited to further optimizations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591977#comment-14591977 ] Robbie Strickland commented on CASSANDRA-9607: -- Yes it does. It seems from our observation to be related to 1) our heavy use of DTCS combined with [CASSANDRA-9549|https://issues.apache.org/jira/browse/CASSANDRA-9549] and 2) severe GC pauses (such that it was GCing constantly). We were able to make things stable by moving to G1 with the following modifications: {{code}} #JVM_OPTS=$JVM_OPTS -Xmn${HEAP_NEWSIZE} JVM_OPTS=$JVM_OPTS -XX:+UseG1GC JVM_OPTS=$JVM_OPTS -XX:MaxGCPauseMillis=1000 JVM_OPTS=$JVM_OPTS -XX:+UseTLAB -XX:+ResizeTLAB JVM_OPTS=$JVM_OPTS -XX:-UseBiasedLocking {{code}} This is still a work in progress, but it has allowed us to reach a stable state. Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 Reporter: Study Hsueh Priority: Critical Attachments: load.png After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8099) Refactor and modernize the storage engine
[ https://issues.apache.org/jira/browse/CASSANDRA-8099?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591912#comment-14591912 ] Branimir Lambov edited comment on CASSANDRA-8099 at 6/18/15 2:47 PM: - Pushed [updated test|https://github.com/pcmanus/cassandra/compare/8099...blambov:8099-fix]. The code is much better now, the equivalence test passes even for larger tests. There's one more problem to fix, though, it generates invalid empty ranges violating the ordering of the iterator, for example: {code} Seed 10 Merging 14=[8] 15[8] 23 46 56=[93] 69[93] 80 81 88=[70] 90[70] 90 93=[72] =95[72] 97 10 12 33 37=[71] 39[71] 39=[8] =44[8] 55[14] =57[14] 68 92=[45] 98[45] 98=[80] =98[80] 99 2 8 24 33=[7] 45[7] 51 62 63 63 79=[71] =79[71] 81=[16] =81[16] results in 2 8 10 12 14=[8] 15[8] 23 24 33=[7] 33 37[7] 37=[71] 39[71] 39=[7] 39[7] 39=[8] =44[8] 44[7] 45[7] 46 51 55[14] 56[14] 56=[93] 68 69[93] 79=[71] =79[71] 80 81=[16] =81[16] 88=[70] 90[70] 90 92=[45] 93[45] 93=[72] =95[72] 95[45] 98[45] 98=[80] =98[80] 99 java.lang.AssertionError: 39=[7] not ordered before 39[7] {code} was (Author: blambov): Pushed [updated test|https://github.com/pcmanus/cassandra/compare/8099...blambov:8099-fix]. The code is much better now, the equivalence test passes even for larger tests. There's one more problem to fix, though, it generates invalid empty ranges violating the ordering of the iterator, for example: {code} Seed 10 Merging 14=[8] 15[8] 23 46 56=[93] 69[93] 80 81 88=[70] 90[70] 90 93=[72] =95[72] 97 10 12 33 37=[71] 39[71] 39=[8] =44[8] 55[14] =57[14] 68 92=[45] 98[45] 98=[80] =98[80] 99 2 8 24 33=[7] 45[7] 51 62 63 63 79=[71] =79[71] 81=[16] =81[16] results in 2 8 10 12 14=[8] 15[8] 23 24 33=[7] 33 37[7] 37=[71] 39[71] 39=[7] 39[7] 39=[8] =44[8] 44[7] 45[7] 46 51 55[14] 56[14] 56=[93] 68 69[93] 79=[71] =79[71] 80 81=[16] =81[16] 88=[70] 90[70] 90 92=[45] 93[45] 93=[72] =95[72] 95 [45] 98[45] 98=[80] =98[80] 99 java.lang.AssertionError: 39=[7] not ordered before 39[7] {code} Refactor and modernize the storage engine - Key: CASSANDRA-8099 URL: https://issues.apache.org/jira/browse/CASSANDRA-8099 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Fix For: 3.0 beta 1 Attachments: 8099-nit The current storage engine (which for this ticket I'll loosely define as the code implementing the read/write path) is suffering from old age. One of the main problem is that the only structure it deals with is the cell, which completely ignores the more high level CQL structure that groups cell into (CQL) rows. This leads to many inefficiencies, like the fact that during a reads we have to group cells multiple times (to count on replica, then to count on the coordinator, then to produce the CQL resultset) because we forget about the grouping right away each time (so lots of useless cell names comparisons in particular). But outside inefficiencies, having to manually recreate the CQL structure every time we need it for something is hindering new features and makes the code more complex that it should be. Said storage engine also has tons of technical debt. To pick an example, the fact that during range queries we update {{SliceQueryFilter.count}} is pretty hacky and error prone. Or the overly complex ways {{AbstractQueryPager}} has to go into to simply remove the last query result. So I want to bite the bullet and modernize this storage engine. I propose to do 2 main things: # Make the storage engine more aware of the CQL structure. In practice, instead of having partitions be a simple iterable map of cells, it should be an iterable list of row (each being itself composed of per-column cells, though obviously not exactly the same kind of cell we have today). # Make the engine more iterative. What I mean here is that in the read path, we end up reading all cells in memory (we put them in a ColumnFamily object), but there is really no reason to. If instead we were working with iterators all the way through, we could get to a point where we're basically transferring data from disk to the network, and we should be able to reduce GC substantially. Please note that such refactor should provide some performance improvements right off the bat but it's not it's primary goal either. It's primary goal is to simplify the storage engine and adds abstraction that are better suited to further optimizations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9619) Read performance regression on trunk and 2.2 vs. 2.1
Jim Witschey created CASSANDRA-9619: --- Summary: Read performance regression on trunk and 2.2 vs. 2.1 Key: CASSANDRA-9619 URL: https://issues.apache.org/jira/browse/CASSANDRA-9619 Project: Cassandra Issue Type: Bug Reporter: Jim Witschey There seems to be a regression in read in 2.2 and trunk, as compared to 2.1 and 2.0. I found it running cstar_perf jobs with 50-column tables. 2.2 may be worse than trunk, though my results on that aren't consistent. The relevant cstar_perf jobs are here: http://cstar.datastax.com/tests/id/273e2ea8-0fc8-11e5-816c-42010af0688f http://cstar.datastax.com/tests/id/3a8002d6-1480-11e5-97ff-42010af0688f http://cstar.datastax.com/tests/id/40ff2766-1248-11e5-bac8-42010af0688f The sequence of commands for these jobs is {code} stress write n=6500 -rate threads=300 -col n=FIXED\(50\) stress read n=6500 -rate threads=300 stress read n=6500 -rate threads=300 {code} Have a look at the operations per second going from [the first read operation|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=174379.7] to [the second read operation|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=174379.7]. They've fallen from ~135K to ~100K comparing trunk to 2.1 and 2.0. It's slightly worse for 2.2, and 2.2 operations per second fall continuously from the first to the second read operation. There's a corresponding increase in read latency -- it's noticable on trunk and pretty bad on 2.2. Again, the latency gets higher and higher on 2.2 as the read operations progress (see the graphs [here|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=95th_latencyoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=17.27] and [here|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=95th_latencyoperation=3_readsmoothing=1show_aggregates=truexmin=0xmax=928.62ymin=0ymax=14.52]). I see a similar regression in a [more recent test|http://cstar.datastax.com/graph?stats=40ff2766-1248-11e5-bac8-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=752.62ymin=0ymax=171799.1], though in this one trunk performed worse than 2.2. This run also didn't display the increasing latency in 2.2. This regression may show for smaller numbers of columns, but not as prominently, as shown [in the results to this test with the stress default of 5 columns|http://cstar.datastax.com/graph?stats=227cb89e-0fc8-11e5-9f14-42010af0688fmetric=99.9th_latencyoperation=3_readsmoothing=1show_aggregates=truexmin=0xmax=498.19ymin=0ymax=334.29]. There's an increase in latency variability on trunk and 2.2, but I don't see a regression in summary statistics. My measurements aren't confounded by [the recent regression in cassandra-stress|https://issues.apache.org/jira/browse/CASSANDRA-9558]; cstar_perf uses the same stress program (from trunk) on all versions on the cluster. I'm currently working to - reproduce with a smaller workload so this is easier to bisect and debug. - get results with larger numbers of columns, since we've seen the regression on 50 columns but not the stress default of 5. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591977#comment-14591977 ] Robbie Strickland edited comment on CASSANDRA-9607 at 6/18/15 3:32 PM: --- Yes it does. It seems from our observation to be related to 1) our heavy use of DTCS combined with [CASSANDRA-9549|https://issues.apache.org/jira/browse/CASSANDRA-9549] and 2) severe GC pauses (such that it was GCing constantly). We were able to make things stable by moving to G1 with the following modifications: {code} #JVM_OPTS=$JVM_OPTS -Xmn${HEAP_NEWSIZE} JVM_OPTS=$JVM_OPTS -XX:+UseG1GC JVM_OPTS=$JVM_OPTS -XX:MaxGCPauseMillis=1000 JVM_OPTS=$JVM_OPTS -XX:+UseTLAB -XX:+ResizeTLAB JVM_OPTS=$JVM_OPTS -XX:-UseBiasedLocking {code} This is still a work in progress, but it has allowed us to reach a stable state. was (Author: rstrickland): Yes it does. It seems from our observation to be related to 1) our heavy use of DTCS combined with [CASSANDRA-9549|https://issues.apache.org/jira/browse/CASSANDRA-9549] and 2) severe GC pauses (such that it was GCing constantly). We were able to make things stable by moving to G1 with the following modifications: {{code}} #JVM_OPTS=$JVM_OPTS -Xmn${HEAP_NEWSIZE} JVM_OPTS=$JVM_OPTS -XX:+UseG1GC JVM_OPTS=$JVM_OPTS -XX:MaxGCPauseMillis=1000 JVM_OPTS=$JVM_OPTS -XX:+UseTLAB -XX:+ResizeTLAB JVM_OPTS=$JVM_OPTS -XX:-UseBiasedLocking {{code}} This is still a work in progress, but it has allowed us to reach a stable state. Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 Reporter: Study Hsueh Priority: Critical Attachments: load.png After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591843#comment-14591843 ] Jonathan Ellis commented on CASSANDRA-9607: --- Sound familiar [~rstrickland]? Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 Reporter: Study Hsueh Priority: Critical Attachments: load.png After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9618) Consider deprecating sstable2json/json2sstable in 2.2
Sylvain Lebresne created CASSANDRA-9618: --- Summary: Consider deprecating sstable2json/json2sstable in 2.2 Key: CASSANDRA-9618 URL: https://issues.apache.org/jira/browse/CASSANDRA-9618 Project: Cassandra Issue Type: Task Reporter: Sylvain Lebresne Fix For: 2.2.0 rc2 The rational is explained in CASSANDRA-7464 but to rephrase a bit: * json2sstable is pretty much useless, {{CQLSSTableWriter}} is way more flexible if you need to write sstable directly. * sstable2json is really only potentially useful for debugging, but it's pretty bad at that (it's output is not really all that helpul in modern Cassandra in particular). Now, it happens that updating those tool for CASSANDRA-8099, while possible, is a bit involved. So I don't think it make sense to invest effort in maintain these tools. So I propose to deprecate these in 2.2 with removal in 3.0. I'll note that having a tool to help debugging sstable can be useful, but I propose to add a tool for that purpose with CASSANDRA-7464. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8817) Error handling in Cassandra logs in low memory scenarios could use improvement
[ https://issues.apache.org/jira/browse/CASSANDRA-8817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14591954#comment-14591954 ] Michael DeHaan commented on CASSANDRA-8817: --- I believe I was using the DataStax sandbox at the time, and did not write any data into the cluster, it just wouldn't start up. I was not starting Analytics or Search. It could happen with DSC, the general problem with guides is people will miss things. Basically is it's really easy for new users to not allocate enough RAM, and then have a bad first experience with C* because there's no log message. I have no idea about the Y and Z, but something that can try and warn before the OOMkill would be nice. Even a basic warning if it starts up with less than 256 MB free RAM might work? Might sometimes false positive, but could make configurable, IDK? Error handling in Cassandra logs in low memory scenarios could use improvement -- Key: CASSANDRA-8817 URL: https://issues.apache.org/jira/browse/CASSANDRA-8817 Project: Cassandra Issue Type: Improvement Components: Core Environment: Ubuntu 14.04, VM originally created with 1 GB RAM, DSE 4.6.0 installed Reporter: Michael DeHaan Priority: Minor Labels: lhf Fix For: 2.1.x When running Cassandra with a low amount of RAM, in this case, using DataStax Enterprise 4.6.0 in a reasonably default configuration, I find that I get an error after starting and trying to use nodetool, namely that it cannot connect to 127.0.0.1. Originally this sends me up a creek, looking for why Cassandra is not listening on 7199. The truth ends up being a bit more cryptic - that Cassandra isn't running. Upon looking at the Cassandra system logs, I see the last thing that it did was print out the (very long) class path. This confused me as basically I'm seeing no errors in the log at all. I am proposing that Cassandra should check the amount of available RAM and issue a warning in the log, or possibly an error, because in this scenario Cassandra is going to oomkill and probably could have predicted this in advance. Something like: Found X MB of RAM, expecting at least Y MB of RAM, Z MB recommended, may crash, adjust SETTINGS or something similar would be a possible solution. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Rename class for DATE type in Java driver
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 94be12c6f - a13399279 Rename class for DATE type in Java driver patch by Robert Stupp; reviewed by Aleksey Yeschenko for CASSANDRA-9563 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a1339927 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a1339927 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a1339927 Branch: refs/heads/cassandra-2.2 Commit: a13399279b4e863779af938fb4f7da9abc4755d2 Parents: 94be12c Author: Robert Stupp sn...@snazy.de Authored: Thu Jun 18 18:02:45 2015 +0200 Committer: Robert Stupp sn...@snazy.de Committed: Thu Jun 18 18:02:45 2015 +0200 -- CHANGES.txt | 1 + ...r-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar | Bin 2155169 - 0 bytes ...r-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar | Bin 0 - 2154972 bytes .../cassandra/hadoop/cql3/CqlRecordReader.java | 6 +++--- 4 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3671af9..76a42ab 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar -- diff --git a/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar b/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar deleted file mode 100644 index d75a595..000 Binary files a/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar -- diff --git a/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar b/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar new file mode 100644 index 000..7d971df Binary files /dev/null and b/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java -- diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java index 3e79ad1..6db851d 100644 --- a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java +++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java @@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.ColumnDefinitions; import com.datastax.driver.core.ColumnMetadata; -import com.datastax.driver.core.DateWithoutTime; +import com.datastax.driver.core.LocalDate; import com.datastax.driver.core.Metadata; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; @@ -418,13 +418,13 @@ public class CqlRecordReader extends RecordReaderLong, Row } @Override -public DateWithoutTime getDate(int i) +public LocalDate getDate(int i) { return row.getDate(i); } @Override -public DateWithoutTime getDate(String s) +public LocalDate getDate(String s) { return row.getDate(s); }
[jira] [Updated] (CASSANDRA-9613) Omit (de)serialization of state variable in UDAs
[ https://issues.apache.org/jira/browse/CASSANDRA-9613?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp updated CASSANDRA-9613: Fix Version/s: 3.x Omit (de)serialization of state variable in UDAs Key: CASSANDRA-9613 URL: https://issues.apache.org/jira/browse/CASSANDRA-9613 Project: Cassandra Issue Type: Improvement Reporter: Robert Stupp Priority: Minor Fix For: 3.x Currently the result of each UDA's state function call is serialized and then deserialized for the next state-function invocation and optionally final function invocation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9571) Set HAS_MORE_PAGES flag when PagingState is null
[ https://issues.apache.org/jira/browse/CASSANDRA-9571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-9571: --- Fix Version/s: (was: 3.0.x) (was: 2.2.x) (was: 2.0.x) (was: 2.1.x) 2.2.0 rc2 2.1.7 2.0.16 3.0 beta 1 Set HAS_MORE_PAGES flag when PagingState is null Key: CASSANDRA-9571 URL: https://issues.apache.org/jira/browse/CASSANDRA-9571 Project: Cassandra Issue Type: Improvement Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Priority: Minor Fix For: 3.0 beta 1, 2.0.16, 2.1.7, 2.2.0 rc2 Attachments: 9571-2.0.txt If {{ResultSet.Metadata#setHasMorePages}} is called with a null {{PagingState}}, indicating that there are no more available results, we should explicitly unset the {{HAS_MORE_PAGES}} flag. This can be necessary where a custom {{QueryHandler}} implements its own {{LIMIT}} logic and wishes to send the signal to the client that the results are exhausted before the storage engine would normally do so. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9532) Provide access to select statement's real column definitions
[ https://issues.apache.org/jira/browse/CASSANDRA-9532?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592002#comment-14592002 ] Benjamin Lerer commented on CASSANDRA-9532: --- +1 Provide access to select statement's real column definitions Key: CASSANDRA-9532 URL: https://issues.apache.org/jira/browse/CASSANDRA-9532 Project: Cassandra Issue Type: Improvement Reporter: mck Assignee: Sam Tunnicliffe Fix For: 3.x, 2.1.x, 2.0.x, 2.2.x Attachments: 9532-2.0-v2.txt, 9532-2.1-v2.txt, 9532-2.2-v2.txt, 9532-trunk-v2.txt, cassandra-2.0-9532.txt, cassandra-2.1-9532.txt, cassandra-2.2-9532.txt, trunk-9532.txt Currently there is no way to get access to the real ColumnDefinitions being used in a SelectStatement. This information is there in {{selectStatement.selection.columns}} but is private. Giving public access would make it possible for third-party implementations of a {{QueryHandler}} to work accurately with the real columns being queried and not have to work-around column aliases (or when the rawSelectors don't map directly to ColumnDefinitions, eg in Selection.fromSelectors(..), like functions), which is what one has to do today with going through ResultSet.metadata.names. This issue provides a very minimal patch to provide access to the already final and immutable fields. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9563) Rename class for DATE type in Java driver
[ https://issues.apache.org/jira/browse/CASSANDRA-9563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-9563: - Reviewer: Aleksey Yeschenko Rename class for DATE type in Java driver - Key: CASSANDRA-9563 URL: https://issues.apache.org/jira/browse/CASSANDRA-9563 Project: Cassandra Issue Type: Improvement Reporter: Olivier Michallat Assignee: Robert Stupp Priority: Minor Fix For: 2.2.0 rc2 An early preview of the Java driver 2.2 was provided for inclusion in Cassandra 2.2.0-rc1. It uses a custom Java type to represent CQL type {{DATE}}. Currently that Java type is called {{DateWithoutTime}}. We'd like to rename it to {{LocalDate}}. This would be a breaking change for Cassandra, because that type is visible from UDF implementations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9618) Consider deprecating sstable2json/json2sstable in 2.2
[ https://issues.apache.org/jira/browse/CASSANDRA-9618?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592012#comment-14592012 ] Aleksey Yeschenko commented on CASSANDRA-9618: -- Agreed. +1 to that. Consider deprecating sstable2json/json2sstable in 2.2 - Key: CASSANDRA-9618 URL: https://issues.apache.org/jira/browse/CASSANDRA-9618 Project: Cassandra Issue Type: Task Reporter: Sylvain Lebresne Fix For: 2.2.0 rc2 The rational is explained in CASSANDRA-7464 but to rephrase a bit: * json2sstable is pretty much useless, {{CQLSSTableWriter}} is way more flexible if you need to write sstable directly. * sstable2json is really only potentially useful for debugging, but it's pretty bad at that (it's output is not really all that helpul in modern Cassandra in particular). Now, it happens that updating those tool for CASSANDRA-8099, while possible, is a bit involved. So I don't think it make sense to invest effort in maintain these tools. So I propose to deprecate these in 2.2 with removal in 3.0. I'll note that having a tool to help debugging sstable can be useful, but I propose to add a tool for that purpose with CASSANDRA-7464. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/2] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67baaef0 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67baaef0 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67baaef0 Branch: refs/heads/trunk Commit: 67baaef0f93fde85aa194ccf651fa673b0acfdf3 Parents: 4938ab5 a133992 Author: Robert Stupp sn...@snazy.de Authored: Thu Jun 18 18:03:27 2015 +0200 Committer: Robert Stupp sn...@snazy.de Committed: Thu Jun 18 18:03:27 2015 +0200 -- CHANGES.txt | 1 + ...r-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar | Bin 2155169 - 0 bytes ...r-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar | Bin 0 - 2154972 bytes .../cassandra/hadoop/cql3/CqlRecordReader.java | 6 +++--- 4 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/67baaef0/CHANGES.txt -- diff --cc CHANGES.txt index 16d9722,76a42ab..39309a7 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,5 +1,16 @@@ +3.0: + * Add nodetool command to replay batchlog (CASSANDRA-9547) + * Make file buffer cache independent of paths being read (CASSANDRA-8897) + * Remove deprecated legacy Hadoop code (CASSANDRA-9353) + * Decommissioned nodes will not rejoin the cluster (CASSANDRA-8801) + * Change gossip stabilization to use endpoit size (CASSANDRA-9401) + * Change default garbage collector to G1 (CASSANDRA-7486) + * Populate TokenMetadata early during startup (CASSANDRA-9317) + * undeprecate cache recentHitRate (CASSANDRA-6591) + + 2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573)
[1/2] cassandra git commit: Rename class for DATE type in Java driver
Repository: cassandra Updated Branches: refs/heads/trunk 4938ab5bf - 67baaef0f Rename class for DATE type in Java driver patch by Robert Stupp; reviewed by Aleksey Yeschenko for CASSANDRA-9563 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/a1339927 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/a1339927 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/a1339927 Branch: refs/heads/trunk Commit: a13399279b4e863779af938fb4f7da9abc4755d2 Parents: 94be12c Author: Robert Stupp sn...@snazy.de Authored: Thu Jun 18 18:02:45 2015 +0200 Committer: Robert Stupp sn...@snazy.de Committed: Thu Jun 18 18:02:45 2015 +0200 -- CHANGES.txt | 1 + ...r-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar | Bin 2155169 - 0 bytes ...r-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar | Bin 0 - 2154972 bytes .../cassandra/hadoop/cql3/CqlRecordReader.java | 6 +++--- 4 files changed, 4 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 3671af9..76a42ab 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar -- diff --git a/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar b/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar deleted file mode 100644 index d75a595..000 Binary files a/lib/cassandra-driver-core-2.2.0-rc1-SNAPSHOT-20150603-shaded.jar and /dev/null differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar -- diff --git a/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar b/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar new file mode 100644 index 000..7d971df Binary files /dev/null and b/lib/cassandra-driver-core-2.2.0-rc2-SNAPSHOT-20150617-shaded.jar differ http://git-wip-us.apache.org/repos/asf/cassandra/blob/a1339927/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java -- diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java index 3e79ad1..6db851d 100644 --- a/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java +++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlRecordReader.java @@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.ColumnDefinitions; import com.datastax.driver.core.ColumnMetadata; -import com.datastax.driver.core.DateWithoutTime; +import com.datastax.driver.core.LocalDate; import com.datastax.driver.core.Metadata; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; @@ -418,13 +418,13 @@ public class CqlRecordReader extends RecordReaderLong, Row } @Override -public DateWithoutTime getDate(int i) +public LocalDate getDate(int i) { return row.getDate(i); } @Override -public DateWithoutTime getDate(String s) +public LocalDate getDate(String s) { return row.getDate(s); }
[jira] [Updated] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Study Hsueh updated CASSANDRA-9607: --- Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 was: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: load.png After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[04/12] cassandra git commit: Expose some internals of SelectStatement for inspection by QueryHandlers
Expose some internals of SelectStatement for inspection by QueryHandlers patch by Sam Tunnicliffe; reviewed by Benjamin Lerer and Mick Semb Wever for CASSANDRA-9532 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f32cff8e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f32cff8e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f32cff8e Branch: refs/heads/trunk Commit: f32cff8e1fb69317219ffaee81b5861a54b83a1b Parents: ad8047a Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 4 18:12:35 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:11:00 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 37 ++- .../cassandra/cql3/statements/Selection.java| 80 +++--- .../cql3/statements/SelectionColumnMapping.java | 106 .../cql3/statements/SelectionColumns.java | 19 ++ .../statements/SelectionColumnMappingTest.java | 244 +++ 7 files changed, 476 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 753fb1c..a235528 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.16: + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --git a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java index 4dae701..089a1c5 100644 --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@ -17,6 +17,8 @@ */ package org.apache.cassandra.cql3; +import com.google.common.base.Objects; + import org.apache.cassandra.db.marshal.AbstractType; public class ColumnSpecification @@ -40,4 +42,24 @@ public class ColumnSpecification // Not fully conventional, but convenient (for error message to users in particular) return name.toString(); } + +public boolean equals(Object obj) +{ +if (null == obj) +return false; + +if(!(obj instanceof ColumnSpecification)) +return false; + +ColumnSpecification other = (ColumnSpecification)obj; +return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); +} + +public int hashCode() +{ +return Objects.hashCode(ksName, cfName, name, type); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/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 95e0441..1c19760 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -60,7 +60,10 @@ import org.slf4j.LoggerFactory; /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. - * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache { @@ -184,6 +187,14 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache return boundTerms; } +/** + * May be used by custom QueryHandler implementations + */ +public Selection getSelection() +{ +return selection; +} + public void checkAccess(ClientState state) throws InvalidRequestException, UnauthorizedException { state.hasColumnFamilyAccess(keyspace(), columnFamily(), Permission.SELECT); @@ -580,7 +591,10 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache return new
[12/12] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/40424ee5 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/40424ee5 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/40424ee5 Branch: refs/heads/trunk Commit: 40424ee598d2c64e7530a5bf0febd0bd4e8d825c Parents: 67baaef 1f8516d Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:44:34 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:44:34 2015 +0100 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/ColumnIdentifier.java | 6 +- .../cassandra/cql3/ColumnSpecification.java | 6 + .../restrictions/StatementRestrictions.java | 22 +- .../selection/AbstractFunctionSelector.java | 13 + .../cassandra/cql3/selection/FieldSelector.java | 8 +- .../cassandra/cql3/selection/Selectable.java| 10 +- .../cassandra/cql3/selection/Selection.java | 58 +-- .../cql3/selection/SelectionColumnMapping.java | 118 +++ .../cql3/selection/SelectionColumns.java| 18 + .../cassandra/cql3/selection/Selector.java | 13 + .../cql3/selection/SelectorFactories.java | 2 +- .../cql3/selection/SimpleSelector.java | 17 +- .../cql3/selection/WritetimeOrTTLSelector.java | 14 +- .../cql3/statements/SelectStatement.java| 28 +- .../selection/SelectionColumnMappingTest.java | 353 +++ 16 files changed, 633 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/40424ee5/CHANGES.txt --
[07/12] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0452e74f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0452e74f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0452e74f Branch: refs/heads/trunk Commit: 0452e74f59182aee515cc6920e35287def86c9fe Parents: 9966419 f32cff8 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:32:04 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:34:27 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 44 +++- .../cassandra/cql3/statements/Selection.java| 79 +++--- .../cql3/statements/SelectionColumnMapping.java | 107 .../cql3/statements/SelectionColumns.java | 18 ++ .../statements/SelectionColumnMappingTest.java | 252 +++ 7 files changed, 492 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/CHANGES.txt -- diff --cc CHANGES.txt index 1d72c9a,a235528..899ea7c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,5 +1,7 @@@ -2.0.16: +2.1.7 + * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) +Merged from 2.0 + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --cc src/java/org/apache/cassandra/cql3/ColumnSpecification.java index d2e08f9,089a1c5..f5f921d --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@@ -33,4 -35,31 +35,24 @@@ public class ColumnSpecificatio this.name = name; this.type = type; } + -@Override -public String toString() -{ -// Not fully conventional, but convenient (for error message to users in particular) -return name.toString(); -} - + public boolean equals(Object obj) + { + if (null == obj) + return false; + + if(!(obj instanceof ColumnSpecification)) + return false; + + ColumnSpecification other = (ColumnSpecification)obj; + return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); + } + + public int hashCode() + { + return Objects.hashCode(ksName, cfName, name, type); + } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 51f4941,1c19760..d0566eb --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@@ -58,9 -60,12 +58,13 @@@ import org.slf4j.LoggerFactory /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. + * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ -public class SelectStatement implements CQLStatement, MeasurableForPreparedCache +public class SelectStatement implements CQLStatement { private static final Logger logger = LoggerFactory.getLogger(SelectStatement.class); @@@ -170,6 -168,20 +174,9 @@@ : selection.getResultMetadata(); } -public long measureForPreparedCache(MemoryMeter meter) -{ -return meter.measure(this) - + meter.measureDeep(parameters) - + meter.measureDeep(selection) - + (limit == null ? 0 : meter.measureDeep(limit)) - + meter.measureDeep(keyRestrictions) - + meter.measureDeep(columnRestrictions) - + meter.measureDeep(metadataRestrictions) - + meter.measureDeep(restrictedNames) - + (sliceRestriction == null ? 0 :
[11/12] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1f8516da Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1f8516da Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1f8516da Branch: refs/heads/trunk Commit: 1f8516da82fc19500d3b00d37780265c34a358b0 Parents: a133992 0452e74 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:39:43 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:41:06 2015 +0100 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/ColumnIdentifier.java | 6 +- .../cassandra/cql3/ColumnSpecification.java | 6 + .../restrictions/StatementRestrictions.java | 22 +- .../selection/AbstractFunctionSelector.java | 13 + .../cassandra/cql3/selection/FieldSelector.java | 8 +- .../cassandra/cql3/selection/Selectable.java| 10 +- .../cassandra/cql3/selection/Selection.java | 58 +-- .../cql3/selection/SelectionColumnMapping.java | 118 +++ .../cql3/selection/SelectionColumns.java| 18 + .../cassandra/cql3/selection/Selector.java | 13 + .../cql3/selection/SelectorFactories.java | 2 +- .../cql3/selection/SimpleSelector.java | 17 +- .../cql3/selection/WritetimeOrTTLSelector.java | 14 +- .../cql3/statements/SelectStatement.java| 28 +- .../selection/SelectionColumnMappingTest.java | 353 +++ 16 files changed, 633 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/CHANGES.txt -- diff --cc CHANGES.txt index 76a42ab,899ea7c..fb44c9a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,7 +1,17 @@@ -2.1.7 +2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) +Merged from 2.1: * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) + * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java -- diff --cc src/java/org/apache/cassandra/cql3/ColumnIdentifier.java index 467b214,1501479..823af94 --- a/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java +++ b/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java @@@ -17,20 -17,16 +17,20 @@@ */ package org.apache.cassandra.cql3; -import java.util.Locale; + import java.nio.ByteBuffer; +import java.util.List; +import java.util.Locale; - import java.nio.ByteBuffer; import org.apache.cassandra.cache.IMeasurableMemory; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; -import org.apache.cassandra.cql3.statements.Selectable; +import org.apache.cassandra.cql3.selection.Selectable; +import org.apache.cassandra.cql3.selection.Selector; +import org.apache.cassandra.cql3.selection.SimpleSelector; import org.apache.cassandra.db.marshal.AbstractType; - import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.db.marshal.CompositeType; import org.apache.cassandra.db.marshal.UTF8Type; ++import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.ObjectSizes; import org.apache.cassandra.utils.memory.AbstractAllocator; @@@ -109,14 -105,6 +109,14 @@@ public class ColumnIdentifier extends o return new ColumnIdentifier(allocator.clone(bytes), text); } +public Selector.Factory newSelectorFactory(CFMetaData cfm, ListColumnDefinition defs) throws InvalidRequestException +{ +ColumnDefinition def = cfm.getColumnDefinition(this); +if (def == null) +throw new InvalidRequestException(String.format(Undefined
[01/12] cassandra git commit: Expose some internals of SelectStatement for inspection by QueryHandlers
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 ad8047abd - f32cff8e1 refs/heads/cassandra-2.1 9966419db - 0452e74f5 refs/heads/cassandra-2.2 a13399279 - 1f8516da8 refs/heads/trunk 67baaef0f - 40424ee59 Expose some internals of SelectStatement for inspection by QueryHandlers patch by Sam Tunnicliffe; reviewed by Benjamin Lerer and Mick Semb Wever for CASSANDRA-9532 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f32cff8e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f32cff8e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f32cff8e Branch: refs/heads/cassandra-2.0 Commit: f32cff8e1fb69317219ffaee81b5861a54b83a1b Parents: ad8047a Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 4 18:12:35 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:11:00 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 37 ++- .../cassandra/cql3/statements/Selection.java| 80 +++--- .../cql3/statements/SelectionColumnMapping.java | 106 .../cql3/statements/SelectionColumns.java | 19 ++ .../statements/SelectionColumnMappingTest.java | 244 +++ 7 files changed, 476 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 753fb1c..a235528 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.16: + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --git a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java index 4dae701..089a1c5 100644 --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@ -17,6 +17,8 @@ */ package org.apache.cassandra.cql3; +import com.google.common.base.Objects; + import org.apache.cassandra.db.marshal.AbstractType; public class ColumnSpecification @@ -40,4 +42,24 @@ public class ColumnSpecification // Not fully conventional, but convenient (for error message to users in particular) return name.toString(); } + +public boolean equals(Object obj) +{ +if (null == obj) +return false; + +if(!(obj instanceof ColumnSpecification)) +return false; + +ColumnSpecification other = (ColumnSpecification)obj; +return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); +} + +public int hashCode() +{ +return Objects.hashCode(ksName, cfName, name, type); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/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 95e0441..1c19760 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -60,7 +60,10 @@ import org.slf4j.LoggerFactory; /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. - * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache { @@ -184,6 +187,14 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache return boundTerms; } +/** + * May be used by custom QueryHandler implementations + */ +public Selection getSelection() +{ +return selection; +} + public void checkAccess(ClientState state) throws InvalidRequestException,
[jira] [Commented] (CASSANDRA-9563) Rename class for DATE type in Java driver
[ https://issues.apache.org/jira/browse/CASSANDRA-9563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592015#comment-14592015 ] Aleksey Yeschenko commented on CASSANDRA-9563: -- +1 Rename class for DATE type in Java driver - Key: CASSANDRA-9563 URL: https://issues.apache.org/jira/browse/CASSANDRA-9563 Project: Cassandra Issue Type: Improvement Reporter: Olivier Michallat Assignee: Robert Stupp Priority: Minor Fix For: 2.2.0 rc2 An early preview of the Java driver 2.2 was provided for inclusion in Cassandra 2.2.0-rc1. It uses a custom Java type to represent CQL type {{DATE}}. Currently that Java type is called {{DateWithoutTime}}. We'd like to rename it to {{LocalDate}}. This would be a breaking change for Cassandra, because that type is visible from UDF implementations. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9619) Read performance regression on trunk and 2.2 vs. 2.1
[ https://issues.apache.org/jira/browse/CASSANDRA-9619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9619: --- Fix Version/s: 2.2.0 rc2 Read performance regression on trunk and 2.2 vs. 2.1 Key: CASSANDRA-9619 URL: https://issues.apache.org/jira/browse/CASSANDRA-9619 Project: Cassandra Issue Type: Bug Reporter: Jim Witschey Labels: perfomance Fix For: 2.2.0 rc2 There seems to be a regression in read in 2.2 and trunk, as compared to 2.1 and 2.0. I found it running cstar_perf jobs with 50-column tables. 2.2 may be worse than trunk, though my results on that aren't consistent. The relevant cstar_perf jobs are here: http://cstar.datastax.com/tests/id/273e2ea8-0fc8-11e5-816c-42010af0688f http://cstar.datastax.com/tests/id/3a8002d6-1480-11e5-97ff-42010af0688f http://cstar.datastax.com/tests/id/40ff2766-1248-11e5-bac8-42010af0688f The sequence of commands for these jobs is {code} stress write n=6500 -rate threads=300 -col n=FIXED\(50\) stress read n=6500 -rate threads=300 stress read n=6500 -rate threads=300 {code} Have a look at the operations per second going from [the first read operation|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=174379.7] to [the second read operation|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=174379.7]. They've fallen from ~135K to ~100K comparing trunk to 2.1 and 2.0. It's slightly worse for 2.2, and 2.2 operations per second fall continuously from the first to the second read operation. There's a corresponding increase in read latency -- it's noticable on trunk and pretty bad on 2.2. Again, the latency gets higher and higher on 2.2 as the read operations progress (see the graphs [here|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=95th_latencyoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=729.08ymin=0ymax=17.27] and [here|http://cstar.datastax.com/graph?stats=273e2ea8-0fc8-11e5-816c-42010af0688fmetric=95th_latencyoperation=3_readsmoothing=1show_aggregates=truexmin=0xmax=928.62ymin=0ymax=14.52]). I see a similar regression in a [more recent test|http://cstar.datastax.com/graph?stats=40ff2766-1248-11e5-bac8-42010af0688fmetric=op_rateoperation=2_readsmoothing=1show_aggregates=truexmin=0xmax=752.62ymin=0ymax=171799.1], though in this one trunk performed worse than 2.2. This run also didn't display the increasing latency in 2.2. This regression may show for smaller numbers of columns, but not as prominently, as shown [in the results to this test with the stress default of 5 columns|http://cstar.datastax.com/graph?stats=227cb89e-0fc8-11e5-9f14-42010af0688fmetric=99.9th_latencyoperation=3_readsmoothing=1show_aggregates=truexmin=0xmax=498.19ymin=0ymax=334.29]. There's an increase in latency variability on trunk and 2.2, but I don't see a regression in summary statistics. My measurements aren't confounded by [the recent regression in cassandra-stress|https://issues.apache.org/jira/browse/CASSANDRA-9558]; cstar_perf uses the same stress program (from trunk) on all versions on the cluster. I'm currently working to - reproduce with a smaller workload so this is easier to bisect and debug. - get results with larger numbers of columns, since we've seen the regression on 50 columns but not the stress default of 5. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9610) Increased response time with cassandra 2.0.9 from 1.2.19
[ https://issues.apache.org/jira/browse/CASSANDRA-9610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592028#comment-14592028 ] Tyler Hobbs commented on CASSANDRA-9610: Well, in the 1.2.19 trace it shows host1 performing a scan for the full token range, which normally wouldn't happen with vnodes. What are your replication settings for that keyspace on both clusters? (You can just paste the output of {{DESCRIBE KEYSPACE}} in cqlsh.) Increased response time with cassandra 2.0.9 from 1.2.19 Key: CASSANDRA-9610 URL: https://issues.apache.org/jira/browse/CASSANDRA-9610 Project: Cassandra Issue Type: Bug Reporter: Maitrayee Attachments: servicedefinition_schema.txt, traceout_1.2.19, traceout_2.0.9 I was using Cassandra 1.2.19. Recently upgraded to 2.0.9. Queries with secondary index was completing much faster in 1.2.19 Validated this with trace on via cqlsh -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robbie Strickland updated CASSANDRA-9607: - Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 was: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: load.png After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-6177) remove all sleeps in the dtests
[ https://issues.apache.org/jira/browse/CASSANDRA-6177?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-6177: --- Assignee: Steve Wang (was: Philip Thompson) remove all sleeps in the dtests --- Key: CASSANDRA-6177 URL: https://issues.apache.org/jira/browse/CASSANDRA-6177 Project: Cassandra Issue Type: Test Reporter: Brandon Williams Assignee: Steve Wang The dtests use a ton of sleep calls for various things, most of which is guessing if Cassandra has finished doing something or not. Guessing is problematic and shouldn't be necessary -- a prime example of this is creating a ks or cf. When done over cql, we sleep and hope it's done propagating, but when done over thrift we actually check for schema agreement. We should be able to eliminate the sleeps and reliably detect when it's time for the next step programmatically. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[06/12] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0452e74f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0452e74f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0452e74f Branch: refs/heads/cassandra-2.1 Commit: 0452e74f59182aee515cc6920e35287def86c9fe Parents: 9966419 f32cff8 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:32:04 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:34:27 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 44 +++- .../cassandra/cql3/statements/Selection.java| 79 +++--- .../cql3/statements/SelectionColumnMapping.java | 107 .../cql3/statements/SelectionColumns.java | 18 ++ .../statements/SelectionColumnMappingTest.java | 252 +++ 7 files changed, 492 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/CHANGES.txt -- diff --cc CHANGES.txt index 1d72c9a,a235528..899ea7c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,5 +1,7 @@@ -2.0.16: +2.1.7 + * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) +Merged from 2.0 + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --cc src/java/org/apache/cassandra/cql3/ColumnSpecification.java index d2e08f9,089a1c5..f5f921d --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@@ -33,4 -35,31 +35,24 @@@ public class ColumnSpecificatio this.name = name; this.type = type; } + -@Override -public String toString() -{ -// Not fully conventional, but convenient (for error message to users in particular) -return name.toString(); -} - + public boolean equals(Object obj) + { + if (null == obj) + return false; + + if(!(obj instanceof ColumnSpecification)) + return false; + + ColumnSpecification other = (ColumnSpecification)obj; + return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); + } + + public int hashCode() + { + return Objects.hashCode(ksName, cfName, name, type); + } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 51f4941,1c19760..d0566eb --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@@ -58,9 -60,12 +58,13 @@@ import org.slf4j.LoggerFactory /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. + * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ -public class SelectStatement implements CQLStatement, MeasurableForPreparedCache +public class SelectStatement implements CQLStatement { private static final Logger logger = LoggerFactory.getLogger(SelectStatement.class); @@@ -170,6 -168,20 +174,9 @@@ : selection.getResultMetadata(); } -public long measureForPreparedCache(MemoryMeter meter) -{ -return meter.measure(this) - + meter.measureDeep(parameters) - + meter.measureDeep(selection) - + (limit == null ? 0 : meter.measureDeep(limit)) - + meter.measureDeep(keyRestrictions) - + meter.measureDeep(columnRestrictions) - + meter.measureDeep(metadataRestrictions) - + meter.measureDeep(restrictedNames) - + (sliceRestriction ==
[09/12] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/1f8516da Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/1f8516da Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/1f8516da Branch: refs/heads/cassandra-2.2 Commit: 1f8516da82fc19500d3b00d37780265c34a358b0 Parents: a133992 0452e74 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:39:43 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:41:06 2015 +0100 -- CHANGES.txt | 1 + .../apache/cassandra/cql3/ColumnIdentifier.java | 6 +- .../cassandra/cql3/ColumnSpecification.java | 6 + .../restrictions/StatementRestrictions.java | 22 +- .../selection/AbstractFunctionSelector.java | 13 + .../cassandra/cql3/selection/FieldSelector.java | 8 +- .../cassandra/cql3/selection/Selectable.java| 10 +- .../cassandra/cql3/selection/Selection.java | 58 +-- .../cql3/selection/SelectionColumnMapping.java | 118 +++ .../cql3/selection/SelectionColumns.java| 18 + .../cassandra/cql3/selection/Selector.java | 13 + .../cql3/selection/SelectorFactories.java | 2 +- .../cql3/selection/SimpleSelector.java | 17 +- .../cql3/selection/WritetimeOrTTLSelector.java | 14 +- .../cql3/statements/SelectStatement.java| 28 +- .../selection/SelectionColumnMappingTest.java | 353 +++ 16 files changed, 633 insertions(+), 54 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/CHANGES.txt -- diff --cc CHANGES.txt index 76a42ab,899ea7c..fb44c9a --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,16 -1,7 +1,17 @@@ -2.1.7 +2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) +Merged from 2.1: * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) + * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java -- diff --cc src/java/org/apache/cassandra/cql3/ColumnIdentifier.java index 467b214,1501479..823af94 --- a/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java +++ b/src/java/org/apache/cassandra/cql3/ColumnIdentifier.java @@@ -17,20 -17,16 +17,20 @@@ */ package org.apache.cassandra.cql3; -import java.util.Locale; + import java.nio.ByteBuffer; +import java.util.List; +import java.util.Locale; - import java.nio.ByteBuffer; import org.apache.cassandra.cache.IMeasurableMemory; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.ColumnDefinition; -import org.apache.cassandra.cql3.statements.Selectable; +import org.apache.cassandra.cql3.selection.Selectable; +import org.apache.cassandra.cql3.selection.Selector; +import org.apache.cassandra.cql3.selection.SimpleSelector; import org.apache.cassandra.db.marshal.AbstractType; - import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.db.marshal.CompositeType; import org.apache.cassandra.db.marshal.UTF8Type; ++import org.apache.cassandra.exceptions.InvalidRequestException; import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.utils.ObjectSizes; import org.apache.cassandra.utils.memory.AbstractAllocator; @@@ -109,14 -105,6 +109,14 @@@ public class ColumnIdentifier extends o return new ColumnIdentifier(allocator.clone(bytes), text); } +public Selector.Factory newSelectorFactory(CFMetaData cfm, ListColumnDefinition defs) throws InvalidRequestException +{ +ColumnDefinition def = cfm.getColumnDefinition(this); +if (def == null) +throw new
[10/12] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/src/java/org/apache/cassandra/cql3/selection/Selector.java -- diff --cc src/java/org/apache/cassandra/cql3/selection/Selector.java index 747dc60,000..9b7f0ba mode 100644,00..100644 --- a/src/java/org/apache/cassandra/cql3/selection/Selector.java +++ b/src/java/org/apache/cassandra/cql3/selection/Selector.java @@@ -1,179 -1,0 +1,192 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.cql3.selection; + +import java.nio.ByteBuffer; +import java.util.Collections; + +import org.apache.cassandra.config.CFMetaData; ++import org.apache.cassandra.config.ColumnDefinition; +import org.apache.cassandra.cql3.AssignmentTestable; +import org.apache.cassandra.cql3.ColumnIdentifier; +import org.apache.cassandra.cql3.ColumnSpecification; +import org.apache.cassandra.cql3.functions.Function; +import org.apache.cassandra.cql3.selection.Selection.ResultSetBuilder; +import org.apache.cassandra.db.marshal.AbstractType; +import org.apache.cassandra.exceptions.InvalidRequestException; + +/** + * A codeSelector/code is used to convert the data returned by the storage engine into the data requested by the + * user. They correspond to the lt;selectorgt; elements from the select clause. + * pSince the introduction of aggregation, codeSelector/codes cannot be called anymore by multiple threads + * as they have an internal state./p + */ +public abstract class Selector implements AssignmentTestable +{ +/** + * A factory for codeSelector/code instances. + */ +public static abstract class Factory +{ +public IterableFunction getFunctions() +{ +return Collections.emptySet(); +} + +/** + * Returns the column specification corresponding to the output value of the selector instances created by + * this factory. + * + * @param cfm the column family meta data + * @return a column specification + */ +public final ColumnSpecification getColumnSpecification(CFMetaData cfm) +{ +return new ColumnSpecification(cfm.ksName, + cfm.cfName, + new ColumnIdentifier(getColumnName(), true), + getReturnType()); +} + +/** + * Creates a new codeSelector/code instance. + * + * @return a new codeSelector/code instance + */ +public abstract Selector newInstance() throws InvalidRequestException; + +/** + * Checks if this factory creates selectors instances that creates aggregates. + * + * @return codetrue/code if this factory creates selectors instances that creates aggregates, + * codefalse/code otherwise + */ +public boolean isAggregateSelectorFactory() +{ +return false; +} + +/** + * Checks if this factory creates codewritetime/code selectors instances. + * + * @return codetrue/code if this factory creates codewritetime/code selectors instances, + * codefalse/code otherwise + */ +public boolean isWritetimeSelectorFactory() +{ +return false; +} + +/** + * Checks if this factory creates codeTTL/code selectors instances. + * + * @return codetrue/code if this factory creates codeTTL/code selectors instances, + * codefalse/code otherwise + */ +public boolean isTTLSelectorFactory() +{ +return false; +} + +/** + * Returns the name of the column corresponding to the output value of the selector instances created by + * this factory. + * + * @return a column name + */ +protected abstract String getColumnName(); + +/** + * Returns the type of the values returned by the selector instances
[05/12] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0452e74f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0452e74f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0452e74f Branch: refs/heads/cassandra-2.2 Commit: 0452e74f59182aee515cc6920e35287def86c9fe Parents: 9966419 f32cff8 Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 18 17:32:04 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:34:27 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 44 +++- .../cassandra/cql3/statements/Selection.java| 79 +++--- .../cql3/statements/SelectionColumnMapping.java | 107 .../cql3/statements/SelectionColumns.java | 18 ++ .../statements/SelectionColumnMappingTest.java | 252 +++ 7 files changed, 492 insertions(+), 31 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/CHANGES.txt -- diff --cc CHANGES.txt index 1d72c9a,a235528..899ea7c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,5 +1,7 @@@ -2.0.16: +2.1.7 + * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) +Merged from 2.0 + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --cc src/java/org/apache/cassandra/cql3/ColumnSpecification.java index d2e08f9,089a1c5..f5f921d --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@@ -33,4 -35,31 +35,24 @@@ public class ColumnSpecificatio this.name = name; this.type = type; } + -@Override -public String toString() -{ -// Not fully conventional, but convenient (for error message to users in particular) -return name.toString(); -} - + public boolean equals(Object obj) + { + if (null == obj) + return false; + + if(!(obj instanceof ColumnSpecification)) + return false; + + ColumnSpecification other = (ColumnSpecification)obj; + return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); + } + + public int hashCode() + { + return Objects.hashCode(ksName, cfName, name, type); + } } http://git-wip-us.apache.org/repos/asf/cassandra/blob/0452e74f/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- diff --cc src/java/org/apache/cassandra/cql3/statements/SelectStatement.java index 51f4941,1c19760..d0566eb --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@@ -58,9 -60,12 +58,13 @@@ import org.slf4j.LoggerFactory /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. + * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ -public class SelectStatement implements CQLStatement, MeasurableForPreparedCache +public class SelectStatement implements CQLStatement { private static final Logger logger = LoggerFactory.getLogger(SelectStatement.class); @@@ -170,6 -168,20 +174,9 @@@ : selection.getResultMetadata(); } -public long measureForPreparedCache(MemoryMeter meter) -{ -return meter.measure(this) - + meter.measureDeep(parameters) - + meter.measureDeep(selection) - + (limit == null ? 0 : meter.measureDeep(limit)) - + meter.measureDeep(keyRestrictions) - + meter.measureDeep(columnRestrictions) - + meter.measureDeep(metadataRestrictions) - + meter.measureDeep(restrictedNames) - + (sliceRestriction ==
[08/12] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/1f8516da/src/java/org/apache/cassandra/cql3/selection/Selector.java -- diff --cc src/java/org/apache/cassandra/cql3/selection/Selector.java index 747dc60,000..9b7f0ba mode 100644,00..100644 --- a/src/java/org/apache/cassandra/cql3/selection/Selector.java +++ b/src/java/org/apache/cassandra/cql3/selection/Selector.java @@@ -1,179 -1,0 +1,192 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.cql3.selection; + +import java.nio.ByteBuffer; +import java.util.Collections; + +import org.apache.cassandra.config.CFMetaData; ++import org.apache.cassandra.config.ColumnDefinition; +import org.apache.cassandra.cql3.AssignmentTestable; +import org.apache.cassandra.cql3.ColumnIdentifier; +import org.apache.cassandra.cql3.ColumnSpecification; +import org.apache.cassandra.cql3.functions.Function; +import org.apache.cassandra.cql3.selection.Selection.ResultSetBuilder; +import org.apache.cassandra.db.marshal.AbstractType; +import org.apache.cassandra.exceptions.InvalidRequestException; + +/** + * A codeSelector/code is used to convert the data returned by the storage engine into the data requested by the + * user. They correspond to the lt;selectorgt; elements from the select clause. + * pSince the introduction of aggregation, codeSelector/codes cannot be called anymore by multiple threads + * as they have an internal state./p + */ +public abstract class Selector implements AssignmentTestable +{ +/** + * A factory for codeSelector/code instances. + */ +public static abstract class Factory +{ +public IterableFunction getFunctions() +{ +return Collections.emptySet(); +} + +/** + * Returns the column specification corresponding to the output value of the selector instances created by + * this factory. + * + * @param cfm the column family meta data + * @return a column specification + */ +public final ColumnSpecification getColumnSpecification(CFMetaData cfm) +{ +return new ColumnSpecification(cfm.ksName, + cfm.cfName, + new ColumnIdentifier(getColumnName(), true), + getReturnType()); +} + +/** + * Creates a new codeSelector/code instance. + * + * @return a new codeSelector/code instance + */ +public abstract Selector newInstance() throws InvalidRequestException; + +/** + * Checks if this factory creates selectors instances that creates aggregates. + * + * @return codetrue/code if this factory creates selectors instances that creates aggregates, + * codefalse/code otherwise + */ +public boolean isAggregateSelectorFactory() +{ +return false; +} + +/** + * Checks if this factory creates codewritetime/code selectors instances. + * + * @return codetrue/code if this factory creates codewritetime/code selectors instances, + * codefalse/code otherwise + */ +public boolean isWritetimeSelectorFactory() +{ +return false; +} + +/** + * Checks if this factory creates codeTTL/code selectors instances. + * + * @return codetrue/code if this factory creates codeTTL/code selectors instances, + * codefalse/code otherwise + */ +public boolean isTTLSelectorFactory() +{ +return false; +} + +/** + * Returns the name of the column corresponding to the output value of the selector instances created by + * this factory. + * + * @return a column name + */ +protected abstract String getColumnName(); + +/** + * Returns the type of the values returned by the selector instances
[03/12] cassandra git commit: Expose some internals of SelectStatement for inspection by QueryHandlers
Expose some internals of SelectStatement for inspection by QueryHandlers patch by Sam Tunnicliffe; reviewed by Benjamin Lerer and Mick Semb Wever for CASSANDRA-9532 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f32cff8e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f32cff8e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f32cff8e Branch: refs/heads/cassandra-2.2 Commit: f32cff8e1fb69317219ffaee81b5861a54b83a1b Parents: ad8047a Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 4 18:12:35 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:11:00 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 37 ++- .../cassandra/cql3/statements/Selection.java| 80 +++--- .../cql3/statements/SelectionColumnMapping.java | 106 .../cql3/statements/SelectionColumns.java | 19 ++ .../statements/SelectionColumnMappingTest.java | 244 +++ 7 files changed, 476 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 753fb1c..a235528 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.16: + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --git a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java index 4dae701..089a1c5 100644 --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@ -17,6 +17,8 @@ */ package org.apache.cassandra.cql3; +import com.google.common.base.Objects; + import org.apache.cassandra.db.marshal.AbstractType; public class ColumnSpecification @@ -40,4 +42,24 @@ public class ColumnSpecification // Not fully conventional, but convenient (for error message to users in particular) return name.toString(); } + +public boolean equals(Object obj) +{ +if (null == obj) +return false; + +if(!(obj instanceof ColumnSpecification)) +return false; + +ColumnSpecification other = (ColumnSpecification)obj; +return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); +} + +public int hashCode() +{ +return Objects.hashCode(ksName, cfName, name, type); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/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 95e0441..1c19760 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -60,7 +60,10 @@ import org.slf4j.LoggerFactory; /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. - * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache { @@ -184,6 +187,14 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache return boundTerms; } +/** + * May be used by custom QueryHandler implementations + */ +public Selection getSelection() +{ +return selection; +} + public void checkAccess(ClientState state) throws InvalidRequestException, UnauthorizedException { state.hasColumnFamilyAccess(keyspace(), columnFamily(), Permission.SELECT); @@ -580,7 +591,10 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
[02/12] cassandra git commit: Expose some internals of SelectStatement for inspection by QueryHandlers
Expose some internals of SelectStatement for inspection by QueryHandlers patch by Sam Tunnicliffe; reviewed by Benjamin Lerer and Mick Semb Wever for CASSANDRA-9532 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f32cff8e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f32cff8e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f32cff8e Branch: refs/heads/cassandra-2.1 Commit: f32cff8e1fb69317219ffaee81b5861a54b83a1b Parents: ad8047a Author: Sam Tunnicliffe s...@beobal.com Authored: Thu Jun 4 18:12:35 2015 +0100 Committer: Sam Tunnicliffe s...@beobal.com Committed: Thu Jun 18 17:11:00 2015 +0100 -- CHANGES.txt | 1 + .../cassandra/cql3/ColumnSpecification.java | 22 ++ .../cql3/statements/SelectStatement.java| 37 ++- .../cassandra/cql3/statements/Selection.java| 80 +++--- .../cql3/statements/SelectionColumnMapping.java | 106 .../cql3/statements/SelectionColumns.java | 19 ++ .../statements/SelectionColumnMappingTest.java | 244 +++ 7 files changed, 476 insertions(+), 33 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 753fb1c..a235528 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.16: + * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496) * Periodically submit background compaction tasks (CASSANDRA-9592) * Set HAS_MORE_PAGES flag to false when PagingState is null (CASSANDRA-9571) http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/src/java/org/apache/cassandra/cql3/ColumnSpecification.java -- diff --git a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java index 4dae701..089a1c5 100644 --- a/src/java/org/apache/cassandra/cql3/ColumnSpecification.java +++ b/src/java/org/apache/cassandra/cql3/ColumnSpecification.java @@ -17,6 +17,8 @@ */ package org.apache.cassandra.cql3; +import com.google.common.base.Objects; + import org.apache.cassandra.db.marshal.AbstractType; public class ColumnSpecification @@ -40,4 +42,24 @@ public class ColumnSpecification // Not fully conventional, but convenient (for error message to users in particular) return name.toString(); } + +public boolean equals(Object obj) +{ +if (null == obj) +return false; + +if(!(obj instanceof ColumnSpecification)) +return false; + +ColumnSpecification other = (ColumnSpecification)obj; +return Objects.equal(ksName, other.ksName) + Objects.equal(cfName, other.cfName) + Objects.equal(name, other.name) + Objects.equal(type, other.type); +} + +public int hashCode() +{ +return Objects.hashCode(ksName, cfName, name, type); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/f32cff8e/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 95e0441..1c19760 100644 --- a/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java @@ -60,7 +60,10 @@ import org.slf4j.LoggerFactory; /** * Encapsulates a completely parsed SELECT query, including the target * column family, expression, result count, and ordering clause. - * + * A number of public methods here are only used internally. However, + * many of these are made accessible for the benefit of custom + * QueryHandler implementations, so before reducing their accessibility + * due consideration should be given. */ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache { @@ -184,6 +187,14 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache return boundTerms; } +/** + * May be used by custom QueryHandler implementations + */ +public Selection getSelection() +{ +return selection; +} + public void checkAccess(ClientState state) throws InvalidRequestException, UnauthorizedException { state.hasColumnFamilyAccess(keyspace(), columnFamily(), Permission.SELECT); @@ -580,7 +591,10 @@ public class SelectStatement implements CQLStatement, MeasurableForPreparedCache
[jira] [Updated] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Study Hsueh updated CASSANDRA-9607: --- Attachment: cassandra.yaml cassandra configuration Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Study Hsueh updated CASSANDRA-9607: --- Attachment: log.zip cassandra log 2015-06-15 13:40:41,200 upgrade to 2.1.6 2015-06-17 18:32:40,740 whole cluster went down Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9583) test-compression could run multiple unit tests in parallel like test
[ https://issues.apache.org/jira/browse/CASSANDRA-9583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592787#comment-14592787 ] Yuki Morishita commented on CASSANDRA-9583: --- New commit with ant targets that was using suitename(testold, test-burn, long-test, etc) are running now. Thanks for the catch! test-compression could run multiple unit tests in parallel like test Key: CASSANDRA-9583 URL: https://issues.apache.org/jira/browse/CASSANDRA-9583 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Assignee: Ariel Weisberg Fix For: 3.0 beta 1, 2.2.0 rc2 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9064) [LeveledCompactionStrategy] cqlsh can't run cql produced by its own describe table statement
[ https://issues.apache.org/jira/browse/CASSANDRA-9064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592777#comment-14592777 ] Eugene commented on CASSANDRA-9064: --- It would be nice to get this fixed. For anyone looking for a work around, just strip out the min_threshold and max_threshold fields on the describe keyspace output. This might work in some situations: {code} sed -i -e s/{.*LeveledCompactionStrategy.*}/{'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy'}/ tables.txt {code} Before using that verify that the compaction configuration for those tables don't have anything other than *min_threshold*, *max_threshold*, and *class* parameters defined. [LeveledCompactionStrategy] cqlsh can't run cql produced by its own describe table statement Key: CASSANDRA-9064 URL: https://issues.apache.org/jira/browse/CASSANDRA-9064 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.3 on mac os x Reporter: Sujeet Gholap Assignee: Benjamin Lerer Labels: cqlsh Fix For: 2.1.x Here's how to reproduce: 1) Create a table with LeveledCompactionStrategy CREATE keyspace foo WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor' : 3}; CREATE TABLE foo.bar ( spam text PRIMARY KEY ) WITH compaction = {'class': 'LeveledCompactionStrategy'}; 2) Describe the table and save the output cqlsh -e describe table foo.bar Output should be something like CREATE TABLE foo.bar ( spam text PRIMARY KEY ) WITH bloom_filter_fp_chance = 0.1 AND caching = '{keys:ALL, rows_per_partition:NONE}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.LeveledCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; 3) Save the output to repro.cql 4) Drop the table foo.bar cqlsh -e drop table foo.bar 5) Run the create table statement we saved cqlsh -f repro.cql 6) Expected: normal execution without an error 7) Reality: ConfigurationException: ErrorMessage code=2300 [Query invalid because of configuration issue] message=Properties specified [min_threshold, max_threshold] are not understood by LeveledCompactionStrategy -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/3] cassandra git commit: Remove usage of suitename that is causing some tasks to silently fail in cassci
Remove usage of suitename that is causing some tasks to silently fail in cassci Follow up on CASSANDRA-9583 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/947edf1f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/947edf1f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/947edf1f Branch: refs/heads/trunk Commit: 947edf1f19a8798b4befd9d598f3e17bbf3d7e48 Parents: 55a736a Author: Ariel Weisberg ar...@weisberg.ws Authored: Thu Jun 18 16:17:17 2015 -0400 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 19:26:16 2015 -0500 -- build.xml | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/947edf1f/build.xml -- diff --git a/build.xml b/build.xml index 82ec33e..d5e3869 100644 --- a/build.xml +++ b/build.xml @@ -1206,7 +1206,7 @@ /target target name=testold depends=build-test description=Execute unit tests -testmacro suitename=unit inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} +testmacro inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ jvmarg value=-Dcorrupt-sstable-root=${test.data}/corrupt-sstables/ @@ -1279,7 +1279,7 @@ ant testsome -Dtest.name=org.apache.cassandra.service.StorageServiceServerTest -Dtest.methods=testRegularMode,testGetAllRangesEmpty -- target name=testsome depends=build-test description=Execute specific unit tests -testmacro suitename=unit inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} +testmacro inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} test name=${test.name} methods=${test.methods}/ jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ @@ -1305,39 +1305,39 @@ /target target name=msg-ser-gen-test depends=build-test description=Generates message serializations -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.test-serialization-writes=True/ /testmacro /target target name=msg-ser-test depends=build-test description=Tests message serializations - testmacro suitename=unit inputdir=${test.unit.src} timeout=${test.timeout} + testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java/ /target target name=msg-ser-test-7 depends=build-test description=Generates message serializations -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.version=0.7/ /testmacro /target target name=msg-ser-test-10 depends=build-test description=Tests message serializations on 1.0 messages -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.version=1.0/ /testmacro /target target name=test-burn depends=build-test description=Execute functional tests -testmacro suitename=burn inputdir=${test.burn.src} +testmacro inputdir=${test.burn.src} timeout=${test.burn.timeout} /testmacro /target target name=long-test depends=build-test description=Execute functional tests -testmacro suitename=long inputdir=${test.long.src} +testmacro inputdir=${test.long.src} timeout=${test.long.timeout} jvmarg value=-Dcassandra.ring_delay_ms=1000/ jvmarg value=-Dcassandra.tolerate_sstable_size=true/ @@ -1418,7 +1418,7 @@ /target target name=pig-test depends=build-test,maven-ant-tasks-retrieve-pig-test description=Excute Pig tests -testmacro suitename=pig inputdir=${test.pig.src} +testmacro inputdir=${test.pig.src} timeout=120 /testmacro /target @@ -1549,7 +1549,6 @@ !-- Run tests not in parallel and reports errors and generates a junit report after -- macrodef name=testmacro -attribute name=suitename / attribute name=inputdir / attribute name=timeout default=${test.timeout} / attribute name=forkmode default=perTest/ @@ -1561,7 +1560,7 @@ attribute name=testtag default=/ sequential - testmacrohelper
[3/3] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e246ec25 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e246ec25 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e246ec25 Branch: refs/heads/trunk Commit: e246ec258ccab5cbd648eeb5e04feb5f952c5370 Parents: e14ce11 947edf1 Author: Yuki Morishita yu...@apache.org Authored: Thu Jun 18 19:26:43 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 19:26:43 2015 -0500 -- build.xml | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e246ec25/build.xml --
[1/3] cassandra git commit: Remove usage of suitename that is causing some tasks to silently fail in cassci
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 55a736acf - 947edf1f1 refs/heads/trunk e14ce11c0 - e246ec258 Remove usage of suitename that is causing some tasks to silently fail in cassci Follow up on CASSANDRA-9583 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/947edf1f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/947edf1f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/947edf1f Branch: refs/heads/cassandra-2.2 Commit: 947edf1f19a8798b4befd9d598f3e17bbf3d7e48 Parents: 55a736a Author: Ariel Weisberg ar...@weisberg.ws Authored: Thu Jun 18 16:17:17 2015 -0400 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 19:26:16 2015 -0500 -- build.xml | 21 ++--- 1 file changed, 10 insertions(+), 11 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/947edf1f/build.xml -- diff --git a/build.xml b/build.xml index 82ec33e..d5e3869 100644 --- a/build.xml +++ b/build.xml @@ -1206,7 +1206,7 @@ /target target name=testold depends=build-test description=Execute unit tests -testmacro suitename=unit inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} +testmacro inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ jvmarg value=-Dcorrupt-sstable-root=${test.data}/corrupt-sstables/ @@ -1279,7 +1279,7 @@ ant testsome -Dtest.name=org.apache.cassandra.service.StorageServiceServerTest -Dtest.methods=testRegularMode,testGetAllRangesEmpty -- target name=testsome depends=build-test description=Execute specific unit tests -testmacro suitename=unit inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} +testmacro inputdir=${test.unit.src} exclude=**/pig/*.java timeout=${test.timeout} test name=${test.name} methods=${test.methods}/ jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ @@ -1305,39 +1305,39 @@ /target target name=msg-ser-gen-test depends=build-test description=Generates message serializations -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.test-serialization-writes=True/ /testmacro /target target name=msg-ser-test depends=build-test description=Tests message serializations - testmacro suitename=unit inputdir=${test.unit.src} timeout=${test.timeout} + testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java/ /target target name=msg-ser-test-7 depends=build-test description=Generates message serializations -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.version=0.7/ /testmacro /target target name=msg-ser-test-10 depends=build-test description=Tests message serializations on 1.0 messages -testmacro suitename=unit inputdir=${test.unit.src} +testmacro inputdir=${test.unit.src} timeout=${test.timeout} filter=**/SerializationsTest.java jvmarg value=-Dcassandra.version=1.0/ /testmacro /target target name=test-burn depends=build-test description=Execute functional tests -testmacro suitename=burn inputdir=${test.burn.src} +testmacro inputdir=${test.burn.src} timeout=${test.burn.timeout} /testmacro /target target name=long-test depends=build-test description=Execute functional tests -testmacro suitename=long inputdir=${test.long.src} +testmacro inputdir=${test.long.src} timeout=${test.long.timeout} jvmarg value=-Dcassandra.ring_delay_ms=1000/ jvmarg value=-Dcassandra.tolerate_sstable_size=true/ @@ -1418,7 +1418,7 @@ /target target name=pig-test depends=build-test,maven-ant-tasks-retrieve-pig-test description=Excute Pig tests -testmacro suitename=pig inputdir=${test.pig.src} +testmacro inputdir=${test.pig.src} timeout=120 /testmacro /target @@ -1549,7 +1549,6 @@ !-- Run tests not in parallel and reports errors and generates a junit report after -- macrodef name=testmacro -attribute name=suitename / attribute name=inputdir / attribute name=timeout default=${test.timeout} / attribute
[jira] [Resolved] (CASSANDRA-9583) test-compression could run multiple unit tests in parallel like test
[ https://issues.apache.org/jira/browse/CASSANDRA-9583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita resolved CASSANDRA-9583. --- Resolution: Fixed test-compression could run multiple unit tests in parallel like test Key: CASSANDRA-9583 URL: https://issues.apache.org/jira/browse/CASSANDRA-9583 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Assignee: Ariel Weisberg Fix For: 3.0 beta 1, 2.2.0 rc2 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9448) Metrics should use up to date nomenclature
[ https://issues.apache.org/jira/browse/CASSANDRA-9448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-9448: -- Assignee: Stefania (was: Yuki Morishita) Metrics should use up to date nomenclature -- Key: CASSANDRA-9448 URL: https://issues.apache.org/jira/browse/CASSANDRA-9448 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Sam Tunnicliffe Assignee: Stefania Labels: docs-impacting Fix For: 3.0 beta 1 There are a number of exposed metrics that currently are named using the old nomenclature of columnfamily and rows (meaning partitions). It would be good to audit all metrics and update any names to match what they actually represent; we should probably do that in a single sweep to avoid a confusing mixture of old and new terminology. As we'd need to do this in a major release, I've initially set the fixver for 3.0 beta1. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9448) Metrics should use up to date nomenclature
[ https://issues.apache.org/jira/browse/CASSANDRA-9448?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592860#comment-14592860 ] Yuki Morishita commented on CASSANDRA-9448: --- [~Stefania] Can you take a look? Metrics should use up to date nomenclature -- Key: CASSANDRA-9448 URL: https://issues.apache.org/jira/browse/CASSANDRA-9448 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Sam Tunnicliffe Assignee: Stefania Labels: docs-impacting Fix For: 3.0 beta 1 There are a number of exposed metrics that currently are named using the old nomenclature of columnfamily and rows (meaning partitions). It would be good to audit all metrics and update any names to match what they actually represent; we should probably do that in a single sweep to avoid a confusing mixture of old and new terminology. As we'd need to do this in a major release, I've initially set the fixver for 3.0 beta1. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9606) this query is not supported in new version
[ https://issues.apache.org/jira/browse/CASSANDRA-9606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592863#comment-14592863 ] zhaoyan commented on CASSANDRA-9606: thanks for your advice。 but the paging you advice is in one request. i want one request is one page. this query is not supported in new version -- Key: CASSANDRA-9606 URL: https://issues.apache.org/jira/browse/CASSANDRA-9606 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.6 jdk 1.7.0_55 Reporter: zhaoyan Assignee: Benjamin Lerer Background: 1、create a table: {code} CREATE TABLE test ( a int, b int, c int, d int, PRIMARY KEY (a, b, c) ); {code} 2、query by a=1 and b6 {code} select * from test where a=1 and b6; a | b | c | d ---+---+---+--- 1 | 3 | 1 | 2 1 | 3 | 2 | 2 1 | 3 | 4 | 2 1 | 3 | 5 | 2 1 | 4 | 4 | 2 1 | 5 | 5 | 2 (6 rows) {code} 3、query by page first page: {code} select * from test where a=1 and b6 limit 2; a | b | c | d ---+---+---+--- 1 | 3 | 1 | 2 1 | 3 | 2 | 2 (2 rows) {code} second page: {code} select * from test where a=1 and b6 and (b,c) (3,2) limit 2; a | b | c | d ---+---+---+--- 1 | 3 | 4 | 2 1 | 3 | 5 | 2 (2 rows) {code} last page: {code} select * from test where a=1 and b6 and (b,c) (3,5) limit 2; a | b | c | d ---+---+---+--- 1 | 4 | 4 | 2 1 | 5 | 5 | 2 (2 rows) {code} question: this query by page is ok when cassandra 2.0.8. but is not supported in the latest version 2.1.6 when execute: {code} select * from test where a=1 and b6 and (b,c) (3,2) limit 2; {code} get one error message: InvalidRequest: code=2200 [Invalid query] message=Column b cannot have both tuple-notation inequalities and single-column inequalities: (b, c) (3, 2) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9606) this query is not supported in new version
[ https://issues.apache.org/jira/browse/CASSANDRA-9606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592865#comment-14592865 ] zhaoyan commented on CASSANDRA-9606: It confuses me. this query is not supported in new version -- Key: CASSANDRA-9606 URL: https://issues.apache.org/jira/browse/CASSANDRA-9606 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.6 jdk 1.7.0_55 Reporter: zhaoyan Assignee: Benjamin Lerer Background: 1、create a table: {code} CREATE TABLE test ( a int, b int, c int, d int, PRIMARY KEY (a, b, c) ); {code} 2、query by a=1 and b6 {code} select * from test where a=1 and b6; a | b | c | d ---+---+---+--- 1 | 3 | 1 | 2 1 | 3 | 2 | 2 1 | 3 | 4 | 2 1 | 3 | 5 | 2 1 | 4 | 4 | 2 1 | 5 | 5 | 2 (6 rows) {code} 3、query by page first page: {code} select * from test where a=1 and b6 limit 2; a | b | c | d ---+---+---+--- 1 | 3 | 1 | 2 1 | 3 | 2 | 2 (2 rows) {code} second page: {code} select * from test where a=1 and b6 and (b,c) (3,2) limit 2; a | b | c | d ---+---+---+--- 1 | 3 | 4 | 2 1 | 3 | 5 | 2 (2 rows) {code} last page: {code} select * from test where a=1 and b6 and (b,c) (3,5) limit 2; a | b | c | d ---+---+---+--- 1 | 4 | 4 | 2 1 | 5 | 5 | 2 (2 rows) {code} question: this query by page is ok when cassandra 2.0.8. but is not supported in the latest version 2.1.6 when execute: {code} select * from test where a=1 and b6 and (b,c) (3,2) limit 2; {code} get one error message: InvalidRequest: code=2200 [Invalid query] message=Column b cannot have both tuple-notation inequalities and single-column inequalities: (b, c) (3, 2) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592119#comment-14592119 ] Study Hsueh edited comment on CASSANDRA-9607 at 6/18/15 5:41 PM: - cassandra configuration heap dump when oom: http://54.199.247.66/java_1434380208.hprof was (Author: study): cassandra configuration Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592119#comment-14592119 ] Study Hsueh edited comment on CASSANDRA-9607 at 6/18/15 5:43 PM: - I had uploaded heap dump when OOM occurred: http://54.199.247.66/java_1434380208.hprof 2015-06-15 13:40:41,200 upgrade to 2.1.6 2015-06-17 18:32:40,740 whole cluster went down was (Author: study): cassandra configuration heap dump when oom: http://54.199.247.66/java_1434380208.hprof Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[4/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/70d0d5f2/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index f4a59a2,000..1458461 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2175 -1,0 +1,2178 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From: NORMAL = Reader is being compacted. This compaction has not finished, but the compaction result + *
[5/6] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 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/70d0d5f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70d0d5f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70d0d5f2 Branch: refs/heads/trunk Commit: 70d0d5f2cbe0b211b65fa7ee26b8c82e4d801fd9 Parents: 1f8516d 42ea6e1 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:47:47 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:47:47 2015 -0400 -- CHANGES.txt | 1 + .../org/apache/cassandra/io/sstable/format/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70d0d5f2/CHANGES.txt -- diff --cc CHANGES.txt index fb44c9a,9ae0969..b96a2b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,6 +1,16 @@@ -2.1.7 +2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) +Merged from 2.1: + * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) + * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496)
[6/6] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8ad6dc9a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8ad6dc9a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8ad6dc9a Branch: refs/heads/trunk Commit: 8ad6dc9af3e569a22bce178827aca93de3bdc352 Parents: 40424ee 70d0d5f Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:50:17 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:50:17 2015 -0400 -- CHANGES.txt | 1 + .../org/apache/cassandra/io/sstable/format/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/8ad6dc9a/CHANGES.txt --
[3/6] cassandra git commit: Fix bug in cardinality estimation when sstables are being compacted
Fix bug in cardinality estimation when sstables are being compacted patch by tjake; reviewed by benedict for CASSANDRA-9580 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/42ea6e1f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/42ea6e1f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/42ea6e1f Branch: refs/heads/trunk Commit: 42ea6e1f3751845bd0d1326ab789a53a20783a53 Parents: 83c0e01 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:43:44 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:45:45 2015 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/io/sstable/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 899ea7c..9ae0969 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.7 + * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) Merged from 2.0 * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 0475665..0635826 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -264,6 +264,9 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead ICardinality cardinality = null; for (SSTableReader sstable : sstables) { +if (sstable.openReason == OpenReason.EARLY) +continue; + try { CompactionMetadata metadata = (CompactionMetadata) sstable.descriptor.getMetadataSerializer().deserialize(sstable.descriptor, MetadataType.COMPACTION);
[1/6] cassandra git commit: bump versions
Repository: cassandra Updated Branches: refs/heads/trunk 40424ee59 - 8ad6dc9af bump versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/23e66a9d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23e66a9d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23e66a9d Branch: refs/heads/trunk Commit: 23e66a9d1c50e4331e8c1d212c2eeb940c5471fa Parents: f32cff8 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:02:45 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:02:45 2015 -0400 -- NEWS.txt | 8 build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index c4fdddb..9bfe803 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ 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.16 +== + +Upgrading +- +- Nothing specific to this release, but refer to previous entries if you + are upgrading from a previous version. + 2.0.15 == http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/build.xml -- diff --git a/build.xml b/build.xml index e35cac0..b019ec3 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.0.15/ +property name=base.version value=2.0.16/ 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/23e66a9d/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index c970224..527eb29 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (2.0.16) unstable; urgency=medium + + * New release + + -- Jake Luciani j...@apache.org Thu, 18 Jun 2015 14:01:32 -0400 + cassandra (2.0.15) unstable; urgency=medium * New release
[2/6] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83c0e01a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83c0e01a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83c0e01a Branch: refs/heads/trunk Commit: 83c0e01aa84a6cbfe36a89ef13027a78567df70a Parents: 0452e74 23e66a9 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:32:10 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:32:10 2015 -0400 -- --
[jira] [Commented] (CASSANDRA-9616) cfstats on 2.1.6 throws fatal exception during compaction cycles
[ https://issues.apache.org/jira/browse/CASSANDRA-9616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592301#comment-14592301 ] Jim Witschey commented on CASSANDRA-9616: - Thanks for the report. This looks like a duplicate of [9580|https://issues.apache.org/jira/browse/CASSANDRA-9580]. [~mwmanley] Does that seem right to you? cfstats on 2.1.6 throws fatal exception during compaction cycles Key: CASSANDRA-9616 URL: https://issues.apache.org/jira/browse/CASSANDRA-9616 Project: Cassandra Issue Type: Bug Reporter: Mark Manley When running cfstats against any cf that is doing a compaction cycle, I get the following exception for its reading of tmplink files: {code} error: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db {code} This seems to have started when I rolled out 2.1.6. I don't see a current bug in my cursory search, so here you go! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
Git Push Summary
Repository: cassandra Updated Tags: refs/tags/2.1.7-tentative [created] 718c14432
cassandra git commit: bump versions
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 42ea6e1f3 - 718c14432 bump versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/718c1443 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/718c1443 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/718c1443 Branch: refs/heads/cassandra-2.1 Commit: 718c144324d170535d4f1a1e79dd9869cce19ed1 Parents: 42ea6e1 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:53:07 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:53:07 2015 -0400 -- NEWS.txt | 10 ++ build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 17 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/718c1443/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 272c837..80776e8 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.1.7 += + +Upgrading +- +- Nothing specific to this release, but please see 2.1 if you are upgrading + from a previous version. + + 2.1.6 = http://git-wip-us.apache.org/repos/asf/cassandra/blob/718c1443/build.xml -- diff --git a/build.xml b/build.xml index adde1d3..73e76e5 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.1.6/ +property name=base.version value=2.1.7/ 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/718c1443/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index 1a742fa..d7e1fd1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (2.1.7) unstable; urgency=medium + + * New release + + -- Jake Luciani j...@apache.org Thu, 18 Jun 2015 14:52:26 -0400 + cassandra (2.1.6) unstable; urgency=medium * New release
[jira] [Comment Edited] (CASSANDRA-9610) Increased response time with cassandra 2.0.9 from 1.2.19
[ https://issues.apache.org/jira/browse/CASSANDRA-9610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592242#comment-14592242 ] Maitrayee edited comment on CASSANDRA-9610 at 6/18/15 7:13 PM: --- In 1.2.19 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2', 'dc3': '2' }; In 2.0.9 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2' }; Is num_token ignored when initial_token is set? In out 1.2.19 cluster we have the following values num_token:256 initial_token: no value is specified for initial_token Initially in 2.0.9 we did not set initial_token. Now I tried with empty setting. Response time still did not improve was (Author: maitrayee_c): In 1.2.19 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2', 'dc3': '2' }; In 2.0.9 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2' }; Is num_token ignored when initial_token is set? In out 1.2.19 cluster we have the following values num_token:256 initial_token: no value is specified for initial_toke. Initially in 2.0.9 we did not set initial_token. Now I tried with empty setting. Response time still not improve Increased response time with cassandra 2.0.9 from 1.2.19 Key: CASSANDRA-9610 URL: https://issues.apache.org/jira/browse/CASSANDRA-9610 Project: Cassandra Issue Type: Bug Reporter: Maitrayee Attachments: servicedefinition_schema.txt, traceout_1.2.19, traceout_2.0.9 I was using Cassandra 1.2.19. Recently upgraded to 2.0.9. Queries with secondary index was completing much faster in 1.2.19 Validated this with trace on via cqlsh -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/3] cassandra git commit: Update and refactor ant test/test-compression to run the tests in parallel
Update and refactor ant test/test-compression to run the tests in parallel patch by Ariel Weisberg; reviewed by yukim for CASSANDRA-9583 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/55a736ac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/55a736ac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/55a736ac Branch: refs/heads/trunk Commit: 55a736acff1bfae779c6f01b2280ef50befca1a5 Parents: 70d0d5f Author: Ariel Weisberg ar...@weisberg.ws Authored: Thu Jun 18 14:10:37 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 14:10:37 2015 -0500 -- CHANGES.txt | 1 + build.xml | 237 ++- 2 files changed, 148 insertions(+), 90 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/55a736ac/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b96a2b0..56f0dc0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,7 @@ * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) * Fix deprecated repair JMX API (CASSANDRA-9570) * Add logback metrics (CASSANDRA-9378) + * Update and refactor ant test/test-compression to run the tests in parallel (CASSANDRA-9583) Merged from 2.1: * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) http://git-wip-us.apache.org/repos/asf/cassandra/blob/55a736ac/build.xml -- diff --git a/build.xml b/build.xml index e768a394..82ec33e 100644 --- a/build.xml +++ b/build.xml @@ -1114,8 +1114,12 @@ /copy /target - macrodef name=testmacro -attribute name=suitename / + !-- Defines how to run a set of tests. If you change the defaults for attributes + you should also update them in testmacro., + The two are split because the helper doesn't generate + a junit report or fail on errors, since this is called in parallel to run tests + when we choose to run tests in parallel -- + macrodef name=testmacrohelper attribute name=inputdir / attribute name=timeout default=${test.timeout} / attribute name=forkmode default=perTest/ @@ -1133,7 +1137,6 @@ else= istrue value=${usejacoco}/ /condition - echo message=running @{suitename} tests/ mkdir dir=${build.test.dir}/cassandra/ mkdir dir=${build.test.dir}/output/ mkdir dir=${build.test.dir}/output/@{testtag}/ @@ -1168,22 +1171,9 @@ filelist dir=@{inputdir} files=@{filelist}/ /batchtest /junit - junitreport todir=${build.test.dir} -fileset dir=${build.test.dir}/output - include name=**/TEST-*.xml/ -/fileset -report format=frames todir=${build.test.dir}/junitreport/ - /junitreport - fail message=Some @{suitename} test(s) failed. -condition -and -isset property=testfailed/ -not - isset property=ant.test.failure.ignore/ -/not - /and -/condition - /fail + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/commitlog:@{poffset}/ + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/data:@{poffset}/ + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/saved_caches:@{poffset}/ /sequential /macrodef @@ -1231,18 +1221,47 @@ /fileset /target - target name=testlist -testmacro suitename=${testlist.name} inputdir=${test.unit.src} filelist=${test.file.list} poffset=${testlist.offset} exclude=**/*.java timeout=${test.timeout} - jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ - jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ - jvmarg value=-Dcorrupt-sstable-root=${test.data}/corrupt-sstables/ - jvmarg value=-Dmigration-sstable-root=${test.data}/migration-sstables/ - jvmarg value=-Dcassandra.ring_delay_ms=1000/ - jvmarg value=-Dcassandra.tolerate_sstable_size=true/ - jvmarg value=-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader/ - jvmarg value=-Dcassandra.skip_sync=true / -/testmacro - /target + !-- Will not generate a junit report or fail on error since it is called in parallel for test-compression + That is taken care of by testparallel -- + macrodef name=testlist +attribute name=test.file.list/ +attribute name=testlist.offset/ +sequential + testmacrohelper inputdir=${test.unit.src} filelist=@{test.file.list} poffset=@{testlist.offset}
[1/3] cassandra git commit: Update and refactor ant test/test-compression to run the tests in parallel
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 70d0d5f2c - 55a736acf refs/heads/trunk 8ad6dc9af - e14ce11c0 Update and refactor ant test/test-compression to run the tests in parallel patch by Ariel Weisberg; reviewed by yukim for CASSANDRA-9583 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/55a736ac Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/55a736ac Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/55a736ac Branch: refs/heads/cassandra-2.2 Commit: 55a736acff1bfae779c6f01b2280ef50befca1a5 Parents: 70d0d5f Author: Ariel Weisberg ar...@weisberg.ws Authored: Thu Jun 18 14:10:37 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 14:10:37 2015 -0500 -- CHANGES.txt | 1 + build.xml | 237 ++- 2 files changed, 148 insertions(+), 90 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/55a736ac/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b96a2b0..56f0dc0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,7 @@ * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) * Fix deprecated repair JMX API (CASSANDRA-9570) * Add logback metrics (CASSANDRA-9378) + * Update and refactor ant test/test-compression to run the tests in parallel (CASSANDRA-9583) Merged from 2.1: * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) http://git-wip-us.apache.org/repos/asf/cassandra/blob/55a736ac/build.xml -- diff --git a/build.xml b/build.xml index e768a394..82ec33e 100644 --- a/build.xml +++ b/build.xml @@ -1114,8 +1114,12 @@ /copy /target - macrodef name=testmacro -attribute name=suitename / + !-- Defines how to run a set of tests. If you change the defaults for attributes + you should also update them in testmacro., + The two are split because the helper doesn't generate + a junit report or fail on errors, since this is called in parallel to run tests + when we choose to run tests in parallel -- + macrodef name=testmacrohelper attribute name=inputdir / attribute name=timeout default=${test.timeout} / attribute name=forkmode default=perTest/ @@ -1133,7 +1137,6 @@ else= istrue value=${usejacoco}/ /condition - echo message=running @{suitename} tests/ mkdir dir=${build.test.dir}/cassandra/ mkdir dir=${build.test.dir}/output/ mkdir dir=${build.test.dir}/output/@{testtag}/ @@ -1168,22 +1171,9 @@ filelist dir=@{inputdir} files=@{filelist}/ /batchtest /junit - junitreport todir=${build.test.dir} -fileset dir=${build.test.dir}/output - include name=**/TEST-*.xml/ -/fileset -report format=frames todir=${build.test.dir}/junitreport/ - /junitreport - fail message=Some @{suitename} test(s) failed. -condition -and -isset property=testfailed/ -not - isset property=ant.test.failure.ignore/ -/not - /and -/condition - /fail + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/commitlog:@{poffset}/ + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/data:@{poffset}/ + delete quiet=true failonerror=false dir=${build.test.dir}/cassandra/saved_caches:@{poffset}/ /sequential /macrodef @@ -1231,18 +1221,47 @@ /fileset /target - target name=testlist -testmacro suitename=${testlist.name} inputdir=${test.unit.src} filelist=${test.file.list} poffset=${testlist.offset} exclude=**/*.java timeout=${test.timeout} - jvmarg value=-Dlegacy-sstable-root=${test.data}/legacy-sstables/ - jvmarg value=-Dinvalid-legacy-sstable-root=${test.data}/invalid-legacy-sstables/ - jvmarg value=-Dcorrupt-sstable-root=${test.data}/corrupt-sstables/ - jvmarg value=-Dmigration-sstable-root=${test.data}/migration-sstables/ - jvmarg value=-Dcassandra.ring_delay_ms=1000/ - jvmarg value=-Dcassandra.tolerate_sstable_size=true/ - jvmarg value=-Dcassandra.config.loader=org.apache.cassandra.OffsetAwareConfigurationLoader/ - jvmarg value=-Dcassandra.skip_sync=true / -/testmacro - /target + !-- Will not generate a junit report or fail on error since it is called in parallel for test-compression + That is taken care of by testparallel -- + macrodef name=testlist +attribute name=test.file.list/ +attribute
[3/3] cassandra git commit: Merge branch 'cassandra-2.2' into trunk
Merge branch 'cassandra-2.2' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e14ce11c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e14ce11c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e14ce11c Branch: refs/heads/trunk Commit: e14ce11c02420b4a9330fcfe1aea1cbeb97f0fd2 Parents: 8ad6dc9 55a736a Author: Yuki Morishita yu...@apache.org Authored: Thu Jun 18 14:12:15 2015 -0500 Committer: Yuki Morishita yu...@apache.org Committed: Thu Jun 18 14:12:15 2015 -0500 -- CHANGES.txt | 1 + build.xml | 237 ++- 2 files changed, 148 insertions(+), 90 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e14ce11c/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e14ce11c/build.xml --
[jira] [Commented] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592186#comment-14592186 ] Benedict commented on CASSANDRA-9607: - bq. I had uploaded heap dump when OOM occurred: Ah, you hadn't mentioned OOM. In that case it is _highly likely_ you are experiencing CASSANDRA-9549, which will be fixed in 2.1.7 released shortly, or you can run the patch version posted to that ticket as [~rstrickland] has. Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592186#comment-14592186 ] Benedict edited comment on CASSANDRA-9607 at 6/18/15 5:58 PM: -- bq. I had uploaded heap dump when OOM occurred: Ah, you hadn't mentioned OOM. In that case it is _highly likely_ you are experiencing CASSANDRA-9549, which will be fixed in 2.1.7 released shortly, or you can run the patch version posted to that ticket as [~jjirsa] has. was (Author: benedict): bq. I had uploaded heap dump when OOM occurred: Ah, you hadn't mentioned OOM. In that case it is _highly likely_ you are experiencing CASSANDRA-9549, which will be fixed in 2.1.7 released shortly, or you can run the patch version posted to that ticket as [~rstrickland] has. Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: bump versions
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 f32cff8e1 - 23e66a9d1 bump versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/23e66a9d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23e66a9d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23e66a9d Branch: refs/heads/cassandra-2.0 Commit: 23e66a9d1c50e4331e8c1d212c2eeb940c5471fa Parents: f32cff8 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:02:45 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:02:45 2015 -0400 -- NEWS.txt | 8 build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index c4fdddb..9bfe803 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ 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.16 +== + +Upgrading +- +- Nothing specific to this release, but refer to previous entries if you + are upgrading from a previous version. + 2.0.15 == http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/build.xml -- diff --git a/build.xml b/build.xml index e35cac0..b019ec3 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.0.15/ +property name=base.version value=2.0.16/ 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/23e66a9d/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index c970224..527eb29 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (2.0.16) unstable; urgency=medium + + * New release + + -- Jake Luciani j...@apache.org Thu, 18 Jun 2015 14:01:32 -0400 + cassandra (2.0.15) unstable; urgency=medium * New release
Git Push Summary
Repository: cassandra Updated Tags: refs/tags/2.0.16-tentative [created] 23e66a9d1
[jira] [Commented] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592306#comment-14592306 ] Study Hsueh commented on CASSANDRA-9607: Thanks, but I think we have no plan to try 2.1.6 and 2.1.7 in the near future. Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benedict reassigned CASSANDRA-9607: --- Assignee: Benedict Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Assignee: Benedict Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9610) Increased response time with cassandra 2.0.9 from 1.2.19
[ https://issues.apache.org/jira/browse/CASSANDRA-9610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592242#comment-14592242 ] Maitrayee commented on CASSANDRA-9610: -- In 1.2.19 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2', 'dc3': '2' }; In 2.0.9 cluster I have CREATE KEYSPACE topology WITH replication = { 'class': 'NetworkTopologyStrategy', 'dc1': '2', 'dc2': '2' }; Is num_token ignored when initial_token is set? In out 1.2.19 cluster we have the following values num_token:256 initial_token: no value is specified for initial_toke. Initially in 2.0.9 we did not set initial_token. Now I tried with empty setting. Response time still not improve Increased response time with cassandra 2.0.9 from 1.2.19 Key: CASSANDRA-9610 URL: https://issues.apache.org/jira/browse/CASSANDRA-9610 Project: Cassandra Issue Type: Bug Reporter: Maitrayee Attachments: servicedefinition_schema.txt, traceout_1.2.19, traceout_2.0.9 I was using Cassandra 1.2.19. Recently upgraded to 2.0.9. Queries with secondary index was completing much faster in 1.2.19 Validated this with trace on via cqlsh -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9612) Assertion error while running `nodetool cfstats`
[ https://issues.apache.org/jira/browse/CASSANDRA-9612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592309#comment-14592309 ] mlowicki commented on CASSANDRA-9612: - [~mambocab] yes. Assertion error while running `nodetool cfstats` Key: CASSANDRA-9612 URL: https://issues.apache.org/jira/browse/CASSANDRA-9612 Project: Cassandra Issue Type: Bug Environment: C* 2.1.6 Reporter: mlowicki nodetool cfstats sync.entity {code} Keyspace: sync Read Count: 2916573 Read Latency: 0.26340278573517617 ms. Write Count: 2356495 Write Latency: 0.03296340242606074 ms. Pending Flushes: 0 Table: entity SSTable count: 919 SSTables in each level: [50/4, 11/10, 101/100, 756, 0, 0, 0, 0, 0] Space used (live): 146265014558 Space used (total): 146265014558 Space used by snapshots (total): 0 Off heap memory used (total): 97950899 SSTable Compression Ratio: 0.1870809135227128 error: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db at org.apache.cassandra.io.sstable.SSTableReader.getApproximateKeyCount(SSTableReader.java:270) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:296) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:290) at com.yammer.metrics.reporting.JmxReporter$Gauge.getValue(JmxReporter.java:63) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:83) at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:206) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$2.run(Transport.java:202) at sun.rmi.transport.Transport$2.run(Transport.java:199) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:198) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at
[jira] [Commented] (CASSANDRA-9499) Introduce writeVInt method to DataOutputStreamPlus
[ https://issues.apache.org/jira/browse/CASSANDRA-9499?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592307#comment-14592307 ] Ariel Weisberg commented on CASSANDRA-9499: --- I have the proposed encoding implemented and have the beginnings of an efficient implementation for BufferedDataOutputStreamPlus and NIOInputStream. There is probably still branches or that could be removed as well as making the bit fiddling more efficient and clearer. I am going to try and clean it up, but I could use feedback. I couldn't come up with an efficient implementation for computeUnsignedVIntSize (when you haven't encoded it yet). I also created the branch https://github.com/aweisberg/cassandra/commits/C-9499-madness where I removed Encoded*Stream and changed the serializers to use DataInputPlus which extends DataInput to add the varint decoding methods. I haven't rebased that on top of C-9499 yet. I am using 1s for the extension bits. I am also emitting the bytes in little endian order although it seems like I would need to do that at least for the first byte. I could emit the rest of the bytes in big endian order for the getLong(). Right now I have to reverse them because the ByteBuffer is big endian. l am wagering it is faster than swapping the settings. Introduce writeVInt method to DataOutputStreamPlus -- Key: CASSANDRA-9499 URL: https://issues.apache.org/jira/browse/CASSANDRA-9499 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Benedict Assignee: Ariel Weisberg Priority: Minor Fix For: 3.0 beta 1 CASSANDRA-8099 really could do with a writeVInt method, for both fixing CASSANDRA-9498 but also efficiently encoding timestamp/deletion deltas. It should be possible to make an especially efficient implementation against BufferedDataOutputStreamPlus. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592117#comment-14592117 ] Study Hsueh edited comment on CASSANDRA-9607 at 6/18/15 5:41 PM: - cassandra log 2015-06-15 13:40:41,200 upgrade to 2.1.6 2015-06-17 18:32:40,740 whole cluster went down was (Author: study): cassandra log 2015-06-15 13:40:41,200 upgrade to 2.1.6 2015-06-17 18:32:40,740 whole cluster went down Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9580) Cardinality check broken during incremental compaction re-opening
[ https://issues.apache.org/jira/browse/CASSANDRA-9580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592208#comment-14592208 ] Benedict commented on CASSANDRA-9580: - [~tjake]: it might be good to get this into 2.1.7, and I can follow up later with my ticket. It should be changed to only skip OPEN_EARLY though, since we want to include METADATA_CHANGE (index summary redistribution). Cardinality check broken during incremental compaction re-opening - Key: CASSANDRA-9580 URL: https://issues.apache.org/jira/browse/CASSANDRA-9580 Project: Cassandra Issue Type: Bug Reporter: T Jake Luciani Assignee: T Jake Luciani Priority: Minor Fix For: 2.1.x Attachments: lcstest.yaml While testing LCS I found cfstats sometimes crashes during compaction It looks to be related to the incremental re-opening not having metadata. {code} Keyspace: stresscql Read Count: 0 Read Latency: NaN ms. Write Count: 6590571 Write Latency: 0.026910956273743198 ms. Pending Flushes: 0 Table: ycsb SSTable count: 69 SSTables in each level: [67/4, 1, 0, 0, 0, 0, 0, 0, 0] Space used (live): 3454857914 Space used (total): 3454857914 Space used by snapshots (total): 0 Off heap memory used (total): 287361 SSTable Compression Ratio: 0.0 error: /home/jake/workspace/cassandra/./bin/../data/data/stresscql/ycsb-ff399910104911e5a797a18c989fb6f2/stresscql-ycsb-tmplink-ka-125-Data.db -- StackTrace -- java.lang.AssertionError: /home/jake/workspace/cassandra/./bin/../data/data/stresscql/ycsb-ff399910104911e5a797a18c989fb6f2/stresscql-ycsb-tmplink-ka-125-Data.db at org.apache.cassandra.io.sstable.SSTableReader.getApproximateKeyCount(SSTableReader.java:270) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:296) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:290) at com.yammer.metrics.reporting.JmxReporter$Gauge.getValue(JmxReporter.java:63) at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:83) at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:206) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1443) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399) at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:637) at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) at sun.rmi.transport.Transport$1.run(Transport.java:178) at sun.rmi.transport.Transport$1.run(Transport.java:175) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:174) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:557) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:812) at
[2/2] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83c0e01a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83c0e01a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83c0e01a Branch: refs/heads/cassandra-2.1 Commit: 83c0e01aa84a6cbfe36a89ef13027a78567df70a Parents: 0452e74 23e66a9 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:32:10 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:32:10 2015 -0400 -- --
[1/2] cassandra git commit: bump versions
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 0452e74f5 - 83c0e01aa bump versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/23e66a9d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23e66a9d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23e66a9d Branch: refs/heads/cassandra-2.1 Commit: 23e66a9d1c50e4331e8c1d212c2eeb940c5471fa Parents: f32cff8 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:02:45 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:02:45 2015 -0400 -- NEWS.txt | 8 build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index c4fdddb..9bfe803 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ 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.16 +== + +Upgrading +- +- Nothing specific to this release, but refer to previous entries if you + are upgrading from a previous version. + 2.0.15 == http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/build.xml -- diff --git a/build.xml b/build.xml index e35cac0..b019ec3 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.0.15/ +property name=base.version value=2.0.16/ 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/23e66a9d/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index c970224..527eb29 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (2.0.16) unstable; urgency=medium + + * New release + + -- Jake Luciani j...@apache.org Thu, 18 Jun 2015 14:01:32 -0400 + cassandra (2.0.15) unstable; urgency=medium * New release
[jira] [Updated] (CASSANDRA-8460) Make it possible to move non-compacting sstables to slow/big storage in DTCS
[ https://issues.apache.org/jira/browse/CASSANDRA-8460?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-8460: --- Reviewer: Marcus Eriksson Make it possible to move non-compacting sstables to slow/big storage in DTCS Key: CASSANDRA-8460 URL: https://issues.apache.org/jira/browse/CASSANDRA-8460 Project: Cassandra Issue Type: Improvement Reporter: Marcus Eriksson Assignee: Jeff Jirsa Labels: dtcs It would be nice if we could configure DTCS to have a set of extra data directories where we move the sstables once they are older than max_sstable_age_days. This would enable users to have a quick, small SSD for hot, new data, and big spinning disks for data that is rarely read and never compacted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Fix bug in cardinality estimation when sstables are being compacted
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 83c0e01aa - 42ea6e1f3 Fix bug in cardinality estimation when sstables are being compacted patch by tjake; reviewed by benedict for CASSANDRA-9580 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/42ea6e1f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/42ea6e1f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/42ea6e1f Branch: refs/heads/cassandra-2.1 Commit: 42ea6e1f3751845bd0d1326ab789a53a20783a53 Parents: 83c0e01 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:43:44 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:45:45 2015 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/io/sstable/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 899ea7c..9ae0969 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.7 + * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) Merged from 2.0 * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 0475665..0635826 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -264,6 +264,9 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead ICardinality cardinality = null; for (SSTableReader sstable : sstables) { +if (sstable.openReason == OpenReason.EARLY) +continue; + try { CompactionMetadata metadata = (CompactionMetadata) sstable.descriptor.getMetadataSerializer().deserialize(sstable.descriptor, MetadataType.COMPACTION);
[jira] [Commented] (CASSANDRA-9612) Assertion error while running `nodetool cfstats`
[ https://issues.apache.org/jira/browse/CASSANDRA-9612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592298#comment-14592298 ] Jim Witschey commented on CASSANDRA-9612: - This looks like a duplicate of [9580|https://issues.apache.org/jira/browse/CASSANDRA-9580]. [~mlowicki] Does that seem right to you? Assertion error while running `nodetool cfstats` Key: CASSANDRA-9612 URL: https://issues.apache.org/jira/browse/CASSANDRA-9612 Project: Cassandra Issue Type: Bug Environment: C* 2.1.6 Reporter: mlowicki nodetool cfstats sync.entity {code} Keyspace: sync Read Count: 2916573 Read Latency: 0.26340278573517617 ms. Write Count: 2356495 Write Latency: 0.03296340242606074 ms. Pending Flushes: 0 Table: entity SSTable count: 919 SSTables in each level: [50/4, 11/10, 101/100, 756, 0, 0, 0, 0, 0] Space used (live): 146265014558 Space used (total): 146265014558 Space used by snapshots (total): 0 Off heap memory used (total): 97950899 SSTable Compression Ratio: 0.1870809135227128 error: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db at org.apache.cassandra.io.sstable.SSTableReader.getApproximateKeyCount(SSTableReader.java:270) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:296) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:290) at com.yammer.metrics.reporting.JmxReporter$Gauge.getValue(JmxReporter.java:63) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:83) at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:206) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$2.run(Transport.java:202) at sun.rmi.transport.Transport$2.run(Transport.java:199) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:198) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) at java.security.AccessController.doPrivileged(Native Method) at
[jira] [Commented] (CASSANDRA-9616) cfstats on 2.1.6 throws fatal exception during compaction cycles
[ https://issues.apache.org/jira/browse/CASSANDRA-9616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592327#comment-14592327 ] Mark Manley commented on CASSANDRA-9616: It looks like the same issue with a different call. I'll close this as a dup and will link this appropriately. Thanks! cfstats on 2.1.6 throws fatal exception during compaction cycles Key: CASSANDRA-9616 URL: https://issues.apache.org/jira/browse/CASSANDRA-9616 Project: Cassandra Issue Type: Bug Reporter: Mark Manley When running cfstats against any cf that is doing a compaction cycle, I get the following exception for its reading of tmplink files: {code} error: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db {code} This seems to have started when I rolled out 2.1.6. I don't see a current bug in my cursory search, so here you go! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-9616) cfstats on 2.1.6 throws fatal exception during compaction cycles
[ https://issues.apache.org/jira/browse/CASSANDRA-9616?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mark Manley resolved CASSANDRA-9616. Resolution: Duplicate cfstats on 2.1.6 throws fatal exception during compaction cycles Key: CASSANDRA-9616 URL: https://issues.apache.org/jira/browse/CASSANDRA-9616 Project: Cassandra Issue Type: Bug Reporter: Mark Manley When running cfstats against any cf that is doing a compaction cycle, I get the following exception for its reading of tmplink files: {code} error: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db {code} This seems to have started when I rolled out 2.1.6. I don't see a current bug in my cursory search, so here you go! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9616) cfstats on 2.1.6 throws fatal exception during compaction cycles
[ https://issues.apache.org/jira/browse/CASSANDRA-9616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592334#comment-14592334 ] Jim Witschey commented on CASSANDRA-9616: - Perfect, thank you. cfstats on 2.1.6 throws fatal exception during compaction cycles Key: CASSANDRA-9616 URL: https://issues.apache.org/jira/browse/CASSANDRA-9616 Project: Cassandra Issue Type: Bug Reporter: Mark Manley When running cfstats against any cf that is doing a compaction cycle, I get the following exception for its reading of tmplink files: {code} error: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data/metric/metric_300-3fc67c00f75911e495a13d7c060fcade/metric-metric_300-tmplink-ka-9300-Data.db {code} This seems to have started when I rolled out 2.1.6. I don't see a current bug in my cursory search, so here you go! -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9610) Increased response time with cassandra 2.0.9 from 1.2.19
[ https://issues.apache.org/jira/browse/CASSANDRA-9610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592405#comment-14592405 ] Maitrayee commented on CASSANDRA-9610: -- In 1.2.19 I have 3 nodes in each dc. Cluster is across 3 dc In 2.0.9 I have 2 nodes/dc across 2 dc Increased response time with cassandra 2.0.9 from 1.2.19 Key: CASSANDRA-9610 URL: https://issues.apache.org/jira/browse/CASSANDRA-9610 Project: Cassandra Issue Type: Bug Reporter: Maitrayee Attachments: servicedefinition_schema.txt, traceout_1.2.19, traceout_2.0.9 I was using Cassandra 1.2.19. Recently upgraded to 2.0.9. Queries with secondary index was completing much faster in 1.2.19 Validated this with trace on via cqlsh -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (CASSANDRA-9583) test-compression could run multiple unit tests in parallel like test
[ https://issues.apache.org/jira/browse/CASSANDRA-9583?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg reopened CASSANDRA-9583: --- There is an issue with some jobs like pig-test running into broken parts of the build script. I pushed another commit to remove the usage of suitename and if the pig-tests show up in the results in Cassci it should address the issue. test-compression could run multiple unit tests in parallel like test Key: CASSANDRA-9583 URL: https://issues.apache.org/jira/browse/CASSANDRA-9583 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Assignee: Ariel Weisberg Fix For: 3.0 beta 1, 2.2.0 rc2 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Issue Comment Deleted] (CASSANDRA-9607) Get high load after upgrading from 2.1.3 to cassandra 2.1.6
[ https://issues.apache.org/jira/browse/CASSANDRA-9607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Study Hsueh updated CASSANDRA-9607: --- Comment: was deleted (was: cassandra log 2015-06-15 13:40:41,200 upgrade to 2.1.6 2015-06-17 18:32:40,740 whole cluster went down) Get high load after upgrading from 2.1.3 to cassandra 2.1.6 --- Key: CASSANDRA-9607 URL: https://issues.apache.org/jira/browse/CASSANDRA-9607 Project: Cassandra Issue Type: Bug Environment: OS: CentOS 6 * 4 Ubuntu 14.04 * 2 JDK: Oracle JDK 7, Oracle JDK 8 VM: Azure VM Standard A3 * 6 RAM: 7 GB Cores: 4 Reporter: Study Hsueh Priority: Critical Attachments: cassandra.yaml, load.png, log.zip After upgrading cassandra version from 2.1.3 to 2.1.6, the average load of my cassandra cluster grows from 0.x~1.x to 3.x~6.x. What kind of additional information should I provide for this problem? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[4/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
http://git-wip-us.apache.org/repos/asf/cassandra/blob/70d0d5f2/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index f4a59a2,000..1458461 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,2175 -1,0 +1,2178 @@@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.io.sstable.format; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicLong; + +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.HyperLogLogPlus; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.concurrent.ScheduledExecutors; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.db.lifecycle.Tracker; +import org.apache.cassandra.dht.*; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.apache.cassandra.utils.concurrent.Ref; +import org.apache.cassandra.utils.concurrent.SelfRefCounted; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + +/** + * An SSTableReader can be constructed in a number of places, but typically is either + * read from disk at startup, or constructed from a flushed memtable, or after compaction + * to replace some existing sstables. However once created, an sstablereader may also be modified. + * + * A reader's OpenReason describes its current stage in its lifecycle, as follows: + * + * + * pre {@code + * NORMAL + * From: None= Reader has been read from disk, either at startup or from a flushed memtable + * EARLY = Reader is the final result of a compaction + * MOVED_START = Reader WAS being compacted, but this failed and it has been restored to NORMAL status + * + * EARLY + * From: None= Reader is a compaction replacement that is either incomplete and has been opened + *to represent its partial result status, or has been finished but the compaction + *it is a part of has not yet completed fully + * EARLY = Same as from None, only it is not the first time it has been + * + * MOVED_START + * From: NORMAL = Reader is being compacted. This compaction has not finished, but the compaction result + *
[2/5] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83c0e01a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83c0e01a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83c0e01a Branch: refs/heads/cassandra-2.2 Commit: 83c0e01aa84a6cbfe36a89ef13027a78567df70a Parents: 0452e74 23e66a9 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:32:10 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:32:10 2015 -0400 -- --
[5/5] cassandra git commit: Merge branch 'cassandra-2.1' into cassandra-2.2
Merge branch 'cassandra-2.1' into cassandra-2.2 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/70d0d5f2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/70d0d5f2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/70d0d5f2 Branch: refs/heads/cassandra-2.2 Commit: 70d0d5f2cbe0b211b65fa7ee26b8c82e4d801fd9 Parents: 1f8516d 42ea6e1 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:47:47 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:47:47 2015 -0400 -- CHANGES.txt | 1 + .../org/apache/cassandra/io/sstable/format/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/70d0d5f2/CHANGES.txt -- diff --cc CHANGES.txt index fb44c9a,9ae0969..b96a2b0 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,15 -1,6 +1,16 @@@ -2.1.7 +2.2 + * Rename class for DATE type in Java driver (CASSANDRA-9563) + * Duplicate compilation of UDFs on coordinator (CASSANDRA-9475) + * Fix connection leak in CqlRecordWriter (CASSANDRA-9576) + * Mlockall before opening system sstables remove boot_without_jna option (CASSANDRA-9573) + * Add functions to convert timeuuid to date or time, deprecate dateOf and unixTimestampOf (CASSANDRA-9229) + * Make sure we cancel non-compacting sstables from LifecycleTransaction (CASSANDRA-9566) + * Fix deprecated repair JMX API (CASSANDRA-9570) + * Add logback metrics (CASSANDRA-9378) +Merged from 2.1: + * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) + * Make rebuild only run one at a time (CASSANDRA-9119) Merged from 2.0 * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) * ArrivalWindow should use primitives (CASSANDRA-9496)
[1/5] cassandra git commit: bump versions
Repository: cassandra Updated Branches: refs/heads/cassandra-2.2 1f8516da8 - 70d0d5f2c bump versions Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/23e66a9d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/23e66a9d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/23e66a9d Branch: refs/heads/cassandra-2.2 Commit: 23e66a9d1c50e4331e8c1d212c2eeb940c5471fa Parents: f32cff8 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:02:45 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:02:45 2015 -0400 -- NEWS.txt | 8 build.xml| 2 +- debian/changelog | 6 ++ 3 files changed, 15 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index c4fdddb..9bfe803 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -13,6 +13,14 @@ 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.16 +== + +Upgrading +- +- Nothing specific to this release, but refer to previous entries if you + are upgrading from a previous version. + 2.0.15 == http://git-wip-us.apache.org/repos/asf/cassandra/blob/23e66a9d/build.xml -- diff --git a/build.xml b/build.xml index e35cac0..b019ec3 100644 --- a/build.xml +++ b/build.xml @@ -25,7 +25,7 @@ property name=debuglevel value=source,lines,vars/ !-- default version and SCM information -- -property name=base.version value=2.0.15/ +property name=base.version value=2.0.16/ 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/23e66a9d/debian/changelog -- diff --git a/debian/changelog b/debian/changelog index c970224..527eb29 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cassandra (2.0.16) unstable; urgency=medium + + * New release + + -- Jake Luciani j...@apache.org Thu, 18 Jun 2015 14:01:32 -0400 + cassandra (2.0.15) unstable; urgency=medium * New release
[3/5] cassandra git commit: Fix bug in cardinality estimation when sstables are being compacted
Fix bug in cardinality estimation when sstables are being compacted patch by tjake; reviewed by benedict for CASSANDRA-9580 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/42ea6e1f Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/42ea6e1f Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/42ea6e1f Branch: refs/heads/cassandra-2.2 Commit: 42ea6e1f3751845bd0d1326ab789a53a20783a53 Parents: 83c0e01 Author: T Jake Luciani j...@apache.org Authored: Thu Jun 18 14:43:44 2015 -0400 Committer: T Jake Luciani j...@apache.org Committed: Thu Jun 18 14:45:45 2015 -0400 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/io/sstable/SSTableReader.java | 3 +++ 2 files changed, 4 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 899ea7c..9ae0969 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.7 + * Fix bug in cardinality check when compacting (CASSANDRA-9580) * Fix memory leak in Ref due to ConcurrentLinkedQueue.remove() behaviour (CASSANDRA-9549) Merged from 2.0 * Expose some internals of SelectStatement for inspection (CASSANDRA-9532) http://git-wip-us.apache.org/repos/asf/cassandra/blob/42ea6e1f/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 0475665..0635826 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -264,6 +264,9 @@ public class SSTableReader extends SSTable implements SelfRefCountedSSTableRead ICardinality cardinality = null; for (SSTableReader sstable : sstables) { +if (sstable.openReason == OpenReason.EARLY) +continue; + try { CompactionMetadata metadata = (CompactionMetadata) sstable.descriptor.getMetadataSerializer().deserialize(sstable.descriptor, MetadataType.COMPACTION);
[jira] [Resolved] (CASSANDRA-9612) Assertion error while running `nodetool cfstats`
[ https://issues.apache.org/jira/browse/CASSANDRA-9612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jim Witschey resolved CASSANDRA-9612. - Resolution: Duplicate Assertion error while running `nodetool cfstats` Key: CASSANDRA-9612 URL: https://issues.apache.org/jira/browse/CASSANDRA-9612 Project: Cassandra Issue Type: Bug Environment: C* 2.1.6 Reporter: mlowicki nodetool cfstats sync.entity {code} Keyspace: sync Read Count: 2916573 Read Latency: 0.26340278573517617 ms. Write Count: 2356495 Write Latency: 0.03296340242606074 ms. Pending Flushes: 0 Table: entity SSTable count: 919 SSTables in each level: [50/4, 11/10, 101/100, 756, 0, 0, 0, 0, 0] Space used (live): 146265014558 Space used (total): 146265014558 Space used by snapshots (total): 0 Off heap memory used (total): 97950899 SSTable Compression Ratio: 0.1870809135227128 error: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db -- StackTrace -- java.lang.AssertionError: /var/lib/cassandra/data2/sync/entity-f73d1360770e11e49f1d673dc3e50a5f/sync-entity-tmplink-ka-516810-Data.db at org.apache.cassandra.io.sstable.SSTableReader.getApproximateKeyCount(SSTableReader.java:270) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:296) at org.apache.cassandra.metrics.ColumnFamilyMetrics$9.value(ColumnFamilyMetrics.java:290) at com.yammer.metrics.reporting.JmxReporter$Gauge.getValue(JmxReporter.java:63) at sun.reflect.GeneratedMethodAccessor8.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:83) at com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:206) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:647) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657) at sun.reflect.GeneratedMethodAccessor14.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$2.run(Transport.java:202) at sun.rmi.transport.Transport$2.run(Transport.java:199) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:198) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at
[jira] [Comment Edited] (CASSANDRA-9610) Increased response time with cassandra 2.0.9 from 1.2.19
[ https://issues.apache.org/jira/browse/CASSANDRA-9610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14592405#comment-14592405 ] Maitrayee edited comment on CASSANDRA-9610 at 6/18/15 8:29 PM: --- In 1.2.19 I have 3 nodes in each dc. Cluster is across 3 dc In 2.0.9 I have 2 nodes/dc across 2 dc As I mentioned, in 1.2.19 initial_token was not set any value, does that still override num_token. nodetool status on the 1.2.19 cluster shows Tokens as 256. How is it still vnode is disabled on this cluster? was (Author: maitrayee_c): In 1.2.19 I have 3 nodes in each dc. Cluster is across 3 dc In 2.0.9 I have 2 nodes/dc across 2 dc As I mentioned, in 1.2.19 initial_token was not set any value, does that still override num_token. nodetool status on the 1.2.19 cluster shows Tokens as 256 During 1.2.19 to 2.0.9 upgrade initial_token was commented. Do I need to follow the same steps Increased response time with cassandra 2.0.9 from 1.2.19 Key: CASSANDRA-9610 URL: https://issues.apache.org/jira/browse/CASSANDRA-9610 Project: Cassandra Issue Type: Bug Reporter: Maitrayee Attachments: servicedefinition_schema.txt, traceout_1.2.19, traceout_2.0.9 I was using Cassandra 1.2.19. Recently upgraded to 2.0.9. Queries with secondary index was completing much faster in 1.2.19 Validated this with trace on via cqlsh -- This message was sent by Atlassian JIRA (v6.3.4#6332)