[jira] [Commented] (CASSANDRA-3003) Trunk single-pass streaming doesn't handle large row correctly
[ https://issues.apache.org/jira/browse/CASSANDRA-3003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13082991#comment-13082991 ] Sylvain Lebresne commented on CASSANDRA-3003: - bq. I'm probably missing something, but isn't the problem that this can't be done without two passes for rows that are too large to fit in memory? Hum true. What we need to do is deserialize each row with the 'fromRemote' flag on so that the delta are cleaned up, and them reserialize the result. But that will potentially reduce the column serialized size (and thus modify the row total size and the column index). Now we could imagine to remember the offset of the beginning of the row, to load the column index in memory and update it during the first pass (it would likely be ok to simply update the index offsets without changing the index structure itself), and to seek back at the end to write the updated data size and column index. However, this unfortunately won't be doable with the current SequentialWriter (and CompressedSequentialWriter) since we cannot seek back (without truncating). Retrospectively, it would have been nicer to have the cleaning of a counter context not change its size :( So yeah, it sucks. I'm still mildly fan of moving the cleanup because it feels wrong somehow. It feels it would be better to have that delta cleaning done sooner than latter. But this may end up being the simplest/more efficient solution. Trunk single-pass streaming doesn't handle large row correctly -- Key: CASSANDRA-3003 URL: https://issues.apache.org/jira/browse/CASSANDRA-3003 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sylvain Lebresne Assignee: Yuki Morishita Priority: Critical Labels: streaming For normal column family, trunk streaming always buffer the whole row into memory. In uses {noformat} ColumnFamily.serializer().deserializeColumns(in, cf, true, true); {noformat} on the input bytes. We must avoid this for rows that don't fit in the inMemoryLimit. Note that for regular column families, for a given row, there is actually no need to even recreate the bloom filter of column index, nor to deserialize the columns. It is enough to filter the key and row size to feed the index writer, but then simply dump the rest on disk directly. This would make streaming more efficient, avoid a lot of object creation and avoid the pitfall of big rows. Counters column family are unfortunately trickier, because each column needs to be deserialized (to mark them as 'fromRemote'). However, we don't need to do the double pass of LazilyCompactedRow for that. We can simply use a SSTableIdentityIterator and deserialize/reserialize input as it comes. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3014) AnitEntropy/MerkleTree Error
[ https://issues.apache.org/jira/browse/CASSANDRA-3014?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083002#comment-13083002 ] Sylvain Lebresne commented on CASSANDRA-3014: - Yeah, this has a real chance to have been fixed since 0.8.0. This seems to be a problem of the merkle tree being deeper that the max depth limit. So it is likely a problem during the creation of the tree that create a deeper tree than allowed (possibly by just 1). However, since 0.8.0, we have both fixed a related bug in the creation function (CASSANDRA-2758) and changed the creation function used for RandomPartitioner (CASSANDRA-2841). AnitEntropy/MerkleTree Error Key: CASSANDRA-3014 URL: https://issues.apache.org/jira/browse/CASSANDRA-3014 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.0 Reporter: Hefeng Yuan Priority: Minor Hi, We are seeing some AntiEntropy error in our production servers, since it's hard to repro in other env, pasting the stack track here for some clue. We're using a cluster of 2 data centers, 9 nodes, 6 for online traffic, 3 for Brisk BI. Our RF is Cassandra:5, Brisk:1. Our Cassandra server version is 0.8.0. Data is written using Hector 0.7.0-20 and cassandra 0.7.2 library. Partitioner is random. Our nodetool repair is scheduled once per week. The exception stack is appended in the end. Any help is appreciated. Thanks, Hefeng ERROR [AntiEntropyStage:2] 2011-08-08 04:24:39,556 AbstractCassandraDaemon.java (line 113) Fatal exception in thread Thread[AntiEntropyStage:2,5,main] java.lang.AssertionError at org.apache.cassandra.utils.MerkleTree.inc(MerkleTree.java:154) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:262) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:284) at org.apache.cassandra.utils.MerkleTree.differenceHelper(MerkleTree.java:273) at
[jira] [Commented] (CASSANDRA-2982) Refactor secondary index api
[ https://issues.apache.org/jira/browse/CASSANDRA-2982?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083065#comment-13083065 ] Hudson commented on CASSANDRA-2982: --- Integrated in Cassandra #1016 (See [https://builds.apache.org/job/Cassandra/1016/]) Refactoring of the secondary index api patch by Jake Luciani; reviewed by Pavel Yaskevich for CASSANDRA-2982 xedin : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156567 Files : * /cassandra/trunk/src/java/org/apache/cassandra/db/MeteredFlusher.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexManager.java * /cassandra/trunk/src/java/org/apache/cassandra/db/Table.java * /cassandra/trunk/src/java/org/apache/cassandra/cql/QueryProcessor.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/ColumnFamilyStoreTest.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysIndex.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/CleanupTest.java * /cassandra/trunk/src/java/org/apache/cassandra/db/compaction/CompactionManager.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index * /cassandra/trunk/src/java/org/apache/cassandra/db/index/keys/KeysSearcher.java * /cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java * /cassandra/trunk/src/java/org/apache/cassandra/service/IndexScanVerbHandler.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndex.java * /cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java * /cassandra/trunk/CHANGES.txt * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexBuilder.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/keys * /cassandra/trunk/src/java/org/apache/cassandra/streaming/StreamInSession.java * /cassandra/trunk/src/java/org/apache/cassandra/db/index/SecondaryIndexSearcher.java * /cassandra/trunk/test/unit/org/apache/cassandra/streaming/StreamingTransferTest.java * /cassandra/trunk/test/unit/org/apache/cassandra/db/DefsTest.java Refactor secondary index api Key: CASSANDRA-2982 URL: https://issues.apache.org/jira/browse/CASSANDRA-2982 Project: Cassandra Issue Type: Sub-task Components: Core Reporter: T Jake Luciani Assignee: T Jake Luciani Fix For: 1.0 Attachments: 2982-v1.txt, 2982-v2.txt, CASSANDRA-2982-v3.patch Secondary indexes currently make some bad assumptions about the underlying indexes. 1. That they are always stored in other column families. 2. That there is a unique index per column In the case of CASSANDRA-2915 neither of these are true. The new api should abstract the search concepts and allow any search api to plug in. Once the code is refactored and basically pluggable we can remove the IndexType enum and use class names similar to how we handle partitioners and comparators. Basic api is to add a SecondaryIndexManager that handles different index types per CF and a SecondaryIndex base class that handles a particular type implementation. This requires major changes to ColumnFamilyStore and Table.IndexBuilder -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2975) Upgrade MurmurHash to version 3
[ https://issues.apache.org/jira/browse/CASSANDRA-2975?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083077#comment-13083077 ] Pavel Yaskevich commented on CASSANDRA-2975: First of all - can you please rebase both with latest trunk and attach them to JIRA? What I see from first look (about patch for backward compatibility): - I think we should extract interface from BloomFilter class and make BF a factory as now we have Murmur{2,3}BloomFilter classes - Needs a test for compatibility with old SSTables (which are using Murmur2BF) - minor note: comment about new SSTable version is missing at the top of the Descriptor class As soon as you attach files in here I will apply and play with them and maybe find other problems. Upgrade MurmurHash to version 3 --- Key: CASSANDRA-2975 URL: https://issues.apache.org/jira/browse/CASSANDRA-2975 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Brian Lindauer Assignee: Brian Lindauer Priority: Trivial Labels: lhf Fix For: 1.0 MurmurHash version 3 was finalized on June 3. It provides an enormous speedup and increased robustness over version 2, which is implemented in Cassandra. Information here: http://code.google.com/p/smhasher/ The reference implementation is here: http://code.google.com/p/smhasher/source/browse/trunk/MurmurHash3.cpp?spec=svn136r=136 I have already done the work to port the (public domain) reference implementation to Java in the MurmurHash class and updated the BloomFilter class to use the new implementation: https://github.com/lindauer/cassandra/commit/cea6068a4a3e5d7d9509335394f9ef3350d37e93 Apart from the faster hash time, the new version only requires one call to hash() rather than 2, since it returns 128 bits of hash instead of 64. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-2915) Lucene based Secondary Indexes
[ https://issues.apache.org/jira/browse/CASSANDRA-2915?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] T Jake Luciani reassigned CASSANDRA-2915: - Assignee: Jason Rutherglen Lucene based Secondary Indexes -- Key: CASSANDRA-2915 URL: https://issues.apache.org/jira/browse/CASSANDRA-2915 Project: Cassandra Issue Type: New Feature Components: Core Reporter: T Jake Luciani Assignee: Jason Rutherglen Labels: secondary_index Fix For: 1.0 Secondary indexes (of type KEYS) suffer from a number of limitations in their current form: - Multiple IndexClauses only work when there is a subset of rows under the highest clause - One new column family is created per index this means 10 new CFs for 10 secondary indexes This ticket will use the Lucene library to implement secondary indexes as one index per CF, and utilize the Lucene query engine to handle multiple index clauses. Also, by using the Lucene we get a highly optimized file format. There are a few parallels we can draw between Cassandra and Lucene. Lucene indexes segments in memory then flushes them to disk so we can sync our memtable flushes to lucene flushes. Lucene also has optimize() which correlates to our compaction process, so these can be sync'd as well. We will also need to correlate column validators to Lucene tokenizers, so the data can be stored properly, the big win in once this is done we can perform complex queries within a column like wildcard searches. The downside of this approach is we will need to read before write since documents in Lucene are written as complete documents. For random workloads with lot's of indexed columns this means we need to read the document from the index, update it and write it back. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2915) Lucene based Secondary Indexes
[ https://issues.apache.org/jira/browse/CASSANDRA-2915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083099#comment-13083099 ] T Jake Luciani commented on CASSANDRA-2915: --- Under the CF dir I imagine Lucene based Secondary Indexes -- Key: CASSANDRA-2915 URL: https://issues.apache.org/jira/browse/CASSANDRA-2915 Project: Cassandra Issue Type: New Feature Components: Core Reporter: T Jake Luciani Assignee: Jason Rutherglen Labels: secondary_index Fix For: 1.0 Secondary indexes (of type KEYS) suffer from a number of limitations in their current form: - Multiple IndexClauses only work when there is a subset of rows under the highest clause - One new column family is created per index this means 10 new CFs for 10 secondary indexes This ticket will use the Lucene library to implement secondary indexes as one index per CF, and utilize the Lucene query engine to handle multiple index clauses. Also, by using the Lucene we get a highly optimized file format. There are a few parallels we can draw between Cassandra and Lucene. Lucene indexes segments in memory then flushes them to disk so we can sync our memtable flushes to lucene flushes. Lucene also has optimize() which correlates to our compaction process, so these can be sync'd as well. We will also need to correlate column validators to Lucene tokenizers, so the data can be stored properly, the big win in once this is done we can perform complex queries within a column like wildcard searches. The downside of this approach is we will need to read before write since documents in Lucene are written as complete documents. For random workloads with lot's of indexed columns this means we need to read the document from the index, update it and write it back. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2950) Data from truncated CF reappears after server restart
[ https://issues.apache.org/jira/browse/CASSANDRA-2950?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne updated CASSANDRA-2950: Attachment: 2950-v3_0.8.patch Attaching a v3 that is rebased against 0.8. I've also slightly change the logic in Truncate to submit all the flushes and then call waitForActiveFlushes, as this is slightly simpler and should work equally well as far as I can tell. Apart from that, this lgtm. Data from truncated CF reappears after server restart - Key: CASSANDRA-2950 URL: https://issues.apache.org/jira/browse/CASSANDRA-2950 Project: Cassandra Issue Type: Bug Affects Versions: 0.8.0 Reporter: Cathy Daw Assignee: Jonathan Ellis Fix For: 0.8.5 Attachments: 2950-v2.txt, 2950-v3_0.8.patch, 2950.txt * Configure 3 node cluster * Ensure the java stress tool creates Keyspace1 with RF=3 {code} // Run Stress Tool to generate 10 keys, 1 column stress --operation=INSERT -t 2 --num-keys=50 --columns=20 --consistency-level=QUORUM --average-size-values --replication-factor=3 --create-index=KEYS --nodes=cathy1,cathy2 // Verify 50 keys in CLI use Keyspace1; list Standard1; // TRUNCATE CF in CLI use Keyspace1; truncate counter1; list counter1; // Run stress tool and verify creation of 1 key with 10 columns stress --operation=INSERT -t 2 --num-keys=1 --columns=10 --consistency-level=QUORUM --average-size-values --replication-factor=3 --create-index=KEYS --nodes=cathy1,cathy2 // Verify 1 key in CLI use Keyspace1; list Standard1; // Restart all three nodes // You will see 51 keys in CLI use Keyspace1; list Standard1; {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3003) Trunk single-pass streaming doesn't handle large row correctly
[ https://issues.apache.org/jira/browse/CASSANDRA-3003?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083111#comment-13083111 ] Jonathan Ellis commented on CASSANDRA-3003: --- bq. it would have been nicer to have the cleaning of a counter context not change its size Can we pad it somehow? Trunk single-pass streaming doesn't handle large row correctly -- Key: CASSANDRA-3003 URL: https://issues.apache.org/jira/browse/CASSANDRA-3003 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sylvain Lebresne Assignee: Yuki Morishita Priority: Critical Labels: streaming For normal column family, trunk streaming always buffer the whole row into memory. In uses {noformat} ColumnFamily.serializer().deserializeColumns(in, cf, true, true); {noformat} on the input bytes. We must avoid this for rows that don't fit in the inMemoryLimit. Note that for regular column families, for a given row, there is actually no need to even recreate the bloom filter of column index, nor to deserialize the columns. It is enough to filter the key and row size to feed the index writer, but then simply dump the rest on disk directly. This would make streaming more efficient, avoid a lot of object creation and avoid the pitfall of big rows. Counters column family are unfortunately trickier, because each column needs to be deserialized (to mark them as 'fromRemote'). However, we don't need to do the double pass of LazilyCompactedRow for that. We can simply use a SSTableIdentityIterator and deserialize/reserialize input as it comes. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2405) should expose 'time since last successful repair' for easier aes monitoring
[ https://issues.apache.org/jira/browse/CASSANDRA-2405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083116#comment-13083116 ] Pavel Yaskevich commented on CASSANDRA-2405: Sure. should expose 'time since last successful repair' for easier aes monitoring --- Key: CASSANDRA-2405 URL: https://issues.apache.org/jira/browse/CASSANDRA-2405 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Peter Schuller Assignee: Pavel Yaskevich Priority: Minor Fix For: 0.8.5 Attachments: CASSANDRA-2405-v2.patch, CASSANDRA-2405-v3.patch, CASSANDRA-2405-v4.patch, CASSANDRA-2405.patch The practical implementation issues of actually ensuring repair runs is somewhat of an undocumented/untreated issue. One hopefully low hanging fruit would be to at least expose the time since last successful repair for a particular column family, to make it easier to write a correct script to monitor for lack of repair in a non-buggy fashion. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-1473) Implement a Cassandra aware Hadoop mapreduce.Partitioner
[ https://issues.apache.org/jira/browse/CASSANDRA-1473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083117#comment-13083117 ] Jonathan Ellis commented on CASSANDRA-1473: --- {noformat} /** Get the partition number for a given key (hence record) given the total number of partitions */ getPartition(KEY key, VALUE value, int numPartitions) */ {noformat} I don't think we can do this, without knowing the total number of keys as well. :( Implement a Cassandra aware Hadoop mapreduce.Partitioner Key: CASSANDRA-1473 URL: https://issues.apache.org/jira/browse/CASSANDRA-1473 Project: Cassandra Issue Type: Improvement Components: Hadoop Reporter: Stu Hood Assignee: Patricio Echague Fix For: 1.0 When using a IPartitioner that does not sort data in byte order (RandomPartitioner for example) with Cassandra's Hadoop integration, Hadoop is unaware of the output order of the data. We can make Hadoop aware of the proper order of the output data by implementing Hadoop's mapreduce.Partitioner interface: then Hadoop will handle sorting all of the data according to Cassandra's IPartitioner, and the writing clients will be able to connect to smaller numbers of Cassandra nodes. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Issue Comment Edited] (CASSANDRA-1473) Implement a Cassandra aware Hadoop mapreduce.Partitioner
[ https://issues.apache.org/jira/browse/CASSANDRA-1473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083117#comment-13083117 ] Jonathan Ellis edited comment on CASSANDRA-1473 at 8/11/11 1:54 PM: {noformat} /** Get the partition number for a given key (hence record) given the total number of partitions */ getPartition(KEY key, VALUE value, int numPartitions) {noformat} I don't think we can do this, without knowing the total number of keys as well. :( was (Author: jbellis): {noformat} /** Get the partition number for a given key (hence record) given the total number of partitions */ getPartition(KEY key, VALUE value, int numPartitions) */ {noformat} I don't think we can do this, without knowing the total number of keys as well. :( Implement a Cassandra aware Hadoop mapreduce.Partitioner Key: CASSANDRA-1473 URL: https://issues.apache.org/jira/browse/CASSANDRA-1473 Project: Cassandra Issue Type: Improvement Components: Hadoop Reporter: Stu Hood Assignee: Patricio Echague Fix For: 1.0 When using a IPartitioner that does not sort data in byte order (RandomPartitioner for example) with Cassandra's Hadoop integration, Hadoop is unaware of the output order of the data. We can make Hadoop aware of the proper order of the output data by implementing Hadoop's mapreduce.Partitioner interface: then Hadoop will handle sorting all of the data according to Cassandra's IPartitioner, and the writing clients will be able to connect to smaller numbers of Cassandra nodes. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-2045) Simplify HH to decrease read load when nodes come back
[ https://issues.apache.org/jira/browse/CASSANDRA-2045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-2045. --- Resolution: Fixed Simplify HH to decrease read load when nodes come back -- Key: CASSANDRA-2045 URL: https://issues.apache.org/jira/browse/CASSANDRA-2045 Project: Cassandra Issue Type: Improvement Reporter: Chris Goffinet Assignee: Nicholas Telford Fix For: 1.0 Attachments: 0001-Changed-storage-of-Hints-to-store-a-serialized-RowMu.patch, 0002-Refactored-HintedHandoffManager.sendRow-to-reduce-co.patch, 0003-Fixed-some-coding-style-issues.patch, 0004-Fixed-direct-usage-of-Gossiper.getEndpointStateForEn.patch, 0005-Removed-duplicate-failure-detection-conditionals.-It.patch, 0006-Removed-handling-of-old-style-hints.patch, 2045-v3.txt, 2045-v5.txt, 2045-v6.txt, CASSANDRA-2045-simplify-hinted-handoff-001.diff, CASSANDRA-2045-simplify-hinted-handoff-002.diff, CASSANDRA-2045-v4.diff Currently when HH is enabled, hints are stored, and when a node comes back, we begin sending that node data. We do a lookup on the local node for the row to send. To help reduce read load (if a node is offline for long period of time) we should store the data we want forward the node locally instead. We wouldn't have to do any lookups, just take byte[] and send to the destination. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2220) It would be nice to be able to rollback to a specific schema version.
[ https://issues.apache.org/jira/browse/CASSANDRA-2220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083150#comment-13083150 ] Jonathan Ellis commented on CASSANDRA-2220: --- Doesn't this conflict with CASSANDRA-2056? It would be nice to be able to rollback to a specific schema version. - Key: CASSANDRA-2220 URL: https://issues.apache.org/jira/browse/CASSANDRA-2220 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Gary Dusbabek Assignee: Gary Dusbabek Priority: Minor Labels: ponies Fix For: 1.0 -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2849) InvalidRequestException when validating column data includes entire column value
[ https://issues.apache.org/jira/browse/CASSANDRA-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083169#comment-13083169 ] David Allsopp commented on CASSANDRA-2849: -- Yes, that looks good to me, thanks. InvalidRequestException when validating column data includes entire column value Key: CASSANDRA-2849 URL: https://issues.apache.org/jira/browse/CASSANDRA-2849 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.1 Reporter: David Allsopp Priority: Minor Fix For: 0.8.5 Attachments: 2849-v2.txt, cassandra-2849.diff If the column value fails to validate, then ThriftValidation.validateColumnData() calls bytesToHex() on the entire column value and puts this string in the Exception. Since the value may be up to 2GB, this is potentially a lot of extra memory. The value is likely to be logged (and presumably returned to the thrift client over the network?). This could cause a lot of slowdown or an unnecessary OOM crash, and is unlikely to be useful (the client has access to the full value anyway if required for debugging). Also, the reason for the exception (extracted from the MarshalException) is printed _after_ the data, so if there's any truncation in the logging system at any point, the reason will be lost. The reason should be displayed before the column value, and the column value should be truncated in the Exception message. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-1827) Batching across stages
[ https://issues.apache.org/jira/browse/CASSANDRA-1827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083206#comment-13083206 ] Peter Schuller commented on CASSANDRA-1827: --- The following is speculation and should not be construed as a strong claim ;) I don't have proof but I suspect that putting/popping individual entries is fairly significant, mostly because of the context switching involved and interaction with the scheduler. Empirically when stress-testing it seems to me that under CPU bound workloads the stages are often not saturated (and you certainly don't saturate all cores despite high concurrency). In other words, even with a consistent backlog of pending tasks the active tasks aren't consistently at full concurrency. I wonder what kind of effects come form delay in waking up a thread. Something similar to consider might be to try to use a non-blocking queue (you'd still presumably block in low-throughput cases, but have the potential to proceed lock-lessly under high load). Batching across stages -- Key: CASSANDRA-1827 URL: https://issues.apache.org/jira/browse/CASSANDRA-1827 Project: Cassandra Issue Type: Improvement Reporter: Chris Goffinet Fix For: 1.0 We might be able to get some improvement if we start batching tasks for every stage. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable
[ https://issues.apache.org/jira/browse/CASSANDRA-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-3001: -- Reviewer: xedin Make the compression algorithm and chunk length configurable Key: CASSANDRA-3001 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Priority: Minor Labels: compression Fix For: 1.0 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 0002-Add-deflate-compressor.patch -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (CASSANDRA-2985) batch_mutate silently failing
[ https://issues.apache.org/jira/browse/CASSANDRA-2985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-2985. --- Resolution: Cannot Reproduce batch_mutate silently failing - Key: CASSANDRA-2985 URL: https://issues.apache.org/jira/browse/CASSANDRA-2985 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.1 Environment: OS:ubuntu-10;php; Reporter: copin teng I am working with Cassandra 0.8.1 using the thrift interface. I am trying to use the batch_mutate method call, however, when I execute it, I receive no error message. This leads me to believe it worked. When I check using the CLI, there is nothing there. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2900) Allow bulk load via streaming to complete 'transactionally'
[ https://issues.apache.org/jira/browse/CASSANDRA-2900?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2900: -- Priority: Minor (was: Major) Fix Version/s: (was: 1.0) Allow bulk load via streaming to complete 'transactionally' --- Key: CASSANDRA-2900 URL: https://issues.apache.org/jira/browse/CASSANDRA-2900 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Stu Hood Priority: Minor It would be great if the bulk loader had the ability to cancel any streams that had completed if other streams fail, to narrow the window where a job could be half-completed. This is mostly only a problem for counter bulk loads or cases where the bulk load timestamps do not allow for idempotency. One possible way to implement this would be to have streaming (optionally?) add streamed files to a pool out-of-reach of compaction, which would allow you to cancel or finalize them depending on the success of the entire bulk load. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2889) Avoids having replicate on write tasks stacking up at CL.ONE
[ https://issues.apache.org/jira/browse/CASSANDRA-2889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083228#comment-13083228 ] Jonathan Ellis commented on CASSANDRA-2889: --- Is this the same as CASSANDRA-2892? Avoids having replicate on write tasks stacking up at CL.ONE Key: CASSANDRA-2889 URL: https://issues.apache.org/jira/browse/CASSANDRA-2889 Project: Cassandra Issue Type: Improvement Components: Core Affects Versions: 0.8.0 Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Labels: counters The counter design involves a read on the first replica during a write. At CL.ONE, this read is not involved in the latency of the operation (the write is acknowledged before). This means it is fairly easy to insert too quickly at CL.ONE and have the replicate on write tasks falling behind. The goal of this ticket is to protect against that. An option could be to bound the replicate on write task queue so that write start to block once we have too much of those in the queue. Another option could be to drop the oldest tasks when they are too old, but it's probably a more unsafe option. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2893) Add row-level isolation
[ https://issues.apache.org/jira/browse/CASSANDRA-2893?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2893: -- Description: This could be done using an the atomic ConcurrentMap operations from the Memtable and something like http://code.google.com/p/pcollections/ to replace the ConcurrentSkipListMap in ThreadSafeSortedColumns. The trick is that pcollections does not provide a SortedMap, so we probably need to write our own. Googling [persistent sortedmap] I found http://code.google.com/p/actord/source/browse/trunk/actord/src/main/scala/ff/collection (in scala) and http://clojure.org/data_structures#Data Structures-Maps. was:This could be done using something an AtomicReference and something like http://code.google.com/p/pcollections/ but with a SortedMap (for the columnfamily.columns collection). So we probably need to write our own. Add row-level isolation --- Key: CASSANDRA-2893 URL: https://issues.apache.org/jira/browse/CASSANDRA-2893 Project: Cassandra Issue Type: Improvement Reporter: Jonathan Ellis Priority: Minor This could be done using an the atomic ConcurrentMap operations from the Memtable and something like http://code.google.com/p/pcollections/ to replace the ConcurrentSkipListMap in ThreadSafeSortedColumns. The trick is that pcollections does not provide a SortedMap, so we probably need to write our own. Googling [persistent sortedmap] I found http://code.google.com/p/actord/source/browse/trunk/actord/src/main/scala/ff/collection (in scala) and http://clojure.org/data_structures#Data Structures-Maps. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156688 - /cassandra/tags/cassandra-0.8.4/
Author: slebresne Date: Thu Aug 11 17:23:22 2011 New Revision: 1156688 URL: http://svn.apache.org/viewvc?rev=1156688view=rev Log: Creating tag for 0.8.4 Added: cassandra/tags/cassandra-0.8.4/ (props changed) - copied from r1156253, cassandra/branches/cassandra-0.8/ Propchange: cassandra/tags/cassandra-0.8.4/ -- --- svn:ignore (added) +++ svn:ignore Thu Aug 11 17:23:22 2011 @@ -0,0 +1,8 @@ +.classpath +.project +.settings +temp-testng-customsuite.xml +build +build.properties +.idea +out Propchange: cassandra/tags/cassandra-0.8.4/ -- --- svn:mergeinfo (added) +++ svn:mergeinfo Thu Aug 11 17:23:22 2011 @@ -0,0 +1,12 @@ +/cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 +/cassandra/branches/cassandra-0.7:1026516-1151306 +/cassandra/branches/cassandra-0.7.0:1053690-1055654 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125041 +/cassandra/branches/cassandra-0.8.0:1125021-1130369 +/cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 +/cassandra/tags/cassandra-0.8.0-rc1:1102511-1125020 +/cassandra/trunk:1129049-1129050,1129065,1151625,1152416,1153189 +/incubator/cassandra/branches/cassandra-0.3:774578-796573 +/incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350 +/incubator/cassandra/branches/cassandra-0.5:72-915439 +/incubator/cassandra/branches/cassandra-0.6:911237-922688
svn commit: r1156694 - /cassandra/branches/cassandra-0.8/CHANGES.txt
Author: jbellis Date: Thu Aug 11 17:26:57 2011 New Revision: 1156694 URL: http://svn.apache.org/viewvc?rev=1156694view=rev Log: update CHANGES Modified: cassandra/branches/cassandra-0.8/CHANGES.txt Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156694r1=1156693r2=1156694view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 17:26:57 2011 @@ -27,8 +27,8 @@ (CASSANDRA-2958) * improved POSIX compatibility of start scripts (CASsANDRA-2965) * add counter support to Hadoop InputFormat (CASSANDRA-2981) - * fix bug where dirty commit logs were removed (and avoid keeping segments - with no post-flush activity permanently dirty) (CASSANDRA-2829) + * fix bug where dirty commitlog segments were removed (and avoid keeping + segments with no post-flush activity permanently dirty) (CASSANDRA-2829) * fix throwing exception with batch mutation of counter super columns (CASSANDRA-2949) * ignore system tables during repair (CASSANDRA-2979)
svn commit: r1156695 - /cassandra/branches/cassandra-0.8/CHANGES.txt
Author: jbellis Date: Thu Aug 11 17:27:43 2011 New Revision: 1156695 URL: http://svn.apache.org/viewvc?rev=1156695view=rev Log: update CHANGES Modified: cassandra/branches/cassandra-0.8/CHANGES.txt Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156695r1=1156694r2=1156695view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 17:27:43 2011 @@ -773,7 +773,7 @@ transmitting separately (CASSANDRA-1465) * apply reversed flag during collation from different data sources (CASSANDRA-1450) - * make failure to remove comitlog segment non-fatal (CASSANDRA-1348) + * make failure to remove commitlog segment non-fatal (CASSANDRA-1348) * correct ordering of drain operations so CL.recover is no longer necessary (CASSANDRA-1408) * removed keyspace from describe_splits method (CASSANDRA-1425)
[jira] [Resolved] (CASSANDRA-2874) commitlogs are not draining
[ https://issues.apache.org/jira/browse/CASSANDRA-2874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-2874. --- Resolution: Duplicate should be fixed by CASSANDRA-2829 commitlogs are not draining --- Key: CASSANDRA-2874 URL: https://issues.apache.org/jira/browse/CASSANDRA-2874 Project: Cassandra Issue Type: Bug Components: Tools Affects Versions: 0.8.0 Environment: nodetool Reporter: Scott Dworkis Priority: Minor Attachments: CommitLog-1308192929288.log.header i have commitlogs on every node in the ring that will not drain after invoking a drain with nodetool. i'll attach one of the log headers at the request of Aaron Morton. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2889) Avoids having replicate on write tasks stacking up at CL.ONE
[ https://issues.apache.org/jira/browse/CASSANDRA-2889?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083261#comment-13083261 ] Sylvain Lebresne commented on CASSANDRA-2889: - bq. Is this the same as CASSANDRA-2892? No, CASSANDRA-2892 was really just saying if we have nothing to replicate to, let's not push a replication task that will do nothing anyway. It was really just a super easy optimization for the RF=1 case. This one is because at CL.ONE, we ack the client as soon as we have written the local mutation. But the replication involves a read. So if you write very quickly at CL.ONE, you're read to replicate task may stack up because you're not able to do them fast enough. But maybe the best solution here would be to make CL.ONE wait for the read to have happened to ack the client. The current make for a better latency at CL.ONE, but this is kind of a lie, because the hardest part of the work (the read) till happens in the background, and it is thus easy to flood the node. Avoids having replicate on write tasks stacking up at CL.ONE Key: CASSANDRA-2889 URL: https://issues.apache.org/jira/browse/CASSANDRA-2889 Project: Cassandra Issue Type: Improvement Components: Core Affects Versions: 0.8.0 Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Labels: counters The counter design involves a read on the first replica during a write. At CL.ONE, this read is not involved in the latency of the operation (the write is acknowledged before). This means it is fairly easy to insert too quickly at CL.ONE and have the replicate on write tasks falling behind. The goal of this ticket is to protect against that. An option could be to bound the replicate on write task queue so that write start to block once we have too much of those in the queue. Another option could be to drop the oldest tasks when they are too old, but it's probably a more unsafe option. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-2806) Expose gossip/FD info to JMX
[ https://issues.apache.org/jira/browse/CASSANDRA-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-2806: - Assignee: Patricio Echague (was: Brandon Williams) Expose gossip/FD info to JMX Key: CASSANDRA-2806 URL: https://issues.apache.org/jira/browse/CASSANDRA-2806 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Priority: Minor Fix For: 0.8.5 -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (CASSANDRA-2961) Expire dead gossip states based on time
[ https://issues.apache.org/jira/browse/CASSANDRA-2961?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-2961: - Assignee: Patricio Echague (was: Brandon Williams) Expire dead gossip states based on time --- Key: CASSANDRA-2961 URL: https://issues.apache.org/jira/browse/CASSANDRA-2961 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Currently dead states are held until aVeryLongTime, 3 days. The problem is that if a node reboots within this period, it begins a new 3 days and will repopulate the ring with the dead state. While mostly harmless, perpetuating the state forever is at least wasting a small amount of bandwidth. Instead, we can expire states based on a ttl, which will require that the cluster be loosely time synced; within the quarantine period of 60s. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156703 - in /cassandra/site: publish/download/index.html publish/index.html src/settings.py
Author: slebresne Date: Thu Aug 11 17:50:28 2011 New Revision: 1156703 URL: http://svn.apache.org/viewvc?rev=1156703view=rev Log: Update web site for 0.8.4 Modified: cassandra/site/publish/download/index.html cassandra/site/publish/index.html cassandra/site/src/settings.py Modified: cassandra/site/publish/download/index.html URL: http://svn.apache.org/viewvc/cassandra/site/publish/download/index.html?rev=1156703r1=1156702r2=1156703view=diff == --- cassandra/site/publish/download/index.html (original) +++ cassandra/site/publish/download/index.html Thu Aug 11 17:50:28 2011 @@ -73,31 +73,31 @@ p - The latest stable release of Apache Cassandra is 0.8.3 - (released on 2011-08-08). iIf you're just + The latest stable release of Apache Cassandra is 0.8.4 + (released on 2011-08-11). iIf you're just starting out, download this one./i /p ul li a class=filename - href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz; + href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz; onclick=javascript: pageTracker._trackPageview('/clicks/binary_download'); - apache-cassandra-0.8.3-bin.tar.gz + apache-cassandra-0.8.4-bin.tar.gz /a -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz.asc;PGP/a] -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz.md5;MD5/a] -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz.sha;SHA1/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz.asc;PGP/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz.md5;MD5/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz.sha;SHA1/a] /li li a class=filename - href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.3/apache-cassandra-0.8.3-src.tar.gz; + href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.4/apache-cassandra-0.8.4-src.tar.gz; onclick=javascript: pageTracker._trackPageview('/clicks/source_download'); - apache-cassandra-0.8.3-src.tar.gz + apache-cassandra-0.8.4-src.tar.gz /a -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-src.tar.gz.asc;PGP/a] -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-src.tar.gz.md5;MD5/a] -[a href=http://www.apache.org/dist/cassandra/0.8.3/apache-cassandra-0.8.3-src.tar.gz.sha;SHA1/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-src.tar.gz.asc;PGP/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-src.tar.gz.md5;MD5/a] +[a href=http://www.apache.org/dist/cassandra/0.8.4/apache-cassandra-0.8.4-src.tar.gz.sha;SHA1/a] /li /ul @@ -162,15 +162,15 @@ New users to Cassandra should be sure to h2Download/h2 div class=inner rc p -The latest release is b0.8.3/b -span class=relnotes(a href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.3/CHANGES.txt;Changes/a)/span +The latest release is b0.8.4/b +span class=relnotes(a href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.4/CHANGES.txt;Changes/a)/span /p p a class=filename - href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz; + href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz; onclick=javascript: pageTracker._trackPageview('/clicks/binary_download'); - apache-cassandra-0.8.3-bin.tar.gz + apache-cassandra-0.8.4-bin.tar.gz /a /p Modified: cassandra/site/publish/index.html URL: http://svn.apache.org/viewvc/cassandra/site/publish/index.html?rev=1156703r1=1156702r2=1156703view=diff == --- cassandra/site/publish/index.html (original) +++ cassandra/site/publish/index.html Thu Aug 11 17:50:28 2011 @@ -82,15 +82,15 @@ h2Download/h2 div class=inner rc p -The latest release is b0.8.3/b -span class=relnotes(a href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.3/CHANGES.txt;Changes/a)/span +The latest release is b0.8.4/b +span class=relnotes(a href=https://svn.apache.org/repos/asf/cassandra/tags/cassandra-0.8.4/CHANGES.txt;Changes/a)/span /p p a class=filename - href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.3/apache-cassandra-0.8.3-bin.tar.gz; + href=http://www.apache.org/dyn/closer.cgi?path=/cassandra/0.8.4/apache-cassandra-0.8.4-bin.tar.gz; onclick=javascript:
[jira] [Commented] (CASSANDRA-2961) Expire dead gossip states based on time
[ https://issues.apache.org/jira/browse/CASSANDRA-2961?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083281#comment-13083281 ] Brandon Williams commented on CASSANDRA-2961: - It looks like as a benefit of our ghetto string concatenation/delimiting in VersionedValue, we can just append timestamps to states that need to expire, then respect those in the gossiper (if present) instead of aVLT, but we still need to use aVLT if not. This way, everything will stay backward-compatible, since older nodes will just get extra 'pieces' in SS notifications and not use them. We probably only need to do this for the removed and left states, since the fat client removal logic is already solid and a timestamp won't really help there anyway. Expire dead gossip states based on time --- Key: CASSANDRA-2961 URL: https://issues.apache.org/jira/browse/CASSANDRA-2961 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Currently dead states are held until aVeryLongTime, 3 days. The problem is that if a node reboots within this period, it begins a new 3 days and will repopulate the ring with the dead state. While mostly harmless, perpetuating the state forever is at least wasting a small amount of bandwidth. Instead, we can expire states based on a ttl, which will require that the cluster be loosely time synced; within the quarantine period of 60s. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable
[ https://issues.apache.org/jira/browse/CASSANDRA-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083291#comment-13083291 ] Pavel Yaskevich commented on CASSANDRA-3001: bq. Talking of the chunk length, its default value is 65535, which is 64k-1, not 64k. I think this is problem because of the following line in CRAR.decompressChunk: if you take a look at CSW there is a constant CHUNK_LENGTH which is 64k (65536), where did you find 65535? Make the compression algorithm and chunk length configurable Key: CASSANDRA-3001 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Priority: Minor Labels: compression Fix For: 1.0 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 0002-Add-deflate-compressor.patch -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3001) Make the compression algorithm and chunk length configurable
[ https://issues.apache.org/jira/browse/CASSANDRA-3001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083304#comment-13083304 ] Sylvain Lebresne commented on CASSANDRA-3001: - Yes, I don't why I said that. My brain has fucked up. Nervermind. Make the compression algorithm and chunk length configurable Key: CASSANDRA-3001 URL: https://issues.apache.org/jira/browse/CASSANDRA-3001 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Sylvain Lebresne Assignee: Sylvain Lebresne Priority: Minor Labels: compression Fix For: 1.0 Attachments: 0001-Pluggable-algorithm-and-chunk-length.patch, 0002-Add-deflate-compressor.patch -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled
[ https://issues.apache.org/jira/browse/CASSANDRA-2034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patricio Echague updated CASSANDRA-2034: Attachment: CASSANDRA-2034-trunk-v11.patch v11 replaces v10. - add more volatile to variable that can be changed through JMX - Add CallbackInfo and CallbackInfoWithMassage and store the message in the same ExpiringMap. - Clean up some code style violations - Simplify a bit the logic in SP.sendToHintedEndPoints. Make Read Repair unnecessary when Hinted Handoff is enabled --- Key: CASSANDRA-2034 URL: https://issues.apache.org/jira/browse/CASSANDRA-2034 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Patricio Echague Fix For: 1.0 Attachments: 2034-formatting.txt, CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v2.patch, CASSANDRA-2034-trunk-v3.patch, CASSANDRA-2034-trunk-v4.patch, CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch, CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, CASSANDRA-2034-trunk-v9.patch, CASSANDRA-2034-trunk.patch Original Estimate: 8h Remaining Estimate: 8h Currently, HH is purely an optimization -- if a machine goes down, enabling HH means RR/AES will have less work to do, but you can't disable RR entirely in most situations since HH doesn't kick in until the FailureDetector does. Let's add a scheduled task to the mutate path, such that we return to the client normally after ConsistencyLevel is achieved, but after RpcTimeout we check the responseHandler write acks and write local hints for any missing targets. This would making disabling RR when HH is enabled a much more reasonable option, which has a huge impact on read throughput. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156749 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/net/MessagingService.java
Author: jbellis Date: Thu Aug 11 19:16:21 2011 New Revision: 1156749 URL: http://svn.apache.org/viewvc?rev=1156749view=rev Log: fix NPE when encryption_options is unspecified patch by jbellis; reviewed by brandonwilliams for CASSANDRA-3007 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156749r1=1156748r2=1156749view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 19:16:21 2011 @@ -1,3 +1,7 @@ +0.8.5 + * fix NPE when encryption_options is unspecified (CASSANDRA-3007) + + 0.8.4 * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972) * use JAVA env var in cassandra-env.sh (CASSANDRA-2785, 2992) Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java?rev=1156749r1=1156748r2=1156749view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java Thu Aug 11 19:16:21 2011 @@ -417,7 +417,8 @@ public final class MessagingService impl public void stream(StreamHeader header, InetAddress to) { /* Streaming asynchronously on streamExector_ threads. */ -if (DatabaseDescriptor.getEncryptionOptions().internode_encryption == EncryptionOptions.InternodeEncryption.all) +EncryptionOptions encryption = DatabaseDescriptor.getEncryptionOptions(); +if (encryption != null encryption.internode_encryption == EncryptionOptions.InternodeEncryption.all) streamExecutor_.execute(new SSLFileStreamTask(header, to)); else streamExecutor_.execute(new FileStreamTask(header, to));
[jira] [Updated] (CASSANDRA-2325) invalidateKeyCache / invalidateRowCache should remove saved cache files from disk
[ https://issues.apache.org/jira/browse/CASSANDRA-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Edward Capriolo updated CASSANDRA-2325: --- Attachment: cassandra-2325-3.patch.txt 3rd revision of a 4 line patch ::embarrassed::. Thinking about this more logging the message does not make sense. It could happen that the file could be removed by the retention policy just as we are trying to remove it. That is not a condition we need to generate a log message on. invalidateKeyCache / invalidateRowCache should remove saved cache files from disk - Key: CASSANDRA-2325 URL: https://issues.apache.org/jira/browse/CASSANDRA-2325 Project: Cassandra Issue Type: Improvement Affects Versions: 0.6 Reporter: Matthew F. Dennis Assignee: Edward Capriolo Priority: Minor Fix For: 0.8.5 Attachments: cassandra-2325-1.patch.txt, cassandra-2325-3.patch.txt, cassandra-2325.patch.2.txt the invalidate[Key|Row]Cache calls don't remove the saved caches from disk. It seems logical that if you are clearing the caches you don't expect them to be reinstantiated with the old values the next time C* starts. This is not a huge issue since next time the caches are saved the old values will be removed. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2742) Add CQL to the python package index
[ https://issues.apache.org/jira/browse/CASSANDRA-2742?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083410#comment-13083410 ] Eric Evans commented on CASSANDRA-2742: --- Is 1.0.4 a release version? I don't see it published at http://www.apache.org/dist/cassandra/drivers/py/ Add CQL to the python package index --- Key: CASSANDRA-2742 URL: https://issues.apache.org/jira/browse/CASSANDRA-2742 Project: Cassandra Issue Type: Improvement Components: API Affects Versions: 0.8.0 Reporter: Jonathan Ellis Assignee: paul cannon Priority: Minor Fix For: 0.8.5 Attachments: add_maintainer_info.patch.txt -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156753 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/thrift/CassandraServer.java src/java/org/apache/cassandra/thrift/ThriftValidation.java
Author: jbellis Date: Thu Aug 11 19:19:18 2011 New Revision: 1156753 URL: http://svn.apache.org/viewvc?rev=1156753view=rev Log: include column name in validation failure exceptions patch by jbellis; reviewed by David Allsopp for CASSANDRA-2849 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156753r1=1156752r2=1156753view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 19:19:18 2011 @@ -1,5 +1,6 @@ 0.8.5 * fix NPE when encryption_options is unspecified (CASSANDRA-3007) + * include column name in validation failure exceptions (CASSANDRA-2849) 0.8.4 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java?rev=1156753r1=1156752r2=1156753view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java Thu Aug 11 19:19:18 2011 @@ -439,7 +439,7 @@ public class CassandraServer implements throw new InvalidRequestException(missing mandatory super column name for super CF + column_parent.column_family); } ThriftValidation.validateColumnNames(metadata, column_parent, Arrays.asList(column.name)); -ThriftValidation.validateColumnData(metadata, column); +ThriftValidation.validateColumnData(metadata, column, column_parent.super_column != null); RowMutation rm = new RowMutation(state().getKeyspace(), key); try Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java?rev=1156753r1=1156752r2=1156753view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java Thu Aug 11 19:19:18 2011 @@ -23,6 +23,9 @@ package org.apache.cassandra.thrift; import java.nio.ByteBuffer; import java.util.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import org.apache.cassandra.config.*; import org.apache.cassandra.db.*; import org.apache.cassandra.db.marshal.AbstractType; @@ -51,6 +54,8 @@ import org.apache.cassandra.utils.FBUtil */ public class ThriftValidation { +private static Logger logger = LoggerFactory.getLogger(ThriftValidation.class); + public static void validateKey(CFMetaData metadata, ByteBuffer key) throws InvalidRequestException { if (key == null || key.remaining() == 0) @@ -285,7 +290,7 @@ public class ThriftValidation validateTtl(cosc.column); validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column((ByteBuffer)null).setColumn(cosc.column.name)); -validateColumnData(metadata, cosc.column); +validateColumnData(metadata, cosc.column, false); } if (cosc.super_column != null) @@ -296,7 +301,7 @@ public class ThriftValidation for (Column c : cosc.super_column.columns) { validateColumnPath(metadata, new ColumnPath(metadata.cfName).setSuper_column(cosc.super_column.name).setColumn(c.name)); -validateColumnData(metadata, c); +validateColumnData(metadata, c, true); } } @@ -396,9 +401,9 @@ public class ThriftValidation } /** - * Validates the data part of the column (everything in the Column object but the name) + * Validates the data part of the column (everything in the Column object but the name, which is assumed to be valid) */ -public static void validateColumnData(CFMetaData metadata, Column column) throws InvalidRequestException +public static void validateColumnData(CFMetaData metadata, Column column, boolean isSubColumn) throws InvalidRequestException { validateTtl(column); if (!column.isSetValue()) @@ -413,15 +418,29 @@ public class ThriftValidation } catch (MarshalException me) { -throw new
svn commit: r1156757 - in /cassandra/trunk: ./ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/commitlog/ test/unit/org/apache/cassandra/db/
Author: jbellis Date: Thu Aug 11 19:29:34 2011 New Revision: 1156757 URL: http://svn.apache.org/viewvc?rev=1156757view=rev Log: make sure pre-truncate CL segments are discarded Modified: cassandra/trunk/CHANGES.txt cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/trunk/src/java/org/apache/cassandra/db/SystemTable.java cassandra/trunk/src/java/org/apache/cassandra/db/commitlog/CommitLog.java cassandra/trunk/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1156757r1=1156756r2=1156757view=diff == --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Aug 11 19:29:34 2011 @@ -232,7 +232,7 @@ * Disable compaction throttling during bootstrap (CASSANDRA-2612) * fix CQL treatment of and operators in range slices (CASSANDRA-2592) * fix potential double-application of counter updates on commitlog replay - (CASSANDRA-2419) + by moving replay position from header to sstable metadata (CASSANDRA-2419) * JDBC CQL driver exposes getColumn for access to timestamp * JDBC ResultSetMetadata properties added to AbstractType * r/m clustertool (CASSANDRA-2607) Modified: cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1156757r1=1156756r2=1156757view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Aug 11 19:29:34 2011 @@ -581,6 +581,7 @@ public class ColumnFamilyStore implement assert getMemtableThreadSafe() == oldMemtable; oldMemtable.freeze(); final ReplayPosition ctx = writeCommitLog ? CommitLog.instance.getContext() : ReplayPosition.NONE; +logger.debug(flush position is {}, ctx); // submit the memtable for any indexed sub-cfses, and our own. ListColumnFamilyStore icc = new ArrayListColumnFamilyStore(); @@ -1532,6 +1533,37 @@ public class ColumnFamilyStore implement } /** + * Waits for flushes started BEFORE THIS METHOD IS CALLED to finish. + * Does NOT guarantee that no flush is active when it returns. + */ +private void waitForActiveFlushes() +{ +Future? future; +Table.switchLock.writeLock().lock(); +try +{ +future = postFlushExecutor.submit(new Runnable() { public void run() { } }); +} +finally +{ +Table.switchLock.writeLock().unlock(); +} + +try +{ +future.get(); +} +catch (InterruptedException e) +{ +throw new AssertionError(e); +} +catch (ExecutionException e) +{ +throw new AssertionError(e); +} +} + +/** * Truncate practically deletes the entire column family's data * @return a Future to the delete operation. Call the future's get() to make * sure the column family has been deleted @@ -1544,14 +1576,33 @@ public class ColumnFamilyStore implement // We accomplish this by first flushing manually, then snapshotting, and // recording the timestamp IN BETWEEN those actions. Any sstables created // with this timestamp or greater time, will not be marked for delete. -try -{ -forceBlockingFlush(); -} -catch (Exception e) -{ -throw new RuntimeException(e); -} +// +// Bonus complication: since we store replay position in sstable metadata, +// truncating those sstables means we will replay any CL segments from the +// beginning if we restart before they are discarded for normal reasons +// post-truncate. So we need to (a) force a new segment so the currently +// active one can be discarded, and (b) flush *all* CFs so that unflushed +// data in others don't keep any pre-truncate CL segments alive. +// +// Bonus bonus: simply forceFlush of all the CF is not enough, because if +// for a given column family the memtable is clean, forceFlush will return +// immediately, even though there could be a memtable being flush at the same +// time. So to guarantee that all segments can be cleaned out, we need +// waitForActiveFlushes after the new segment has been created. +CommitLog.instance.forceNewSegment(); +waitForActiveFlushes(); +ListFuture? futures = new ArrayListFuture?(); +ReplayPosition position = CommitLog.instance.getContext(); +
svn commit: r1156758 - in /cassandra/trunk: ./ src/java/org/apache/cassandra/service/ src/java/org/apache/cassandra/utils/
Author: jbellis Date: Thu Aug 11 19:29:38 2011 New Revision: 1156758 URL: http://svn.apache.org/viewvc?rev=1156758view=rev Log: provide monotonic read consistency patch by jbellis; reviewed by slebresne for CASSANDRA-2494 Modified: cassandra/trunk/CHANGES.txt cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java cassandra/trunk/src/java/org/apache/cassandra/service/RepairCallback.java cassandra/trunk/src/java/org/apache/cassandra/service/RowRepairResolver.java cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1156758r1=1156757r2=1156758view=diff == --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Aug 11 19:29:38 2011 @@ -30,6 +30,9 @@ * make column family backed column map pluggable and introduce unsynchronized ArrayList backed one to speedup reads (CASSANDRA-2843) * refactoring of the secondary index api (CASSANDRA-2982) + * make CL ONE reads wait for digest reconciliation before returning + (CASSANDRA-2494) + 0.8.4 * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972) Modified: cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java?rev=1156758r1=1156757r2=1156758view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java Thu Aug 11 19:29:38 2011 @@ -22,15 +22,18 @@ import java.io.IOException; import java.net.InetAddress; import java.util.*; import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; import com.google.common.collect.AbstractIterator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamily; import org.apache.cassandra.db.DecoratedKey; import org.apache.cassandra.db.RangeSliceReply; import org.apache.cassandra.db.Row; +import org.apache.cassandra.net.IAsyncResult; import org.apache.cassandra.net.Message; import org.apache.cassandra.utils.Pair; import org.apache.cassandra.utils.CloseableIterator; @@ -43,9 +46,19 @@ import org.apache.cassandra.utils.MergeI public class RangeSliceResponseResolver implements IResponseResolverIterableRow { private static final Logger logger_ = LoggerFactory.getLogger(RangeSliceResponseResolver.class); + +private static final ComparatorPairRow,InetAddress pairComparator = new ComparatorPairRow, InetAddress() +{ +public int compare(PairRow, InetAddress o1, PairRow, InetAddress o2) +{ +return o1.left.key.compareTo(o2.left.key); +} +}; + private final String table; private final ListInetAddress sources; protected final CollectionMessage responses = new LinkedBlockingQueueMessage();; +public final ListIAsyncResult repairResults = new ArrayListIAsyncResult(); public RangeSliceResponseResolver(String table, ListInetAddress sources) { @@ -73,50 +86,7 @@ public class RangeSliceResponseResolver iters.add(new RowIterator(reply.rows.iterator(), response.getFrom())); } // for each row, compute the combination of all different versions seen, and repair incomplete versions -MergeIteratorPairRow,InetAddress, Row iter = MergeIterator.get(iters, new ComparatorPairRow,InetAddress() -{ -public int compare(PairRow,InetAddress o1, PairRow,InetAddress o2) -{ -return o1.left.key.compareTo(o2.left.key); -} -}, new MergeIterator.ReducerPairRow,InetAddress, Row() -{ -ListColumnFamily versions = new ArrayListColumnFamily(sources.size()); -ListInetAddress versionSources = new ArrayListInetAddress(sources.size()); -DecoratedKey key; - -public void reduce(PairRow,InetAddress current) -{ -key = current.left.key; -versions.add(current.left.cf); -versionSources.add(current.right); -} - -protected Row getReduced() -{ -ColumnFamily resolved = versions.size() 1 - ? RowRepairResolver.resolveSuperset(versions) - : versions.get(0); -if (versions.size() sources.size()) -{ -// add placeholder rows for
[jira] [Commented] (CASSANDRA-2967) Only bind JMX to the same IP address that is being used in Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-2967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083430#comment-13083430 ] Jackson Chung commented on CASSANDRA-2967: -- i wouldn't say it is lhf, this is quite important in terms of network security. not adding value here, just a ref site similar to the above blog (its just from official Sun's page). http://download.oracle.com/javase/6/docs/technotes/guides/management/agent.html see Monitoring Applications through a Firewall section if tl;dr Only bind JMX to the same IP address that is being used in Cassandra Key: CASSANDRA-2967 URL: https://issues.apache.org/jira/browse/CASSANDRA-2967 Project: Cassandra Issue Type: Bug Components: Tools Affects Versions: 0.8.2 Reporter: Joaquin Casares Priority: Minor Labels: lhf The setup is 5 nodes in each data center are all running on one physical test machine and even though the repair was run against the correct IP the wrong JMX port was used. As a result, instead of repairing all 5 nodes I was repairing the same node 5 times. It would be nice if Cassandra's JMX would bind to only the IP address on which its thrift/RPC services are listening on instead of binding to all IP's on the box. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156772 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Author: jbellis Date: Thu Aug 11 19:43:13 2011 New Revision: 1156772 URL: http://svn.apache.org/viewvc?rev=1156772view=rev Log: cache invalidate removes saved cache files patch by Ed Capriolo; reviewed by jbellis for CASSANDRA-2325 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156772r1=1156771r2=1156772view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 19:43:13 2011 @@ -3,6 +3,7 @@ * include column name in validation failure exceptions (CASSANDRA-2849) * make sure truncate clears out the commitlog so replay won't re- populate with truncated data (CASSANDRA-2950) + * cache invalidate removes saved cache files (CASSANDRA-2325) 0.8.4 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1156772r1=1156771r2=1156772view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Aug 11 19:43:13 2011 @@ -1767,11 +1767,15 @@ public class ColumnFamilyStore implement public void invalidateRowCache() { rowCache.clear(); +if (rowCache.getCachePath().exists()) +rowCache.getCachePath().delete(); } public void invalidateKeyCache() { keyCache.clear(); +if (keyCache.getCachePath().exists()) +keyCache.getCachePath().delete(); } public int getRowCacheCapacity()
svn commit: r1156775 - in /cassandra/trunk: ./ contrib/ doc/cql/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/net/ src/java/or
Author: jbellis Date: Thu Aug 11 19:49:24 2011 New Revision: 1156775 URL: http://svn.apache.org/viewvc?rev=1156775view=rev Log: merge from 0.8 Modified: cassandra/trunk/ (props changed) cassandra/trunk/CHANGES.txt cassandra/trunk/contrib/ (props changed) cassandra/trunk/doc/cql/CQL.textile cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java cassandra/trunk/src/java/org/apache/cassandra/net/MessagingService.java cassandra/trunk/src/java/org/apache/cassandra/thrift/CassandraServer.java cassandra/trunk/src/java/org/apache/cassandra/thrift/ThriftValidation.java Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 19:49:24 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1151306 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1156264 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1156772 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1156775r1=1156774r2=1156775view=diff == --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Aug 11 19:49:24 2011 @@ -34,15 +34,23 @@ (CASSANDRA-2494) +0.8.5 + * fix NPE when encryption_options is unspecified (CASSANDRA-3007) + * include column name in validation failure exceptions (CASSANDRA-2849) + * make sure truncate clears out the commitlog so replay won't re- + populate with truncated data (CASSANDRA-2950) + * cache invalidate removes saved cache files (CASSANDRA-2325) + + 0.8.4 * include files-to-be-streamed in StreamInSession.getSources (CASSANDRA-2972) * use JAVA env var in cassandra-env.sh (CASSANDRA-2785, 2992) * avoid doing read for no-op replicate-on-write at CL=1 (CASSANDRA-2892) * refuse counter write for CL.ANY (CASSANDRA-2990) * switch back to only logging recent dropped messages (CASSANDRA-3004) - * fix issues with parameters being escaped incorrectly in Python CQL (CASSANDRA-2993) * always deserialize RowMutation for counters (CASSANDRA-3006) * ignore saved replication_factor strategy_option for NTS (CASSANDRA-3011) + * make sure pre-truncate CL segments are discarded (CASSANDRA-2950) 0.8.3 @@ -64,8 +72,8 @@ (CASSANDRA-2958) * improved POSIX compatibility of start scripts (CASsANDRA-2965) * add counter support to Hadoop InputFormat (CASSANDRA-2981) - * fix bug where dirty commit logs were removed (and avoid keeping segments - with no post-flush activity permanently dirty) (CASSANDRA-2829) + * fix bug where dirty commitlog segments were removed (and avoid keeping + segments with no post-flush activity permanently dirty) (CASSANDRA-2829) * fix throwing exception with batch mutation of counter super columns (CASSANDRA-2949) * ignore system tables during repair (CASSANDRA-2979) @@ -807,7 +815,7 @@ transmitting separately (CASSANDRA-1465) * apply reversed flag during collation from different data sources (CASSANDRA-1450) - * make failure to remove comitlog segment non-fatal (CASSANDRA-1348) + * make failure to remove commitlog segment non-fatal (CASSANDRA-1348) * correct ordering of drain operations so CL.recover is no longer necessary (CASSANDRA-1408) * removed keyspace from describe_splits method (CASSANDRA-1425) Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 19:49:24 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 /cassandra/branches/cassandra-0.7/contrib:1026516-1151306 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1156264 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1156772 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369
[jira] [Commented] (CASSANDRA-2967) Only bind JMX to the same IP address that is being used in Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-2967?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083438#comment-13083438 ] Jonathan Ellis commented on CASSANDRA-2967: --- (lhf just means it's relatively straightforward, not that it's not valuable.) Only bind JMX to the same IP address that is being used in Cassandra Key: CASSANDRA-2967 URL: https://issues.apache.org/jira/browse/CASSANDRA-2967 Project: Cassandra Issue Type: Bug Components: Tools Affects Versions: 0.8.2 Reporter: Joaquin Casares Priority: Minor Labels: lhf The setup is 5 nodes in each data center are all running on one physical test machine and even though the repair was run against the correct IP the wrong JMX port was used. As a result, instead of repairing all 5 nodes I was repairing the same node 5 times. It would be nice if Cassandra's JMX would bind to only the IP address on which its thrift/RPC services are listening on instead of binding to all IP's on the box. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
buildbot failure in ASF Buildbot on cassandra-trunk
The Buildbot has detected a new failure on builder cassandra-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/cassandra-trunk/builds/1511 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: isis_ubuntu Build Reason: scheduler Build Source Stamp: [branch cassandra/trunk] 1156775 Blamelist: jbellis BUILD FAILED: failed compile sincerely, -The Buildbot
svn commit: r1156791 - in /cassandra/branches/cassandra-0.8: CHANGES.txt src/java/org/apache/cassandra/db/ColumnFamilyStore.java
Author: jbellis Date: Thu Aug 11 20:05:38 2011 New Revision: 1156791 URL: http://svn.apache.org/viewvc?rev=1156791view=rev Log: revert r1156772 Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1156791r1=1156790r2=1156791view=diff == --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Aug 11 20:05:38 2011 @@ -3,7 +3,6 @@ * include column name in validation failure exceptions (CASSANDRA-2849) * make sure truncate clears out the commitlog so replay won't re- populate with truncated data (CASSANDRA-2950) - * cache invalidate removes saved cache files (CASSANDRA-2325) 0.8.4 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java?rev=1156791r1=1156790r2=1156791view=diff == --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Thu Aug 11 20:05:38 2011 @@ -1767,15 +1767,11 @@ public class ColumnFamilyStore implement public void invalidateRowCache() { rowCache.clear(); -if (rowCache.getCachePath().exists()) -rowCache.getCachePath().delete(); } public void invalidateKeyCache() { keyCache.clear(); -if (keyCache.getCachePath().exists()) -keyCache.getCachePath().delete(); } public int getRowCacheCapacity()
svn commit: r1156792 - in /cassandra/trunk: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/
Author: jbellis Date: Thu Aug 11 20:05:59 2011 New Revision: 1156792 URL: http://svn.apache.org/viewvc?rev=1156792view=rev Log: merge from 0.8 Modified: cassandra/trunk/ (props changed) cassandra/trunk/CHANGES.txt cassandra/trunk/contrib/ (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/trunk/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Propchange: cassandra/trunk/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 20:05:59 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7:1026516-1151306 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1156772 +/cassandra/branches/cassandra-0.8:1090934-1125013,1125019-1156791 /cassandra/branches/cassandra-0.8.0:1125021-1130369 /cassandra/branches/cassandra-0.8.1:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1156792r1=1156791r2=1156792view=diff == --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Aug 11 20:05:59 2011 @@ -39,7 +39,6 @@ * include column name in validation failure exceptions (CASSANDRA-2849) * make sure truncate clears out the commitlog so replay won't re- populate with truncated data (CASSANDRA-2950) - * cache invalidate removes saved cache files (CASSANDRA-2325) 0.8.4 Propchange: cassandra/trunk/contrib/ -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 20:05:59 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 /cassandra/branches/cassandra-0.7/contrib:1026516-1151306 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1156772 +/cassandra/branches/cassandra-0.8/contrib:1090934-1125013,1125019-1156791 /cassandra/branches/cassandra-0.8.0/contrib:1125021-1130369 /cassandra/branches/cassandra-0.8.1/contrib:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 20:05:59 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1151306 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1156772 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090934-1125013,1125019-1156791 /cassandra/branches/cassandra-0.8.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1125021-1130369 /cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1101014-1125018 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689 Propchange: cassandra/trunk/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java -- --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Aug 11 20:05:59 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1131291 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1151306 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654
[jira] [Reopened] (CASSANDRA-2325) invalidateKeyCache / invalidateRowCache should remove saved cache files from disk
[ https://issues.apache.org/jira/browse/CASSANDRA-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reopened CASSANDRA-2325: --- reopening because it breaks KeyCacheTest testing is about the only use of invalidate() i can think of anyway, since we keep the cache consistent w/ the data. should we notaproblem this? invalidateKeyCache / invalidateRowCache should remove saved cache files from disk - Key: CASSANDRA-2325 URL: https://issues.apache.org/jira/browse/CASSANDRA-2325 Project: Cassandra Issue Type: Improvement Affects Versions: 0.6 Reporter: Matthew F. Dennis Assignee: Edward Capriolo Priority: Minor Fix For: 0.8.5 Attachments: cassandra-2325-1.patch.txt, cassandra-2325-3.patch.txt, cassandra-2325.patch.2.txt the invalidate[Key|Row]Cache calls don't remove the saved caches from disk. It seems logical that if you are clearing the caches you don't expect them to be reinstantiated with the old values the next time C* starts. This is not a huge issue since next time the caches are saved the old values will be removed. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2845) Cassandra uses 100% system CPU on Ubuntu Natty (11.04)
[ https://issues.apache.org/jira/browse/CASSANDRA-2845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083455#comment-13083455 ] Jackson Chung commented on CASSANDRA-2845: -- fwiw, i was able to avoid this (hang) if using just java (Sun's) instead of jsvc. (jna enabled on both, i do have to symlink it manually when start manually if install from deb package) Once i switch to jsvc, hell breaks kernel was on the older one on ec2: Linux domU-12-31-39-00-2C-42 2.6.38-8-virtual #42-Ubuntu SMP Mon Apr 11 04:06:34 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux Also able to had the same hang on a 2.6.35 on a rackspace couple days ago (killed the vm already..) dmesg shows timeout/OOM, crazy stuff :) on my own local,with separate install kernel Distributor ID: Ubuntu Description:Ubuntu 10.10 Release:10.10 Codename: maverick Linux faranth 2.6.39-02063903-generic #201107091121 SMP Sat Jul 9 11:25:36 UTC 2011 x86_64 GNU/Linux I don't have the hang problem (using jsvc/jna/package) Cassandra uses 100% system CPU on Ubuntu Natty (11.04) -- Key: CASSANDRA-2845 URL: https://issues.apache.org/jira/browse/CASSANDRA-2845 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.0 Environment: Default install of Ubuntu 11.04 Reporter: Steve Corona Assignee: paul cannon Priority: Critical Fix For: 0.8.2 Step 1. Boot up a brand new, default Ubuntu 11.04 Server install Step 2. Install Cassandra from Apache APT Respository (deb http://www.apache.org/dist/cassandra/debian 08x main) Step 3. apt-get install cassandra, as soon as it cassandra starts it will freeze the machine What's happening is that as soon as cassandra starts up it immediately sucks up 100% of CPU and starves the machine. This effectively bricks the box until you boot into single user mode and disable the cassandra init.d script. Under htop, the CPU usage shows up as system cpu, not user. The machine I'm testing this on is a Quad-Core Sandy Bridge w/ 16GB of Memory, so it's not a system resource issue. I've also tested this on completely different hardware (Dual 64-Bit Xeons AMD X4) and it has the same effect. Ubuntu 10.10 does not exhibit the same issue. I have only tested 0.8 and 0.8.1. root@cassandra01:/# java -version java version 1.6.0_22 OpenJDK Runtime Environment (IcedTea6 1.10.2) (6b22-1.10.2-0ubuntu1~11.04.1) OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode) root@cassandra:/# uname -a Linux cassandra01 2.6.38-8-generic #42-Ubuntu SMP Mon Apr 11 03:31:24 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux /proc/cpu Intel(R) Xeon(R) CPU E31270 @ 3.40GHz /proc/meminfo MemTotal: 16459776 kB MemFree:14190708 kB -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
buildbot success in ASF Buildbot on cassandra-trunk
The Buildbot has detected a restored build on builder cassandra-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/cassandra-trunk/builds/1512 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: isis_ubuntu Build Reason: scheduler Build Source Stamp: [branch cassandra/trunk] 1156792 Blamelist: jbellis Build succeeded! sincerely, -The Buildbot
[jira] [Commented] (CASSANDRA-2494) Quorum reads are not monotonically consistent
[ https://issues.apache.org/jira/browse/CASSANDRA-2494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083465#comment-13083465 ] Hudson commented on CASSANDRA-2494: --- Integrated in Cassandra #1017 (See [https://builds.apache.org/job/Cassandra/1017/]) provide monotonic read consistency patch by jbellis; reviewed by slebresne for CASSANDRA-2494 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156758 Files : * /cassandra/trunk/CHANGES.txt * /cassandra/trunk/src/java/org/apache/cassandra/service/StorageProxy.java * /cassandra/trunk/src/java/org/apache/cassandra/service/RepairCallback.java * /cassandra/trunk/src/java/org/apache/cassandra/service/RowRepairResolver.java * /cassandra/trunk/src/java/org/apache/cassandra/utils/FBUtilities.java * /cassandra/trunk/src/java/org/apache/cassandra/service/RangeSliceResponseResolver.java Quorum reads are not monotonically consistent - Key: CASSANDRA-2494 URL: https://issues.apache.org/jira/browse/CASSANDRA-2494 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sean Bridges Assignee: Jonathan Ellis Priority: Minor Fix For: 1.0 Attachments: 2494-v2.txt, 2494.txt As discussed in this thread, http://www.mail-archive.com/user@cassandra.apache.org/msg12421.html Quorum reads should be consistent. Assume we have a cluster of 3 nodes (X,Y,Z) and a replication factor of 3. If a write of N is committed to X, but not Y and Z, then a read from X should not return N unless the read is committed to at least two nodes. To ensure this, a read from X should wait for an ack of the read repair write from either Y or Z before returning. Are there system tests for cassandra? If so, there should be a test similar to the original post in the email thread. One thread should write 1,2,3... at consistency level ONE. Another thread should read at consistency level QUORUM from a random host, and verify that each read is = the last read. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2849) InvalidRequestException when validating column data includes entire column value
[ https://issues.apache.org/jira/browse/CASSANDRA-2849?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083480#comment-13083480 ] Hudson commented on CASSANDRA-2849: --- Integrated in Cassandra-0.8 #272 (See [https://builds.apache.org/job/Cassandra-0.8/272/]) include column name in validation failure exceptions patch by jbellis; reviewed by David Allsopp for CASSANDRA-2849 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156753 Files : * /cassandra/branches/cassandra-0.8/CHANGES.txt * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/ThriftValidation.java * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/thrift/CassandraServer.java InvalidRequestException when validating column data includes entire column value Key: CASSANDRA-2849 URL: https://issues.apache.org/jira/browse/CASSANDRA-2849 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.1 Reporter: David Allsopp Assignee: David Allsopp Priority: Minor Fix For: 0.8.5 Attachments: 2849-v2.txt, cassandra-2849.diff If the column value fails to validate, then ThriftValidation.validateColumnData() calls bytesToHex() on the entire column value and puts this string in the Exception. Since the value may be up to 2GB, this is potentially a lot of extra memory. The value is likely to be logged (and presumably returned to the thrift client over the network?). This could cause a lot of slowdown or an unnecessary OOM crash, and is unlikely to be useful (the client has access to the full value anyway if required for debugging). Also, the reason for the exception (extracted from the MarshalException) is printed _after_ the data, so if there's any truncation in the logging system at any point, the reason will be lost. The reason should be displayed before the column value, and the column value should be truncated in the Exception message. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3007) NullPointerException in MessagingService.java:420
[ https://issues.apache.org/jira/browse/CASSANDRA-3007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083481#comment-13083481 ] Hudson commented on CASSANDRA-3007: --- Integrated in Cassandra-0.8 #272 (See [https://builds.apache.org/job/Cassandra-0.8/272/]) fix NPE when encryption_options is unspecified patch by jbellis; reviewed by brandonwilliams for CASSANDRA-3007 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156749 Files : * /cassandra/branches/cassandra-0.8/CHANGES.txt * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/net/MessagingService.java NullPointerException in MessagingService.java:420 - Key: CASSANDRA-3007 URL: https://issues.apache.org/jira/browse/CASSANDRA-3007 Project: Cassandra Issue Type: Bug Components: Core Affects Versions: 0.8.3 Environment: Linux w0 2.6.35-24-virtual #42-Ubuntu SMP Thu Dec 2 05:15:26 UTC 2010 x86_64 GNU/Linux java version 1.6.0_18 OpenJDK Runtime Environment (IcedTea6 1.8.7) (6b18-1.8.7-2~squeeze1) OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) Reporter: Viliam Holub Assignee: Jonathan Ellis Priority: Minor Labels: nullpointerexception, streaming Fix For: 0.8.5 Attachments: 3007.txt I'm getting large quantity of exceptions during streaming. It is always in MessagingService.java:420. The streaming appears to be blocked. INFO 10:11:14,734 Streaming to /10.235.77.27 ERROR 10:11:14,734 Fatal exception in thread Thread[StreamStage:2,5,main] java.lang.NullPointerException at org.apache.cassandra.net.MessagingService.stream(MessagingService.java:420) at org.apache.cassandra.streaming.StreamOutSession.begin(StreamOutSession.java:176) at org.apache.cassandra.streaming.StreamOut.transferRangesForRequest(StreamOut.java:148) at org.apache.cassandra.streaming.StreamRequestVerbHandler.doVerb(StreamRequestVerbHandler.java:54) at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:59) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:636) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2325) invalidateKeyCache / invalidateRowCache should remove saved cache files from disk
[ https://issues.apache.org/jira/browse/CASSANDRA-2325?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083479#comment-13083479 ] Hudson commented on CASSANDRA-2325: --- Integrated in Cassandra-0.8 #272 (See [https://builds.apache.org/job/Cassandra-0.8/272/]) cache invalidate removes saved cache files patch by Ed Capriolo; reviewed by jbellis for CASSANDRA-2325 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156772 Files : * /cassandra/branches/cassandra-0.8/CHANGES.txt * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java invalidateKeyCache / invalidateRowCache should remove saved cache files from disk - Key: CASSANDRA-2325 URL: https://issues.apache.org/jira/browse/CASSANDRA-2325 Project: Cassandra Issue Type: Improvement Affects Versions: 0.6 Reporter: Matthew F. Dennis Assignee: Edward Capriolo Priority: Minor Fix For: 0.8.5 Attachments: cassandra-2325-1.patch.txt, cassandra-2325-3.patch.txt, cassandra-2325.patch.2.txt the invalidate[Key|Row]Cache calls don't remove the saved caches from disk. It seems logical that if you are clearing the caches you don't expect them to be reinstantiated with the old values the next time C* starts. This is not a huge issue since next time the caches are saved the old values will be removed. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2950) Data from truncated CF reappears after server restart
[ https://issues.apache.org/jira/browse/CASSANDRA-2950?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083482#comment-13083482 ] Hudson commented on CASSANDRA-2950: --- Integrated in Cassandra-0.8 #272 (See [https://builds.apache.org/job/Cassandra-0.8/272/]) make sure truncate clears out the commitlog patch by jbellis; reviewed by slebresne for CASSANDRA-2950 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156763 Files : * /cassandra/branches/cassandra-0.8/CHANGES.txt * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/SystemTable.java * /cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/db/RecoveryManagerTruncateTest.java * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/commitlog/CommitLog.java * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/ColumnFamilyStore.java Data from truncated CF reappears after server restart - Key: CASSANDRA-2950 URL: https://issues.apache.org/jira/browse/CASSANDRA-2950 Project: Cassandra Issue Type: Bug Affects Versions: 0.8.0 Reporter: Cathy Daw Assignee: Jonathan Ellis Fix For: 0.8.5 Attachments: 2950-v2.txt, 2950-v3_0.8.patch, 2950.txt * Configure 3 node cluster * Ensure the java stress tool creates Keyspace1 with RF=3 {code} // Run Stress Tool to generate 10 keys, 1 column stress --operation=INSERT -t 2 --num-keys=50 --columns=20 --consistency-level=QUORUM --average-size-values --replication-factor=3 --create-index=KEYS --nodes=cathy1,cathy2 // Verify 50 keys in CLI use Keyspace1; list Standard1; // TRUNCATE CF in CLI use Keyspace1; truncate counter1; list counter1; // Run stress tool and verify creation of 1 key with 10 columns stress --operation=INSERT -t 2 --num-keys=1 --columns=10 --consistency-level=QUORUM --average-size-values --replication-factor=3 --create-index=KEYS --nodes=cathy1,cathy2 // Verify 1 key in CLI use Keyspace1; list Standard1; // Restart all three nodes // You will see 51 keys in CLI use Keyspace1; list Standard1; {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled
[ https://issues.apache.org/jira/browse/CASSANDRA-2034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083486#comment-13083486 ] Jonathan Ellis commented on CASSANDRA-2034: --- I think v11 is missing the new Callback classes. Can you rebase to trunk when you add those? Make Read Repair unnecessary when Hinted Handoff is enabled --- Key: CASSANDRA-2034 URL: https://issues.apache.org/jira/browse/CASSANDRA-2034 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Patricio Echague Fix For: 1.0 Attachments: 2034-formatting.txt, CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v2.patch, CASSANDRA-2034-trunk-v3.patch, CASSANDRA-2034-trunk-v4.patch, CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch, CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, CASSANDRA-2034-trunk-v9.patch, CASSANDRA-2034-trunk.patch Original Estimate: 8h Remaining Estimate: 8h Currently, HH is purely an optimization -- if a machine goes down, enabling HH means RR/AES will have less work to do, but you can't disable RR entirely in most situations since HH doesn't kick in until the FailureDetector does. Let's add a scheduled task to the mutate path, such that we return to the client normally after ConsistencyLevel is achieved, but after RpcTimeout we check the responseHandler write acks and write local hints for any missing targets. This would making disabling RR when HH is enabled a much more reasonable option, which has a huge impact on read throughput. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-3019) log the keyspace and CF of large rows being compacted
log the keyspace and CF of large rows being compacted - Key: CASSANDRA-3019 URL: https://issues.apache.org/jira/browse/CASSANDRA-3019 Project: Cassandra Issue Type: Improvement Reporter: Ryan King Assignee: Ryan King Priority: Minor If you want to find the large rows it'd help to know the Keyspace and CF to look in. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3019) log the keyspace and CF of large rows being compacted
[ https://issues.apache.org/jira/browse/CASSANDRA-3019?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ryan King updated CASSANDRA-3019: - Attachment: 0001-add-keyspace-and-cf-to-large-row-compaction-logging.patch log the keyspace and CF of large rows being compacted - Key: CASSANDRA-3019 URL: https://issues.apache.org/jira/browse/CASSANDRA-3019 Project: Cassandra Issue Type: Improvement Reporter: Ryan King Assignee: Ryan King Priority: Minor Attachments: 0001-add-keyspace-and-cf-to-large-row-compaction-logging.patch If you want to find the large rows it'd help to know the Keyspace and CF to look in. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
svn commit: r1156837 - in /cassandra/trunk: CHANGES.txt conf/cassandra.yaml src/java/org/apache/cassandra/config/Config.java
Author: jbellis Date: Thu Aug 11 21:21:11 2011 New Revision: 1156837 URL: http://svn.apache.org/viewvc?rev=1156837view=rev Log: change auto_bootstrap default to true and remove from example config file patch by jbellis as suggested by Peter Schullerfor CASSANDRA-2447 Modified: cassandra/trunk/CHANGES.txt cassandra/trunk/conf/cassandra.yaml cassandra/trunk/src/java/org/apache/cassandra/config/Config.java Modified: cassandra/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/trunk/CHANGES.txt?rev=1156837r1=1156836r2=1156837view=diff == --- cassandra/trunk/CHANGES.txt (original) +++ cassandra/trunk/CHANGES.txt Thu Aug 11 21:21:11 2011 @@ -32,6 +32,8 @@ * refactoring of the secondary index api (CASSANDRA-2982) * make CL ONE reads wait for digest reconciliation before returning (CASSANDRA-2494) + * change auto_bootstrap default to true and remove from example config file + (but not config parser) (CASSANDRA-2447) 0.8.5 Modified: cassandra/trunk/conf/cassandra.yaml URL: http://svn.apache.org/viewvc/cassandra/trunk/conf/cassandra.yaml?rev=1156837r1=1156836r2=1156837view=diff == --- cassandra/trunk/conf/cassandra.yaml (original) +++ cassandra/trunk/conf/cassandra.yaml Thu Aug 11 21:21:11 2011 @@ -21,14 +21,6 @@ cluster_name: 'Test Cluster' # a random token, which will lead to hot spots. initial_token: -# Set to true to make new [non-seed] nodes automatically migrate data -# to themselves from the pre-existing nodes in the cluster. Defaults -# to false because you can only bootstrap N machines at a time from -# an existing cluster of N, so if you are bringing up a cluster of -# 10 machines with 3 seeds you would have to do it in stages. Leaving -# this off for the initial start simplifies that. -auto_bootstrap: false - # See http://wiki.apache.org/cassandra/HintedHandoff hinted_handoff_enabled: true # this defines the maximum amount of time a dead host will have hints Modified: cassandra/trunk/src/java/org/apache/cassandra/config/Config.java URL: http://svn.apache.org/viewvc/cassandra/trunk/src/java/org/apache/cassandra/config/Config.java?rev=1156837r1=1156836r2=1156837view=diff == --- cassandra/trunk/src/java/org/apache/cassandra/config/Config.java (original) +++ cassandra/trunk/src/java/org/apache/cassandra/config/Config.java Thu Aug 11 21:21:11 2011 @@ -32,7 +32,7 @@ public class Config /* Hashing strategy Random or OPHF */ public String partitioner; -public Boolean auto_bootstrap = false; +public Boolean auto_bootstrap = true; public Boolean hinted_handoff_enabled = true; public Integer max_hint_window_in_ms = Integer.MAX_VALUE;
[jira] [Resolved] (CASSANDRA-2447) Remove auto-bootstrap option
[ https://issues.apache.org/jira/browse/CASSANDRA-2447?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-2447. --- Resolution: Fixed Reviewer: scode Assignee: Jonathan Ellis bq. maybe just make the default true always and remove it form the default configuration Good idea. Done in r1156837 Remove auto-bootstrap option Key: CASSANDRA-2447 URL: https://issues.apache.org/jira/browse/CASSANDRA-2447 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Jonathan Ellis Priority: Minor Fix For: 1.0 We already optimize auto-bootstrap to be no-op if there are no non-system tables. Given that, the only penalty imposed by autobootstrap is a 30s sleep waiting for gossip. Feels worth it to avoid the confusion this option causes, and the problems if you don't turn it on when it should be. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2500) Ruby dbi client (for CQL) that conforms to AR:ConnectionAdapter
[ https://issues.apache.org/jira/browse/CASSANDRA-2500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-2500: -- Assignee: Kelley Reynolds (was: Pavel Yaskevich) Ruby dbi client (for CQL) that conforms to AR:ConnectionAdapter --- Key: CASSANDRA-2500 URL: https://issues.apache.org/jira/browse/CASSANDRA-2500 Project: Cassandra Issue Type: Task Components: API Reporter: Jon Hermes Assignee: Kelley Reynolds Labels: cql Fix For: 0.8.5 Attachments: 2500.txt, genthriftrb.txt, rbcql-0.0.0.tgz Create a ruby driver for CQL. Lacking something standard (such as py-dbapi), going with something common instead -- RoR ActiveRecord Connection Adapter (http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/AbstractAdapter.html). -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
buildbot failure in ASF Buildbot on cassandra-trunk
The Buildbot has detected a new failure on builder cassandra-trunk while building ASF Buildbot. Full details are available at: http://ci.apache.org/builders/cassandra-trunk/builds/1513 Buildbot URL: http://ci.apache.org/ Buildslave for this Build: isis_ubuntu Build Reason: scheduler Build Source Stamp: [branch cassandra/trunk] 1156837 Blamelist: jbellis BUILD FAILED: failed compile sincerely, -The Buildbot
[jira] [Updated] (CASSANDRA-2034) Make Read Repair unnecessary when Hinted Handoff is enabled
[ https://issues.apache.org/jira/browse/CASSANDRA-2034?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patricio Echague updated CASSANDRA-2034: Attachment: CASSANDRA-2034-trunk-v11.patch rebase and add missing classes. Make Read Repair unnecessary when Hinted Handoff is enabled --- Key: CASSANDRA-2034 URL: https://issues.apache.org/jira/browse/CASSANDRA-2034 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Patricio Echague Fix For: 1.0 Attachments: 2034-formatting.txt, CASSANDRA-2034-trunk-v10.patch, CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v11.patch, CASSANDRA-2034-trunk-v2.patch, CASSANDRA-2034-trunk-v3.patch, CASSANDRA-2034-trunk-v4.patch, CASSANDRA-2034-trunk-v5.patch, CASSANDRA-2034-trunk-v6.patch, CASSANDRA-2034-trunk-v7.patch, CASSANDRA-2034-trunk-v8.patch, CASSANDRA-2034-trunk-v9.patch, CASSANDRA-2034-trunk.patch Original Estimate: 8h Remaining Estimate: 8h Currently, HH is purely an optimization -- if a machine goes down, enabling HH means RR/AES will have less work to do, but you can't disable RR entirely in most situations since HH doesn't kick in until the FailureDetector does. Let's add a scheduled task to the mutate path, such that we return to the client normally after ConsistencyLevel is achieved, but after RpcTimeout we check the responseHandler write acks and write local hints for any missing targets. This would making disabling RR when HH is enabled a much more reasonable option, which has a huge impact on read throughput. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3019) log the keyspace and CF of large rows being compacted
[ https://issues.apache.org/jira/browse/CASSANDRA-3019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083749#comment-13083749 ] Hudson commented on CASSANDRA-3019: --- Integrated in Cassandra-0.8 #274 (See [https://builds.apache.org/job/Cassandra-0.8/274/]) log ks and cf of large rows being compacted patch by Ryan King; reviewed by jbellis for CASSANDRA-3019 jbellis : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVNview=revrev=1156830 Files : * /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/db/compaction/CompactionController.java log the keyspace and CF of large rows being compacted - Key: CASSANDRA-3019 URL: https://issues.apache.org/jira/browse/CASSANDRA-3019 Project: Cassandra Issue Type: Improvement Reporter: Ryan King Assignee: Ryan King Priority: Minor Fix For: 0.8.5 Attachments: 0001-add-keyspace-and-cf-to-large-row-compaction-logging.patch If you want to find the large rows it'd help to know the Keyspace and CF to look in. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2806) Expose gossip/FD info to JMX
[ https://issues.apache.org/jira/browse/CASSANDRA-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083758#comment-13083758 ] Patricio Echague commented on CASSANDRA-2806: - What does everyone prefer ? 1) {code} { UP : Node1, Node2, Node3 DOWN : Node4 } {code} 2) {code} { Node1 : UP Node2 : UP Node3 : DOWN } {code} Expose gossip/FD info to JMX Key: CASSANDRA-2806 URL: https://issues.apache.org/jira/browse/CASSANDRA-2806 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Priority: Minor Fix For: 0.8.5 -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3005) OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic
[ https://issues.apache.org/jira/browse/CASSANDRA-3005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Melvin Wang updated CASSANDRA-3005: --- Attachment: c3005.patch The goal here is to remove the expired messages as many as we can to avoid the queue going unbounded. Two places to do this. 1) when we try to send the message, we drop it if it is already expired. This doesn't work if the connection is somehow slow because the queue may be piled up already. Thus we have 2) when we enqueue a message we try to remove some expired messages as well. This is tricky because we now have two threads trying to remove from one queue. Although the operation on the queue is protected, w/o synchronization, we have enqueue() trying to remove a message which is not he peeked a moment ago (since it may already be removed from the queue by run()). To solve this w/o using lock, I use two queues. Whenever run() finishes one queue, it (and only it) will swap the pointers of queues to process the other one. ConcurrentLinkedQueue is implemented using a non-block algorithm, so we don't suffer much here. OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic - Key: CASSANDRA-3005 URL: https://issues.apache.org/jira/browse/CASSANDRA-3005 Project: Cassandra Issue Type: Improvement Reporter: Melvin Wang Assignee: Melvin Wang Attachments: c3005.patch OutboundTcpConnection's sending queue unconditionally queues up the request and process them in sequence. Thinking about tagging the message coming in with timestamp and drop them before actually sending it if the message stays in the queue for too long, which is defined by the message's own time out value. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2806) Expose gossip/FD info to JMX
[ https://issues.apache.org/jira/browse/CASSANDRA-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patricio Echague updated CASSANDRA-2806: Attachment: screenshot-1.jpg Expose gossip/FD info to JMX Key: CASSANDRA-2806 URL: https://issues.apache.org/jira/browse/CASSANDRA-2806 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Priority: Minor Fix For: 0.8.5 Attachments: screenshot-1.jpg -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3005) OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic
[ https://issues.apache.org/jira/browse/CASSANDRA-3005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Melvin Wang updated CASSANDRA-3005: --- Attachment: (was: c3005.patch) OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic - Key: CASSANDRA-3005 URL: https://issues.apache.org/jira/browse/CASSANDRA-3005 Project: Cassandra Issue Type: Improvement Reporter: Melvin Wang Assignee: Melvin Wang OutboundTcpConnection's sending queue unconditionally queues up the request and process them in sequence. Thinking about tagging the message coming in with timestamp and drop them before actually sending it if the message stays in the queue for too long, which is defined by the message's own time out value. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-3005) OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic
[ https://issues.apache.org/jira/browse/CASSANDRA-3005?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Melvin Wang updated CASSANDRA-3005: --- Attachment: c3005.patch The previous patch was not up-to-date. sorry for the confusion. OutboundTcpConnection's sending queue goes unboundedly without any backpressure logic - Key: CASSANDRA-3005 URL: https://issues.apache.org/jira/browse/CASSANDRA-3005 Project: Cassandra Issue Type: Improvement Reporter: Melvin Wang Assignee: Melvin Wang Attachments: c3005.patch OutboundTcpConnection's sending queue unconditionally queues up the request and process them in sequence. Thinking about tagging the message coming in with timestamp and drop them before actually sending it if the message stays in the queue for too long, which is defined by the message's own time out value. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-2806) Expose gossip/FD info to JMX
[ https://issues.apache.org/jira/browse/CASSANDRA-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083850#comment-13083850 ] Patricio Echague commented on CASSANDRA-2806: - For Gossiper, although some info such as ApplicationState is exposed through FD, I propose: - getVersion(String nodeAddress) - getEndpointDowntime(String nodeAddress) - getCurrentGenerationNumber(String nodeAddress) Comments? Expose gossip/FD info to JMX Key: CASSANDRA-2806 URL: https://issues.apache.org/jira/browse/CASSANDRA-2806 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Priority: Minor Fix For: 0.8.5 Attachments: screenshot-1.jpg -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (CASSANDRA-2806) Expose gossip/FD info to JMX
[ https://issues.apache.org/jira/browse/CASSANDRA-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Patricio Echague updated CASSANDRA-2806: Attachment: CASSANDRA-2806-0.8-v1.patch This patch addresses the info for FD only. Expose gossip/FD info to JMX Key: CASSANDRA-2806 URL: https://issues.apache.org/jira/browse/CASSANDRA-2806 Project: Cassandra Issue Type: Improvement Reporter: Brandon Williams Assignee: Patricio Echague Priority: Minor Fix For: 0.8.5 Attachments: CASSANDRA-2806-0.8-v1.patch, screenshot-1.jpg -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-1473) Implement a Cassandra aware Hadoop mapreduce.Partitioner
[ https://issues.apache.org/jira/browse/CASSANDRA-1473?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083852#comment-13083852 ] Jonathan Ellis commented on CASSANDRA-1473: --- Actually even for RP I don't see how to make this useful. I was thinking md5(key) % partitions but that's not actually going to group the keys by node at all. It's _a_ partitioning but not a _useful_ one. :) Implement a Cassandra aware Hadoop mapreduce.Partitioner Key: CASSANDRA-1473 URL: https://issues.apache.org/jira/browse/CASSANDRA-1473 Project: Cassandra Issue Type: Improvement Components: Hadoop Reporter: Stu Hood Assignee: Patricio Echague Fix For: 1.0 When using a IPartitioner that does not sort data in byte order (RandomPartitioner for example) with Cassandra's Hadoop integration, Hadoop is unaware of the output order of the data. We can make Hadoop aware of the proper order of the output data by implementing Hadoop's mapreduce.Partitioner interface: then Hadoop will handle sorting all of the data according to Cassandra's IPartitioner, and the writing clients will be able to connect to smaller numbers of Cassandra nodes. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3017) add a Message size limit
[ https://issues.apache.org/jira/browse/CASSANDRA-3017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083853#comment-13083853 ] Jonathan Ellis commented on CASSANDRA-3017: --- How could we do that to a remote sender? add a Message size limit Key: CASSANDRA-3017 URL: https://issues.apache.org/jira/browse/CASSANDRA-3017 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Ryan King Priority: Minor Labels: lhf Attachments: 0001-use-the-thrift-max-message-size-for-inter-node-messa.patch We protect the server from allocating huge buffers for malformed message with the Thrift frame size (CASSANDRA-475). But we don't have similar protection for the inter-node Message objects. Adding this would be good to deal with malicious adversaries as well as a malfunctioning cluster participant. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CASSANDRA-3017) add a Message size limit
[ https://issues.apache.org/jira/browse/CASSANDRA-3017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13083881#comment-13083881 ] Ryan King commented on CASSANDRA-3017: -- I think fatal errors are what we're trying to avoid here. The biggest threat is probably malicious, not accidental (since you need to get the MAGIC and headers in before this length). add a Message size limit Key: CASSANDRA-3017 URL: https://issues.apache.org/jira/browse/CASSANDRA-3017 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Ryan King Priority: Minor Labels: lhf Attachments: 0001-use-the-thrift-max-message-size-for-inter-node-messa.patch We protect the server from allocating huge buffers for malformed message with the Thrift frame size (CASSANDRA-475). But we don't have similar protection for the inter-node Message objects. Adding this would be good to deal with malicious adversaries as well as a malfunctioning cluster participant. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (CASSANDRA-3020) Failures in system test: test_cql.py
Failures in system test: test_cql.py Key: CASSANDRA-3020 URL: https://issues.apache.org/jira/browse/CASSANDRA-3020 Project: Cassandra Issue Type: Bug Affects Versions: 0.8.5 Environment: 0.8 branch for Aug 11th test run: https://jenkins.qa.datastax.com/job/CassandraSystem/142/ https://jenkins.qa.datastax.com/job/Cassandra/147/ Reporter: Cathy Daw Assignee: Tyler Hobbs *Test Output* {code} == ERROR: reading and writing strings w/ newlines -- Traceback (most recent call last): File /usr/local/lib/python2.6/dist-packages/nose/case.py, line 187, in runTest self.test(*self.arg) File /var/lib/jenkins/jobs/Cassandra/workspace/test/system/test_cql.py, line 734, in test_newline_strings , {key: \nkey, name: \nname}) File /var/lib/jenkins/repos/drivers/py/cql/cursor.py, line 150, in execute self.description = self.decoder.decode_description(self._query_ks, self._query_cf, self.result[0]) File /var/lib/jenkins/repos/drivers/py/cql/decoders.py, line 39, in decode_description comparator = self.__comparator_for(keyspace, column_family) File /var/lib/jenkins/repos/drivers/py/cql/decoders.py, line 35, in __comparator_for return cfam.get(comparator, None) AttributeError: 'NoneType' object has no attribute 'get' -- Ran 127 tests in 635.426s FAILED (errors=1) Sending e-mails to: q...@datastax.com Finished: FAILURE {code} *Suspected check-in* {code} Revision 1156198 by xedin: Fixes issues with parameters being escaped incorrectly in Python CQL patch by Tyler Hobbs; reviewed by Pavel Yaskevich for CASSANDRA-2993 /cassandra/branches/cassandra-0.8/test/system/test_cql.py /cassandra/branches/cassandra-0.8/CHANGES.txt /cassandra/drivers/py/cql/cursor.py /cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/cql/Cql.g /cassandra/drivers/py/test/test_regex.py {code} -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira