[jira] [Created] (CASSANDRA-8396) repairs creates sstable per each num tokens range
Alexander Piavlo created CASSANDRA-8396: --- Summary: repairs creates sstable per each num tokens range Key: CASSANDRA-8396 URL: https://issues.apache.org/jira/browse/CASSANDRA-8396 Project: Cassandra Issue Type: Bug Components: Core Reporter: Alexander Piavlo Priority: Critical I have num tokens set to 256 then i run `nodetool repair -pr someKeyspace someCF` it creates 256 new small sstables - per each range afaiu on all replica nodes, this is major overkill for read performance. This happens with 2.1.2 and 2.1.1 I have never anything like that with cassandra 1.0.x -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7124) Use JMX Notifications to Indicate Success/Failure of Long-Running Operations
[ https://issues.apache.org/jira/browse/CASSANDRA-7124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229551#comment-14229551 ] Rajanarayanan Thottuvaikkatumana commented on CASSANDRA-7124: - [~yukim] Is there any way to complete the {{parallelAsyncAllSSTableOperation}} without using the mark/unmarkCompacting method call? Thanks Use JMX Notifications to Indicate Success/Failure of Long-Running Operations Key: CASSANDRA-7124 URL: https://issues.apache.org/jira/browse/CASSANDRA-7124 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Tyler Hobbs Assignee: Rajanarayanan Thottuvaikkatumana Priority: Minor Labels: lhf Fix For: 3.0 Attachments: cassandra-trunk-cleanup-7124.txt If {{nodetool cleanup}} or some other long-running operation takes too long to complete, you'll see an error like the one in CASSANDRA-2126, so you can't tell if the operation completed successfully or not. CASSANDRA-4767 fixed this for repairs with JMX notifications. We should do something similar for nodetool cleanup, compact, decommission, move, relocate, etc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8316) Did not get positive replies from all endpoints error on incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229587#comment-14229587 ] Loic Lambiel commented on CASSANDRA-8316: - Hi guys, Any chance to get this issue fixed for 2.1.3 ? On our side we face this issue on almost all incremental repairs Did not get positive replies from all endpoints error on incremental repair -- Key: CASSANDRA-8316 URL: https://issues.apache.org/jira/browse/CASSANDRA-8316 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.2 Reporter: Loic Lambiel Assignee: Alan Boudreault Attachments: CassandraDaemon-2014-11-25-2.snapshot.tar.gz, test.sh Hi, I've got an issue with incremental repairs on our production 15 nodes 2.1.2 (new cluster, not yet loaded, RF=3) After having successfully performed an incremental repair (-par -inc) on 3 nodes, I started receiving Repair failed with error Did not get positive replies from all endpoints. from nodetool on all remaining nodes : [2014-11-14 09:12:36,488] Starting repair command #3, repairing 108 ranges for keyspace (seq=false, full=false) [2014-11-14 09:12:47,919] Repair failed with error Did not get positive replies from all endpoints. All the nodes are up and running and the local system log shows that the repair commands got started and that's it. I've also noticed that soon after the repair, several nodes started having more cpu load indefinitely without any particular reason (no tasks / queries, nothing in the logs). I then restarted C* on these nodes and retried the repair on several nodes, which were successful until facing the issue again. I tried to repro on our 3 nodes preproduction cluster without success It looks like I'm not the only one having this issue: http://www.mail-archive.com/user%40cassandra.apache.org/msg39145.html Any idea? Thanks Loic -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)
[ https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229284#comment-14229284 ] Robert Stupp edited comment on CASSANDRA-7438 at 12/1/14 9:46 AM: -- Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a double-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared to jemalloc. Reason fot it might be that JNA library (which has some synchronized blocks in it). IMO OHC is ready to be merged into C* code base. Edit: the fact that there are two double-linked lists is a left-over of several experiments and it will be merged into one double-linked-list. It needs to be and will be fixed. was (Author: snazy): Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a double-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared
[jira] [Commented] (CASSANDRA-8387) Schema inconsistency (cached vs schema_columnfamilies)
[ https://issues.apache.org/jira/browse/CASSANDRA-8387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229613#comment-14229613 ] Marcus Olsson commented on CASSANDRA-8387: -- {quote} Time is not the problem. Your issue is a consequence of CASSANDRA-5202, that made table uuids non-deterministic. I don't see a good way to fix this in 2.1. I will try to handle this scenario in CASSANDRA-6038, with the new schema change protocol, but even then, I don't see an immediate solution - yet. {quote} Could one solution be to add some way for CREATE to use LWT? {quote} For now, you should wait for schema agreement before issuing any CREATE requests like that. I believe the java driver has a method for it. {quote} Ok, is that an exposed method of the driver or is it a part of the CREATE query itself? I can't seem to find it. Also, we are using multiple clients that might execute the same CREATE query(with IF NOT EXISTS). Schema inconsistency (cached vs schema_columnfamilies) -- Key: CASSANDRA-8387 URL: https://issues.apache.org/jira/browse/CASSANDRA-8387 Project: Cassandra Issue Type: Bug Components: Core Environment: C* 2.1.1 3-node cluster Reporter: Marcus Olsson While running some tests on a 3-node cluster running C* 2.1.1 we encountered a problem creating the same table schema twice(on different nodes). One thing to note is that one of the nodes clock was ~4 seconds behind the others, but I don't think that's the problem since the exception was reproduced here aswell: http://www.mail-archive.com/user@cassandra.apache.org/msg39560.html. While running the same create table statement more than once(on different clients) the logs outputted this on one of the nodes: {noformat} (node x.x.x.1): 2014-11-25T16:11:44.651+0100 INFO [SharedPool-Worker-2] MigrationManager.java:248 Create new ColumnFamily: org.apache.cassandra.config.CFMetaData@45c290de[cfId=5e334b40-74b5-11e4-b1b6-017ad0689f5d,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... 2014-11-25T16:11:44.667+0100 INFO [MigrationStage:1] DefsTables.java:373 Loading org.apache.cassandra.config.CFMetaData@40a1ee90[cfId=5bc7c980-74b5-11e4-9131-d9b94a3d8927,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID
[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)
[ https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229284#comment-14229284 ] Robert Stupp edited comment on CASSANDRA-7438 at 12/1/14 10:14 AM: --- Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a double-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared to jemalloc. Reason fot it might be that JNA library (which has some synchronized blocks in it). IMO OHC is ready to be merged into C* code base. Edit2: (remove edit1) was (Author: snazy): Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a double-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared to jemalloc. Reason fot it might be that JNA library (which has some synchronized blocks in it). IMO OHC is ready to be merged into C* code base.
[jira] [Commented] (CASSANDRA-8387) Schema inconsistency (cached vs schema_columnfamilies)
[ https://issues.apache.org/jira/browse/CASSANDRA-8387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229636#comment-14229636 ] Jens-U. Mozdzen commented on CASSANDRA-8387: Ok, is that an exposed method of the driver or is it a part of the CREATE query itself? I can't seem to find it. it seems the method was introduced with cassandra-driver-core 2.1.3: --- cut here --- Builder newClusterBuilder = Cluster.builder(); newClusterBuilder.withMaxSchemaAgreementWaitSeconds( 30); --- cut here --- Schema inconsistency (cached vs schema_columnfamilies) -- Key: CASSANDRA-8387 URL: https://issues.apache.org/jira/browse/CASSANDRA-8387 Project: Cassandra Issue Type: Bug Components: Core Environment: C* 2.1.1 3-node cluster Reporter: Marcus Olsson While running some tests on a 3-node cluster running C* 2.1.1 we encountered a problem creating the same table schema twice(on different nodes). One thing to note is that one of the nodes clock was ~4 seconds behind the others, but I don't think that's the problem since the exception was reproduced here aswell: http://www.mail-archive.com/user@cassandra.apache.org/msg39560.html. While running the same create table statement more than once(on different clients) the logs outputted this on one of the nodes: {noformat} (node x.x.x.1): 2014-11-25T16:11:44.651+0100 INFO [SharedPool-Worker-2] MigrationManager.java:248 Create new ColumnFamily: org.apache.cassandra.config.CFMetaData@45c290de[cfId=5e334b40-74b5-11e4-b1b6-017ad0689f5d,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... 2014-11-25T16:11:44.667+0100 INFO [MigrationStage:1] DefsTables.java:373 Loading org.apache.cassandra.config.CFMetaData@40a1ee90[cfId=5bc7c980-74b5-11e4-9131-d9b94a3d8927,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found 5e334b40-74b5-11e4-b1b6-017ad0689f5d; expected 5bc7c980-74b5-11e4-9131-d9b94a3d8927) at org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422) ~[apache-cassandra-2.1.1.jar:2.1.1] at
[jira] [Comment Edited] (CASSANDRA-7438) Serializing Row cache alternative (Fully off heap)
[ https://issues.apache.org/jira/browse/CASSANDRA-7438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229284#comment-14229284 ] Robert Stupp edited comment on CASSANDRA-7438 at 12/1/14 11:00 AM: --- Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a single-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared to jemalloc. Reason fot it might be that JNA library (which has some synchronized blocks in it). IMO OHC is ready to be merged into C* code base. Edit3: (sorry for the JIRA noise) - bucket linked list is only a single-linked-list - LRU linked list needs to be doubly linked was (Author: snazy): Have pushed the latest changes of OHC to https://github.com/snazy/ohc. It has been nearly completely rewritten. Architecture (in brief): * OHC consists of multiple segments (default: 2 x #CPUs). Less segments leads to more contention, more segments gives no measurable improvement. * Each segment consists of an off-heap-hash-map (defaults: table-size=8192, load-factor=.75). (The hash table requires 8 bytes per bucket) * Hash entries in a bucket are organized in a double-linked-list * LRU replacement policy is built-in via its own double-linked-list * Critical sections that mutually lock a segment are pretty short (code + CPU) - just a 'synchronized' keyword, no StampedLock/ReentrantLock * Capacity for the cache is configured globally and managed locally in each segment * Eviction (or replacement or cleanup) is triggered when free capacity goes below a trigger value and cleans up to a target free capacity * Uses murmur hash on serialized key. Most significant bits are used to find the segment, least significant bits for the segment's hash map. Non-production relevant stuff: * Allows to start off-heap access in debug mode, that checks for accesses outside of allocated region and produces exceptions instead of SIGSEGV or jemalloc errors * ohc-benchmark updated to reflect changes About replacement policy: Currently LRU is built in - but I'm not really sold on LRU as is. Alternatives could be * timestamp (not sold on this either - basically the same as LRU) * LIRS (https://en.wikipedia.org/wiki/LIRS_caching_algorithm), big overhead (space) * 2Q (counts accesses, divides counter regularly) * LRU+random (50/50) (may give the same result than LIRS, but without LIRS' overhead) But replacement of LRU with something else is out of scope of this ticket and should be done with real workloads in C* - although the last one is just a additional config parameter. IMO we should add a per-table option that configures whether the row cache receives data on reads+writes or just on reads. Might prevent garbage in the cache caused by write heavy tables. {{Unsafe.allocateMemory()}} gives about 5-10% performance improvement compared to jemalloc. Reason fot it might be that JNA
[jira] [Commented] (CASSANDRA-8387) Schema inconsistency (cached vs schema_columnfamilies)
[ https://issues.apache.org/jira/browse/CASSANDRA-8387?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229667#comment-14229667 ] Marcus Olsson commented on CASSANDRA-8387: -- {quote} it seems the method was introduced with cassandra-driver-core 2.1.3: — cut here — Builder newClusterBuilder = Cluster.builder(); newClusterBuilder.withMaxSchemaAgreementWaitSeconds( 30); — cut here — {quote} It seems that method is for setting the time the client is waiting for schema agreement after the CREATE request is executed which I belive won't help when there are multiple clients trying to create the same table? Schema inconsistency (cached vs schema_columnfamilies) -- Key: CASSANDRA-8387 URL: https://issues.apache.org/jira/browse/CASSANDRA-8387 Project: Cassandra Issue Type: Bug Components: Core Environment: C* 2.1.1 3-node cluster Reporter: Marcus Olsson While running some tests on a 3-node cluster running C* 2.1.1 we encountered a problem creating the same table schema twice(on different nodes). One thing to note is that one of the nodes clock was ~4 seconds behind the others, but I don't think that's the problem since the exception was reproduced here aswell: http://www.mail-archive.com/user@cassandra.apache.org/msg39560.html. While running the same create table statement more than once(on different clients) the logs outputted this on one of the nodes: {noformat} (node x.x.x.1): 2014-11-25T16:11:44.651+0100 INFO [SharedPool-Worker-2] MigrationManager.java:248 Create new ColumnFamily: org.apache.cassandra.config.CFMetaData@45c290de[cfId=5e334b40-74b5-11e4-b1b6-017ad0689f5d,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... 2014-11-25T16:11:44.667+0100 INFO [MigrationStage:1] DefsTables.java:373 Loading org.apache.cassandra.config.CFMetaData@40a1ee90[cfId=5bc7c980-74b5-11e4-9131-d9b94a3d8927,ksName=test,cfName=test,cfType=Standard,comparator=org.apache.cassandra.db.marshal.UTF8Type,comment=,readRepairChance=0.0,dcLocalReadRepairChance=0.1,gcGraceSeconds=864000,defaultValidator=org.apache.cassandra.db.marshal.BytesType,keyValidator=org.apache.cassandra.db.marshal.UTF8Type,minCompactionThreshold=4,maxCompactionThreshold=32,columnMetadata=[ColumnDefinition{name=id, type=org.apache.cassandra.db.marshal.UTF8Type, kind=CLUSTERING_COLUMN, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=key, type=org.apache.cassandra.db.marshal.UTF8Type, kind=PARTITION_KEY, componentIndex=null, indexName=null, indexType=null}, ColumnDefinition{name=value, type=org.apache.cassandra.db.marshal.BytesType, kind=COMPACT_VALUE, componentIndex=null, indexName=null, indexType=null}],compactionStrategyClass=class org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy,compactionStrategyOptions={},compressionParameters={sstable_compression=org.apache.cassandra.io.compress.LZ4Compressor},bloomFilterFpChance=0.01,memtableFlushPeriod=0,caching={keys:ALL, rows_per_partition:NONE},defaultTimeToLive=0,minIndexInterval=128,maxIndexInterval=2048,speculativeRetry=99.0PERCENTILE,droppedColumns={},triggers=[],isDense=true] ... java.lang.RuntimeException: org.apache.cassandra.exceptions.ConfigurationException: Column family ID mismatch (found 5e334b40-74b5-11e4-b1b6-017ad0689f5d; expected 5bc7c980-74b5-11e4-9131-d9b94a3d8927) at org.apache.cassandra.config.CFMetaData.reload(CFMetaData.java:1171) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.db.DefsTables.updateColumnFamily(DefsTables.java:422)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229701#comment-14229701 ] Piotr Kołaczkowski commented on CASSANDRA-7688: --- It would be nice to know also the average partition size in the given table, both in bytes and in number of CQL rows. This would be useful to set appropriate fetch.size. Additionally, current split generation API does not allow to set split size in terms of data size in bytes or number of CQL rows, but only by number of partitions. Number of partitions doesn't make a nice default, as partitions can vary greatly in size and are extremely use-case dependent. So please, don't just copy current describe_splits_ex functionality to the new driver, but *improve this*. We really don't need the driver / Cassandra to do the splitting for us. Instead we need to know: 1. estimate of total amount of data in the table in bytes 2. estimate of total number of CQL rows in the table 3. estimate of total number of partitions in the table We're interested both in totals (whole cluster; logical sizes; i.e. without replicas), and split by token-ranges by node (physical; incuding replicas). Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229701#comment-14229701 ] Piotr Kołaczkowski edited comment on CASSANDRA-7688 at 12/1/14 12:01 PM: - It would be nice to know also the average partition size in the given table, both in bytes and in number of CQL rows. This would be useful to set appropriate fetch.size. Additionally, current split generation API does not allow to set split size in terms of data size in bytes or number of CQL rows, but only by number of partitions. Number of partitions doesn't make a nice default, as partitions can vary greatly in size and are extremely use-case dependent. So please, don't just copy current describe_splits_ex functionality to the new driver, but *improve this*. We really don't need the driver / Cassandra to do the splitting for us. Instead we need to know: 1. estimate of total amount of data in the table in bytes 2. estimate of total number of CQL rows in the table 3. estimate of total number of partitions in the table We're interested both in totals (whole cluster; logical sizes; i.e. without replicas), and split by token-ranges by node (physical; incuding replicas). Note that this information is useful not just for Spark/Hadoop split generation, but also things like e.g. SparkSQL optimizer so it knows how much data will it have to process. The next step would be providing column data histograms to guide predicate selectivity. was (Author: pkolaczk): It would be nice to know also the average partition size in the given table, both in bytes and in number of CQL rows. This would be useful to set appropriate fetch.size. Additionally, current split generation API does not allow to set split size in terms of data size in bytes or number of CQL rows, but only by number of partitions. Number of partitions doesn't make a nice default, as partitions can vary greatly in size and are extremely use-case dependent. So please, don't just copy current describe_splits_ex functionality to the new driver, but *improve this*. We really don't need the driver / Cassandra to do the splitting for us. Instead we need to know: 1. estimate of total amount of data in the table in bytes 2. estimate of total number of CQL rows in the table 3. estimate of total number of partitions in the table We're interested both in totals (whole cluster; logical sizes; i.e. without replicas), and split by token-ranges by node (physical; incuding replicas). Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229701#comment-14229701 ] Piotr Kołaczkowski edited comment on CASSANDRA-7688 at 12/1/14 12:03 PM: - It would be nice to know also the average partition size in the given table, both in bytes and in number of CQL rows. This would be useful to set appropriate fetch.size. Additionally, current split generation API does not allow to set split size in terms of data size in bytes or number of CQL rows, but only by number of partitions. Number of partitions doesn't make a nice default, as partitions can vary greatly in size and are extremely use-case dependent. So please, don't just copy current describe_splits_ex functionality to the new driver, but *improve this*. We really don't need the driver / Cassandra to do the splitting for us. Instead we need to know: 1. estimate of total amount of data in the table in bytes 2. estimate of total number of CQL rows in the table 3. estimate of total number of partitions in the table We're interested both in totals (whole cluster; logical sizes; i.e. without replicas), and split by token-ranges by node (physical; incuding replicas). Note that this information is useful not just for Spark/Hadoop split generation, but also things like e.g. SparkSQL optimizer so it knows how much data will it have to process or to set appropriate fetch sizes when getting data, etc. The next step would be providing column data histograms to guide predicate selectivity. was (Author: pkolaczk): It would be nice to know also the average partition size in the given table, both in bytes and in number of CQL rows. This would be useful to set appropriate fetch.size. Additionally, current split generation API does not allow to set split size in terms of data size in bytes or number of CQL rows, but only by number of partitions. Number of partitions doesn't make a nice default, as partitions can vary greatly in size and are extremely use-case dependent. So please, don't just copy current describe_splits_ex functionality to the new driver, but *improve this*. We really don't need the driver / Cassandra to do the splitting for us. Instead we need to know: 1. estimate of total amount of data in the table in bytes 2. estimate of total number of CQL rows in the table 3. estimate of total number of partitions in the table We're interested both in totals (whole cluster; logical sizes; i.e. without replicas), and split by token-ranges by node (physical; incuding replicas). Note that this information is useful not just for Spark/Hadoop split generation, but also things like e.g. SparkSQL optimizer so it knows how much data will it have to process. The next step would be providing column data histograms to guide predicate selectivity. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229712#comment-14229712 ] Robert Stupp commented on CASSANDRA-8341: - Note: {{TheadMXBean.getCurrentThread...()}} definitely performs better than {{System.nanoTime()}} - at least on OSX with a single 8-core CPU. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8397) Support UPDATE with IN requirement for clustering key
[ https://issues.apache.org/jira/browse/CASSANDRA-8397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jens Rantil updated CASSANDRA-8397: --- Summary: Support UPDATE with IN requirement for clustering key (was: Support UPDATE with IN for clustering key) Support UPDATE with IN requirement for clustering key - Key: CASSANDRA-8397 URL: https://issues.apache.org/jira/browse/CASSANDRA-8397 Project: Cassandra Issue Type: Wish Reporter: Jens Rantil Priority: Minor {noformat} CREATE TABLE tink.events ( userid uuid, id timeuuid, content text, type text, PRIMARY KEY (userid, id) ) # Add data cqlsh:tink UPDATE events SET content='Hello' WHERE userid=57b47f85-56c4-4968-83cf-4c4e533944e9 AND id IN (046e9da0-7945-11e4-a76f-770773bbbf7e, 046e0160-7945-11e4-a76f-770773bbbf7e); code=2200 [Invalid query] message=Invalid operator IN for PRIMARY KEY part id {noformat} I was surprised this doesn't work. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-8397) Support UPDATE with IN for clustering key
Jens Rantil created CASSANDRA-8397: -- Summary: Support UPDATE with IN for clustering key Key: CASSANDRA-8397 URL: https://issues.apache.org/jira/browse/CASSANDRA-8397 Project: Cassandra Issue Type: Wish Reporter: Jens Rantil Priority: Minor {noformat} CREATE TABLE tink.events ( userid uuid, id timeuuid, content text, type text, PRIMARY KEY (userid, id) ) # Add data cqlsh:tink UPDATE events SET content='Hello' WHERE userid=57b47f85-56c4-4968-83cf-4c4e533944e9 AND id IN (046e9da0-7945-11e4-a76f-770773bbbf7e, 046e0160-7945-11e4-a76f-770773bbbf7e); code=2200 [Invalid query] message=Invalid operator IN for PRIMARY KEY part id {noformat} I was surprised this doesn't work. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8397) Support UPDATE with IN requirement for clustering key
[ https://issues.apache.org/jira/browse/CASSANDRA-8397?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jens Rantil updated CASSANDRA-8397: --- Description: {noformat} CREATE TABLE events ( userid uuid, id timeuuid, content text, type text, PRIMARY KEY (userid, id) ) # Add data cqlsh:mykeyspace UPDATE events SET content='Hello' WHERE userid=57b47f85-56c4-4968-83cf-4c4e533944e9 AND id IN (046e9da0-7945-11e4-a76f-770773bbbf7e, 046e0160-7945-11e4-a76f-770773bbbf7e); code=2200 [Invalid query] message=Invalid operator IN for PRIMARY KEY part id {noformat} I was surprised this doesn't work. was: {noformat} CREATE TABLE tink.events ( userid uuid, id timeuuid, content text, type text, PRIMARY KEY (userid, id) ) # Add data cqlsh:tink UPDATE events SET content='Hello' WHERE userid=57b47f85-56c4-4968-83cf-4c4e533944e9 AND id IN (046e9da0-7945-11e4-a76f-770773bbbf7e, 046e0160-7945-11e4-a76f-770773bbbf7e); code=2200 [Invalid query] message=Invalid operator IN for PRIMARY KEY part id {noformat} I was surprised this doesn't work. Support UPDATE with IN requirement for clustering key - Key: CASSANDRA-8397 URL: https://issues.apache.org/jira/browse/CASSANDRA-8397 Project: Cassandra Issue Type: Wish Reporter: Jens Rantil Priority: Minor {noformat} CREATE TABLE events ( userid uuid, id timeuuid, content text, type text, PRIMARY KEY (userid, id) ) # Add data cqlsh:mykeyspace UPDATE events SET content='Hello' WHERE userid=57b47f85-56c4-4968-83cf-4c4e533944e9 AND id IN (046e9da0-7945-11e4-a76f-770773bbbf7e, 046e0160-7945-11e4-a76f-770773bbbf7e); code=2200 [Invalid query] message=Invalid operator IN for PRIMARY KEY part id {noformat} I was surprised this doesn't work. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229780#comment-14229780 ] Benedict commented on CASSANDRA-8341: - SEPWorker already grabs the nanoTime on exiting and entering its spin phase, so tracking this would be pretty much free (we'd need to check it once if we swapped the executor we're working on without entering a spinning state). Flushing pent up data is pretty trivial; you can set a max time to buffer, so it ensures it's never more than a few seconds (or millis) out of date, say. Enough to keep the cost too small to measure. I'm a little dubious about tracking two completely different properties as the same thing though. CPUTime cannot be composed with nanoTime sensibly, so we either want to track one or the other across all executors. Since the other executors are all the ones that do infrequent expensive work (which is explicitly why they haven't been transitioned to SEP), tracking nanoTime on them won't be an appreciable cost. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229796#comment-14229796 ] T Jake Luciani commented on CASSANDRA-8341: --- I added some code to do this in a branch and have been meaning to break it out. It adds LatencyMetrics to AbstractTracingAwareExecutorService and tracks time spent in queue for each FutureTask. The code is here https://github.com/tjake/cassandra/compare/new-executor#diff-9860b2ae7a7e9e05e2165fd319f1398eL26 The SEPExecutor would need something similar added. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229805#comment-14229805 ] Benedict commented on CASSANDRA-8341: - Ah, that's a good question: are we talking about queue latency or time spent processing each queue? The two are very different, and it sounded like we were discussing the latter, but the ticket description does sound more like the former. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7827) Work around for output name restriction when using MultipleOutputs with CqlBulkOutputFormat
[ https://issues.apache.org/jira/browse/CASSANDRA-7827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229809#comment-14229809 ] Piotr Kołaczkowski commented on CASSANDRA-7827: --- +1 Work around for output name restriction when using MultipleOutputs with CqlBulkOutputFormat --- Key: CASSANDRA-7827 URL: https://issues.apache.org/jira/browse/CASSANDRA-7827 Project: Cassandra Issue Type: Improvement Components: Hadoop Reporter: Paul Pak Assignee: Paul Pak Priority: Minor Labels: cql3, hadoop Attachments: trunk-7827-v1.txt When using MultipleOutputs with CqlBulkOutputFormat, the column family names to output to are restricted to only alphanumeric characters due to the logic found in MultipleOutputs.checkNamedOutputName(). This will provide a way to alias any column family name to a MultipleOutputs compatible output name, so that column family names won't be artificially restricted when using MultipleOutputs. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-2388) ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica.
[ https://issues.apache.org/jira/browse/CASSANDRA-2388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229812#comment-14229812 ] Piotr Kołaczkowski commented on CASSANDRA-2388: --- +1 ColumnFamilyRecordReader fails for a given split because a host is down, even if records could reasonably be read from other replica. - Key: CASSANDRA-2388 URL: https://issues.apache.org/jira/browse/CASSANDRA-2388 Project: Cassandra Issue Type: Bug Components: Hadoop Affects Versions: 0.6 Reporter: Eldon Stegall Assignee: Paulo Motta Priority: Minor Labels: hadoop, inputformat Fix For: 2.0.12 Attachments: 0002_On_TException_try_next_split.patch, 1.2-CASSANDRA-2388.patch, 2.0-CASSANDRA-2388-v2.patch, 2.0-CASSANDRA-2388.patch, CASSANDRA-2388-addition1.patch, CASSANDRA-2388-extended.patch, CASSANDRA-2388.patch, CASSANDRA-2388.patch, CASSANDRA-2388.patch, CASSANDRA-2388.patch ColumnFamilyRecordReader only tries the first location for a given split. We should try multiple locations for a given split. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229818#comment-14229818 ] Benedict commented on CASSANDRA-7688: - This is a fundamentally difficult problem, and to be answered accurately basically requires a full compaction. We can track or estimate this data for any given sstable easily, and we can estimate the number of overlapping partitions between two sstables (though the accuracy I'm unsure of if we composed this data across many sstables), but we cannot say how many rows within each overlapping partition overlap. The best we could do is probably sample some overlapping partitions to see what proportion of row overlap tends to prevail, and hope it is representative; if we assume a normal distribution of overlap ratio we could return error bounds. I don't think it's likely this data could be maintained live, at least not accurately, or not without significant cost. It would be an on-demand calculation that would be moderately expensive. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229828#comment-14229828 ] Piotr Kołaczkowski commented on CASSANDRA-7688: --- We only need estimates, not exact values. Factor 1.5x error is considered an awesome estimate, factor 3x is still fairly good. Also note that Spark/Hadoop does many token range scans. Maybe collecting some statistics on the fly, during the scans (or during the compaction) would be viable? And running a full compaction to get statistics more accurate - why not? You need to do it anyway to get top speed when scanning data in Spark, because a full table scan is doing kind-of implicit compaction anyway, isn't it? Also, one more thing - it would be good to have those values per column (sorry for making it even harder, I know it is not an easy task). At least to know that a column is responsible for xx% of data in the table - knowing such thing would make a huge difference when estimating data size, because we're not always fetching all columns and they may vary in size a lot (e.g. collections!). Some sampling on insert would probably be enough. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229831#comment-14229831 ] Benedict commented on CASSANDRA-7688: - I'm talking about estimates. We cannot likely even estimate without pretty significant cost. Sampling column counts is pretty easy, but knowing how many cql rows there are for any merged row is not. There are tricks to make it easier, but there are datasets for which the tricks will not work, and any estimate would be complete guesswork without sampling the data. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229859#comment-14229859 ] Chris Lohfink commented on CASSANDRA-8341: -- I want to see time spent processing per pool (user time may be more appropriate than walltime(nanotime) or cpu's system time). This way we can track where cpu burn is occurring, and display a % of cpu in tpstats/opscenter by pool. So while latencyutils or a histogram would certainly be interesting its more than necessary for this task. A simple counter or meter would be sufficient. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229861#comment-14229861 ] T Jake Luciani commented on CASSANDRA-8341: --- Ah, I was confused by the summary then. I'll open a separate ticket for showing time waiting in queue. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8396) repairs creates sstable per each num tokens range
[ https://issues.apache.org/jira/browse/CASSANDRA-8396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8396: --- Reproduced In: 2.1.2, 2.1.1 Fix Version/s: 2.1.3 repairs creates sstable per each num tokens range - Key: CASSANDRA-8396 URL: https://issues.apache.org/jira/browse/CASSANDRA-8396 Project: Cassandra Issue Type: Bug Components: Core Reporter: Alexander Piavlo Priority: Critical Fix For: 2.1.3 I have num tokens set to 256 then i run `nodetool repair -pr someKeyspace someCF` it creates 256 new small sstables - per each range afaiu on all replica nodes, this is major overkill for read performance. This happens with 2.1.2 and 2.1.1 I have never anything like that with cassandra 1.0.x -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-8398) Expose time spent waiting in thread pool queue
T Jake Luciani created CASSANDRA-8398: - Summary: Expose time spent waiting in thread pool queue Key: CASSANDRA-8398 URL: https://issues.apache.org/jira/browse/CASSANDRA-8398 Project: Cassandra Issue Type: Improvement Reporter: T Jake Luciani Priority: Minor Fix For: 2.1.3 We are missing an important source of latency in our system, the time waiting to be processed by thread pools. We should add a metric for this so someone can easily see how much time is spent just waiting to be processed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229861#comment-14229861 ] T Jake Luciani edited comment on CASSANDRA-8341 at 12/1/14 2:52 PM: Ah, I was confused by the summary then. I'll open a separate ticket for showing time waiting in queue. CASSANDRA-8398 was (Author: tjake): Ah, I was confused by the summary then. I'll open a separate ticket for showing time waiting in queue. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8393) support quoted identifiers for index names
[ https://issues.apache.org/jira/browse/CASSANDRA-8393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8393: --- Reproduced In: 2.1.2 Fix Version/s: 2.1.3 support quoted identifiers for index names -- Key: CASSANDRA-8393 URL: https://issues.apache.org/jira/browse/CASSANDRA-8393 Project: Cassandra Issue Type: Bug Environment: v2.1.2 Reporter: Jonathan Halliday Fix For: 2.1.3 CREATE TABLE quoted_ident ... is valid in cql, whilst CREATE INDEX quoted_ident ... is not. This is inconsistent and troublesome for frameworks or tooling that needs to sling around case sensitive identifiers. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8390) The process cannot access the file because it is being used by another process
[ https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229870#comment-14229870 ] Philip Thompson commented on CASSANDRA-8390: Are you having this problem running Apache Cassandra on Windows? The process cannot access the file because it is being used by another process -- Key: CASSANDRA-8390 URL: https://issues.apache.org/jira/browse/CASSANDRA-8390 Project: Cassandra Issue Type: Bug Reporter: Ilya Komolkin 21:46:27.810 [NonPeriodicTasks:1] ERROR o.a.c.service.CassandraDaemon - Exception in thread Thread[NonPeriodicTasks:1,5,main] org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:135) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:121) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:113) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableDeletingTask.run(SSTableDeletingTask.java:94) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableReader$6.run(SSTableReader.java:664) ~[cassandra-all-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_71] at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_71] at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_71] at java.nio.file.Files.delete(Files.java:1079) ~[na:1.7.0_71] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[cassandra-all-2.1.1.jar:2.1.1] ... 11 common frames omitted -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229872#comment-14229872 ] Benedict commented on CASSANDRA-8341: - That is difficult, since we have stages that perform work that does not consume CPU. The RPC stage (for thrift or cql) both spend the majority of their time _waiting_ for the relevant work stage to complete. The proposed approaches would count this as busy time. The read and write stages also can block on IO, the former more often than the latter, but in either case we would count erroneously. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8390) The process cannot access the file because it is being used by another process
[ https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229877#comment-14229877 ] Ilya Komolkin commented on CASSANDRA-8390: -- Yes. Windows 8.1 The process cannot access the file because it is being used by another process -- Key: CASSANDRA-8390 URL: https://issues.apache.org/jira/browse/CASSANDRA-8390 Project: Cassandra Issue Type: Bug Reporter: Ilya Komolkin 21:46:27.810 [NonPeriodicTasks:1] ERROR o.a.c.service.CassandraDaemon - Exception in thread Thread[NonPeriodicTasks:1,5,main] org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:135) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:121) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:113) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableDeletingTask.run(SSTableDeletingTask.java:94) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableReader$6.run(SSTableReader.java:664) ~[cassandra-all-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_71] at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_71] at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_71] at java.nio.file.Files.delete(Files.java:1079) ~[na:1.7.0_71] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[cassandra-all-2.1.1.jar:2.1.1] ... 11 common frames omitted -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8390) The process cannot access the file because it is being used by another process
[ https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8390: --- Reproduced In: 2.1.1 The process cannot access the file because it is being used by another process -- Key: CASSANDRA-8390 URL: https://issues.apache.org/jira/browse/CASSANDRA-8390 Project: Cassandra Issue Type: Bug Reporter: Ilya Komolkin Assignee: Joshua McKenzie 21:46:27.810 [NonPeriodicTasks:1] ERROR o.a.c.service.CassandraDaemon - Exception in thread Thread[NonPeriodicTasks:1,5,main] org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:135) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:121) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:113) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableDeletingTask.run(SSTableDeletingTask.java:94) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableReader$6.run(SSTableReader.java:664) ~[cassandra-all-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_71] at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_71] at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_71] at java.nio.file.Files.delete(Files.java:1079) ~[na:1.7.0_71] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[cassandra-all-2.1.1.jar:2.1.1] ... 11 common frames omitted -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8390) The process cannot access the file because it is being used by another process
[ https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8390: --- Assignee: Joshua McKenzie The process cannot access the file because it is being used by another process -- Key: CASSANDRA-8390 URL: https://issues.apache.org/jira/browse/CASSANDRA-8390 Project: Cassandra Issue Type: Bug Reporter: Ilya Komolkin Assignee: Joshua McKenzie 21:46:27.810 [NonPeriodicTasks:1] ERROR o.a.c.service.CassandraDaemon - Exception in thread Thread[NonPeriodicTasks:1,5,main] org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:135) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:121) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:113) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableDeletingTask.run(SSTableDeletingTask.java:94) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableReader$6.run(SSTableReader.java:664) ~[cassandra-all-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_71] at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_71] at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_71] at java.nio.file.Files.delete(Files.java:1079) ~[na:1.7.0_71] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[cassandra-all-2.1.1.jar:2.1.1] ... 11 common frames omitted -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8267) Only stream from unrepaired sstables during incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229884#comment-14229884 ] Marcus Eriksson commented on CASSANDRA-8267: Did part of 8110 (just the version negotiation), pretty simple but, we have to bump messaging version which affects quite a few things, for example, we can't migrate schemas between different messaging versions (this could be special cased and fixed for this issue of course) https://github.com/krummas/cassandra/commits/marcuse/8110 - simply splits out the header part of StreamInitMessage into its own message and replies with a 'maxVersion' to that message when setting up the connection to agree on a version to use. I think we should go with the new message solution above though, less risky for a minor release Only stream from unrepaired sstables during incremental repair -- Key: CASSANDRA-8267 URL: https://issues.apache.org/jira/browse/CASSANDRA-8267 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Marcus Eriksson Fix For: 2.1.3 Seems we stream from all sstables even if we do incremental repair, we should limit this to only stream from the unrepaired sstables if we do incremental repair -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8267) Only stream from unrepaired sstables during incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229884#comment-14229884 ] Marcus Eriksson edited comment on CASSANDRA-8267 at 12/1/14 3:03 PM: - Did part of 8110 (just the version negotiation), pretty simple, but we have to bump messaging version which affects quite a few things, for example, we can't migrate schemas between different messaging versions (this could be special cased and fixed for this issue of course) https://github.com/krummas/cassandra/commits/marcuse/8110 - simply splits out the header part of StreamInitMessage into its own message and replies with a 'maxVersion' to that message when setting up the connection to agree on a version to use. I think we should go with the new message solution above though, less risky for a minor release was (Author: krummas): Did part of 8110 (just the version negotiation), pretty simple but, we have to bump messaging version which affects quite a few things, for example, we can't migrate schemas between different messaging versions (this could be special cased and fixed for this issue of course) https://github.com/krummas/cassandra/commits/marcuse/8110 - simply splits out the header part of StreamInitMessage into its own message and replies with a 'maxVersion' to that message when setting up the connection to agree on a version to use. I think we should go with the new message solution above though, less risky for a minor release Only stream from unrepaired sstables during incremental repair -- Key: CASSANDRA-8267 URL: https://issues.apache.org/jira/browse/CASSANDRA-8267 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Marcus Eriksson Fix For: 2.1.3 Seems we stream from all sstables even if we do incremental repair, we should limit this to only stream from the unrepaired sstables if we do incremental repair -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8267) Only stream from unrepaired sstables during incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8267?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229885#comment-14229885 ] Aleksey Yeschenko commented on CASSANDRA-8267: -- bq. but we have to bump messaging version which affects quite a few things, for example, we can't migrate schemas between different messaging versions (this could be special cased and fixed for this issue of course) That's unfortunate :\ I agree, then, with a new message - so long as we do it properly for 3.0 in CASSANDRA-8110. Only stream from unrepaired sstables during incremental repair -- Key: CASSANDRA-8267 URL: https://issues.apache.org/jira/browse/CASSANDRA-8267 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Marcus Eriksson Fix For: 2.1.3 Seems we stream from all sstables even if we do incremental repair, we should limit this to only stream from the unrepaired sstables if we do incremental repair -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229912#comment-14229912 ] Aleksey Yeschenko commented on CASSANDRA-8371: -- Nothing stopping us from adding another options (w _seconds), preferring it, if set, and slowly deprecating _days. DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-4987) Support more queries when ALLOW FILTERING is used.
[ https://issues.apache.org/jira/browse/CASSANDRA-4987?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229918#comment-14229918 ] Rajanarayanan Thottuvaikkatumana commented on CASSANDRA-4987: - [~ slebresne] In the Video table example of CASSANDRA-4915, if we issue a command {{SELECT * FROM videos WHERE tags = 'Cassandra';}}, then it will give error {{code=2200 [Invalid query] message=No secondary indexes on the restricted columns support the provided operators: }}. Is the idea to have {{ALLOW FILTERING}} option in the SELECT statements to support these kinds of WHERE clauses and the like otherwise NOT supported by Cassandra now? Thanks Support more queries when ALLOW FILTERING is used. -- Key: CASSANDRA-4987 URL: https://issues.apache.org/jira/browse/CASSANDRA-4987 Project: Cassandra Issue Type: Improvement Reporter: Sylvain Lebresne Labels: cql Fix For: 3.0 Even after CASSANDRA-4915, there is still a bunch of queries that we don't support even if {{ALLOW FILTERING}} is used. Typically, pretty much any queries with restriction on a non-primary-key column unless we have one of those restriction that is an EQ on an indexed column. If {{ALLOW FILTERING}} is used, we could allow those queries out of convenience. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8312) Use live sstables in snapshot repair if possible
[ https://issues.apache.org/jira/browse/CASSANDRA-8312?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229956#comment-14229956 ] Jimmy Mårdell commented on CASSANDRA-8312: -- Ping on this. I'm okay if you think this patch is unnecessary due to CASSANDRA-7024, but I'd still be very happy with some feedback on if this approach is correct. [~krummas]? Use live sstables in snapshot repair if possible Key: CASSANDRA-8312 URL: https://issues.apache.org/jira/browse/CASSANDRA-8312 Project: Cassandra Issue Type: Improvement Reporter: Jimmy Mårdell Assignee: Jimmy Mårdell Priority: Minor Attachments: cassandra-2.0-8312-1.txt Snapshot repair can be very much slower than parallel repairs because of the overhead of opening the SSTables in the snapshot. This is particular true when using LCS, as you typically have many smaller SSTables then. I compared parallel and sequential repair on a small range on one of our clusters (2*3 replicas). With parallel repair, this took 22 seconds. With sequential repair (default in 2.0), the same range took 330 seconds! This is an overhead of 330-22*6 = 198 seconds, just opening SSTables (there were 1000+ sstables). Also, opening 1000 sstables for many smaller rangers surely causes lots of memory churning. The idea would be to list the sstables in the snapshot, but use the corresponding sstables in the live set if it's still available. For almost all sstables, the original one should still exist. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8122) Undeclare throwable exception while executing 'nodetool netstats localhost'
[ https://issues.apache.org/jira/browse/CASSANDRA-8122?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-8122: -- Attachment: CASSANDRA-8122-2.1-v2.txt CASSANDRA-8122-2.0-v2.txt I added a call in NodeProbe to return whether or not the node is starting, so that we aren't relying on the text staying the same if we refactor the operation modes. Otherwise, +1 on the fix. Undeclare throwable exception while executing 'nodetool netstats localhost' --- Key: CASSANDRA-8122 URL: https://issues.apache.org/jira/browse/CASSANDRA-8122 Project: Cassandra Issue Type: Bug Components: Tools Environment: Cassandra: 2.0.9 Reporter: Vishal Mehta Assignee: Carl Yeksigian Priority: Minor Attachments: CASSANDRA-8122-1.patch, CASSANDRA-8122-2.0-v2.txt, CASSANDRA-8122-2.1-v2.txt, CASSANDRA-8122-2.1.patch, CASSANDRA-8122.patch *Steps* # Stop cassandra service # Check netstats of nodetool using 'nodetool netstats localhost' # Start cassandra service # Again check netstats of nodetool using 'nodetool netstats localhost' *Expected output* Mode: STARTING Not sending any streams. (End of output - no further exceptions) *Observed output* {noformat} nodetool netstats localhost Mode: STARTING Not sending any streams. Exception in thread main java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy6.getReadRepairAttempted(Unknown Source) at org.apache.cassandra.tools.NodeProbe.getReadRepairAttempted(NodeProbe.java:897) at org.apache.cassandra.tools.NodeCmd.printNetworkStats(NodeCmd.java:726) at org.apache.cassandra.tools.NodeCmd.main(NodeCmd.java:1281) Caused by: javax.management.InstanceNotFoundException: org.apache.cassandra.db:type=StorageProxy at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:643) at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:273) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:251) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:160) at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source) at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source) at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:902) at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:267) ... 4 more {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/6] cassandra git commit: Increase quarantine on replacement
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 7a14a77f2 - d8642ae39 refs/heads/cassandra-2.1 6853d5c9d - 9a4712e4d refs/heads/trunk 6348957d1 - 94ba744b3 Increase quarantine on replacement Patch by brandonwilliams, reviewed by jasobrown for CASSANDRA-8260 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8642ae3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8642ae3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8642ae3 Branch: refs/heads/cassandra-2.0 Commit: d8642ae396033c059cb75b3c35a2ece067c17035 Parents: 7a14a77 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:34:26 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:34:26 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8f4add9..57c0a26 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Increase quarantine delay on replacement (CASSANDRA-8260) * Expose off-heap memory usage stats (CASSANDRA-7897) * Ignore Paxos commits for truncated tables (CASSANDRA-7538) * Validate size of indexed column values (CASSANDRA-8280) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index eb0cf39..a478405 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -380,7 +380,29 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean */ private void quarantineEndpoint(InetAddress endpoint) { -justRemovedEndpoints.put(endpoint, System.currentTimeMillis()); +quarantineEndpoint(endpoint, System.currentTimeMillis()); +} + +/** + * Quarantines the endpoint until quarantineExpiration + QUARANTINE_DELAY + * + * @param endpoint + * @param quarantineExpiration + */ +private void quarantineEndpoint(InetAddress endpoint, long quarantineExpiration) +{ +justRemovedEndpoints.put(endpoint, quarantineExpiration); +} + +/** + * Quarantine endpoint specifically for replacement purposes. + * @param endpoint + */ +public void replacementQuarantine(InetAddress endpoint) +{ +// remember, quarantineEndpoint will effectively already add QUARANTINE_DELAY, so this is 2x +logger.debug(); +quarantineEndpoint(endpoint, System.currentTimeMillis() + QUARANTINE_DELAY); } /** @@ -393,6 +415,7 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { removeEndpoint(endpoint); evictFromMembership(endpoint); +replacementQuarantine(endpoint); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 14b397a..601e036 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1607,7 +1607,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint); for (InetAddress ep : endpointsToRemove) +{ removeEndpoint(ep); +if (DatabaseDescriptor.isReplacing() DatabaseDescriptor.getReplaceAddress().equals(ep)) +Gossiper.instance.replacementQuarantine(ep); // quarantine locally longer than normally; see CASSANDRA-8260 +} if (!tokensToUpdateInSystemKeyspace.isEmpty()) SystemKeyspace.updateTokens(endpoint, tokensToUpdateInSystemKeyspace); if (!localTokensToRemove.isEmpty())
[4/6] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9a4712e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9a4712e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9a4712e4 Branch: refs/heads/trunk Commit: 9a4712e4dc191d8182389fd4da0f18d46c91fdc7 Parents: 6853d5c d8642ae Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:36:33 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:36:33 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/CHANGES.txt -- diff --cc CHANGES.txt index 2f11996,57c0a26..d454ba2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,20 -1,5 +1,21 @@@ -2.0.12: +2.1.3 + * Handle abort() in SSTableRewriter properly (CASSANDRA-8320) + * Fix high size calculations for prepared statements (CASSANDRA-8231) + * Centralize shared executors (CASSANDRA-8055) + * Fix filtering for CONTAINS (KEY) relations on frozen collection + clustering columns when the query is restricted to a single + partition (CASSANDRA-8203) + * Do more aggressive entire-sstable TTL expiry checks (CASSANDRA-8243) + * Add more log info if readMeter is null (CASSANDRA-8238) + * add check of the system wall clock time at startup (CASSANDRA-8305) + * Support for frozen collections (CASSANDRA-7859) + * Fix overflow on histogram computation (CASSANDRA-8028) + * Have paxos reuse the timestamp generation of normal queries (CASSANDRA-7801) + * Fix incremental repair not remove parent session on remote (CASSANDRA-8291) + * Improve JBOD disk utilization (CASSANDRA-7386) + * Log failed host when preparing incremental repair (CASSANDRA-8228) +Merged from 2.0: + * Increase quarantine delay on replacement (CASSANDRA-8260) * Expose off-heap memory usage stats (CASSANDRA-7897) * Ignore Paxos commits for truncated tables (CASSANDRA-7538) * Validate size of indexed column values (CASSANDRA-8280) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/src/java/org/apache/cassandra/gms/Gossiper.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/src/java/org/apache/cassandra/service/StorageService.java --
[3/6] cassandra git commit: Increase quarantine on replacement
Increase quarantine on replacement Patch by brandonwilliams, reviewed by jasobrown for CASSANDRA-8260 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8642ae3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8642ae3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8642ae3 Branch: refs/heads/trunk Commit: d8642ae396033c059cb75b3c35a2ece067c17035 Parents: 7a14a77 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:34:26 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:34:26 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8f4add9..57c0a26 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Increase quarantine delay on replacement (CASSANDRA-8260) * Expose off-heap memory usage stats (CASSANDRA-7897) * Ignore Paxos commits for truncated tables (CASSANDRA-7538) * Validate size of indexed column values (CASSANDRA-8280) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index eb0cf39..a478405 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -380,7 +380,29 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean */ private void quarantineEndpoint(InetAddress endpoint) { -justRemovedEndpoints.put(endpoint, System.currentTimeMillis()); +quarantineEndpoint(endpoint, System.currentTimeMillis()); +} + +/** + * Quarantines the endpoint until quarantineExpiration + QUARANTINE_DELAY + * + * @param endpoint + * @param quarantineExpiration + */ +private void quarantineEndpoint(InetAddress endpoint, long quarantineExpiration) +{ +justRemovedEndpoints.put(endpoint, quarantineExpiration); +} + +/** + * Quarantine endpoint specifically for replacement purposes. + * @param endpoint + */ +public void replacementQuarantine(InetAddress endpoint) +{ +// remember, quarantineEndpoint will effectively already add QUARANTINE_DELAY, so this is 2x +logger.debug(); +quarantineEndpoint(endpoint, System.currentTimeMillis() + QUARANTINE_DELAY); } /** @@ -393,6 +415,7 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { removeEndpoint(endpoint); evictFromMembership(endpoint); +replacementQuarantine(endpoint); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 14b397a..601e036 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1607,7 +1607,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint); for (InetAddress ep : endpointsToRemove) +{ removeEndpoint(ep); +if (DatabaseDescriptor.isReplacing() DatabaseDescriptor.getReplaceAddress().equals(ep)) +Gossiper.instance.replacementQuarantine(ep); // quarantine locally longer than normally; see CASSANDRA-8260 +} if (!tokensToUpdateInSystemKeyspace.isEmpty()) SystemKeyspace.updateTokens(endpoint, tokensToUpdateInSystemKeyspace); if (!localTokensToRemove.isEmpty())
[5/6] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9a4712e4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9a4712e4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9a4712e4 Branch: refs/heads/cassandra-2.1 Commit: 9a4712e4dc191d8182389fd4da0f18d46c91fdc7 Parents: 6853d5c d8642ae Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:36:33 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:36:33 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/CHANGES.txt -- diff --cc CHANGES.txt index 2f11996,57c0a26..d454ba2 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,20 -1,5 +1,21 @@@ -2.0.12: +2.1.3 + * Handle abort() in SSTableRewriter properly (CASSANDRA-8320) + * Fix high size calculations for prepared statements (CASSANDRA-8231) + * Centralize shared executors (CASSANDRA-8055) + * Fix filtering for CONTAINS (KEY) relations on frozen collection + clustering columns when the query is restricted to a single + partition (CASSANDRA-8203) + * Do more aggressive entire-sstable TTL expiry checks (CASSANDRA-8243) + * Add more log info if readMeter is null (CASSANDRA-8238) + * add check of the system wall clock time at startup (CASSANDRA-8305) + * Support for frozen collections (CASSANDRA-7859) + * Fix overflow on histogram computation (CASSANDRA-8028) + * Have paxos reuse the timestamp generation of normal queries (CASSANDRA-7801) + * Fix incremental repair not remove parent session on remote (CASSANDRA-8291) + * Improve JBOD disk utilization (CASSANDRA-7386) + * Log failed host when preparing incremental repair (CASSANDRA-8228) +Merged from 2.0: + * Increase quarantine delay on replacement (CASSANDRA-8260) * Expose off-heap memory usage stats (CASSANDRA-7897) * Ignore Paxos commits for truncated tables (CASSANDRA-7538) * Validate size of indexed column values (CASSANDRA-8280) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/src/java/org/apache/cassandra/gms/Gossiper.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9a4712e4/src/java/org/apache/cassandra/service/StorageService.java --
[6/6] cassandra git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/94ba744b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/94ba744b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/94ba744b Branch: refs/heads/trunk Commit: 94ba744b373a741c2a42786249f54b73bda02e11 Parents: 6348957 9a4712e Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:37:04 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:37:04 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/94ba744b/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/94ba744b/src/java/org/apache/cassandra/gms/Gossiper.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/94ba744b/src/java/org/apache/cassandra/service/StorageService.java --
[2/6] cassandra git commit: Increase quarantine on replacement
Increase quarantine on replacement Patch by brandonwilliams, reviewed by jasobrown for CASSANDRA-8260 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d8642ae3 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d8642ae3 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d8642ae3 Branch: refs/heads/cassandra-2.1 Commit: d8642ae396033c059cb75b3c35a2ece067c17035 Parents: 7a14a77 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 10:34:26 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 10:34:26 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/gms/Gossiper.java | 25 +++- .../cassandra/service/StorageService.java | 4 3 files changed, 29 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 8f4add9..57c0a26 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Increase quarantine delay on replacement (CASSANDRA-8260) * Expose off-heap memory usage stats (CASSANDRA-7897) * Ignore Paxos commits for truncated tables (CASSANDRA-7538) * Validate size of indexed column values (CASSANDRA-8280) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/gms/Gossiper.java -- diff --git a/src/java/org/apache/cassandra/gms/Gossiper.java b/src/java/org/apache/cassandra/gms/Gossiper.java index eb0cf39..a478405 100644 --- a/src/java/org/apache/cassandra/gms/Gossiper.java +++ b/src/java/org/apache/cassandra/gms/Gossiper.java @@ -380,7 +380,29 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean */ private void quarantineEndpoint(InetAddress endpoint) { -justRemovedEndpoints.put(endpoint, System.currentTimeMillis()); +quarantineEndpoint(endpoint, System.currentTimeMillis()); +} + +/** + * Quarantines the endpoint until quarantineExpiration + QUARANTINE_DELAY + * + * @param endpoint + * @param quarantineExpiration + */ +private void quarantineEndpoint(InetAddress endpoint, long quarantineExpiration) +{ +justRemovedEndpoints.put(endpoint, quarantineExpiration); +} + +/** + * Quarantine endpoint specifically for replacement purposes. + * @param endpoint + */ +public void replacementQuarantine(InetAddress endpoint) +{ +// remember, quarantineEndpoint will effectively already add QUARANTINE_DELAY, so this is 2x +logger.debug(); +quarantineEndpoint(endpoint, System.currentTimeMillis() + QUARANTINE_DELAY); } /** @@ -393,6 +415,7 @@ public class Gossiper implements IFailureDetectionEventListener, GossiperMBean { removeEndpoint(endpoint); evictFromMembership(endpoint); +replacementQuarantine(endpoint); } /** http://git-wip-us.apache.org/repos/asf/cassandra/blob/d8642ae3/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 14b397a..601e036 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1607,7 +1607,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE tokenMetadata.updateNormalTokens(tokensToUpdateInMetadata, endpoint); for (InetAddress ep : endpointsToRemove) +{ removeEndpoint(ep); +if (DatabaseDescriptor.isReplacing() DatabaseDescriptor.getReplaceAddress().equals(ep)) +Gossiper.instance.replacementQuarantine(ep); // quarantine locally longer than normally; see CASSANDRA-8260 +} if (!tokensToUpdateInSystemKeyspace.isEmpty()) SystemKeyspace.updateTokens(endpoint, tokensToUpdateInSystemKeyspace); if (!localTokensToRemove.isEmpty())
[jira] [Updated] (CASSANDRA-8373) MOVED_NODE Topology Change event is never emitted
[ https://issues.apache.org/jira/browse/CASSANDRA-8373?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams updated CASSANDRA-8373: Reviewer: Tyler Hobbs (was: Brandon Williams) Reproduced In: 2.1.2, 2.0.11, 1.2.19 (was: 1.2.19, 2.0.11, 2.1.2) MOVED_NODE Topology Change event is never emitted - Key: CASSANDRA-8373 URL: https://issues.apache.org/jira/browse/CASSANDRA-8373 Project: Cassandra Issue Type: Bug Components: Core Reporter: Adam Holmberg Assignee: Adam Holmberg Priority: Minor Fix For: 2.0.12, 2.1.3 Attachments: 8373.txt lifeCycleSubscribers.onMove never gets called because [this tokenMetadata.updateNormalTokens|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/service/StorageService.java#L1585] call [changes the endpoint moving status|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/locator/TokenMetadata.java#L190], making the later isMoving conditional always false. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230035#comment-14230035 ] Sylvain Lebresne commented on CASSANDRA-7688: - To be clear, the target here is hadoop/spark and we're not looking at doing anything better than what is currently used by thrift describe_splits. Which is based on the sstable stats and that, yes, can be pretty bad for some datasets, but improving it is a goal for another ticket. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7688) Add data sizing to a system table
[ https://issues.apache.org/jira/browse/CASSANDRA-7688?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230051#comment-14230051 ] Piotr Kołaczkowski commented on CASSANDRA-7688: --- Fair enough. Just saying describe_splits is pretty bad for the reason it is not possible to set some reasonable default for split size. Some users were already pointing that out in our issue tracker. Add data sizing to a system table - Key: CASSANDRA-7688 URL: https://issues.apache.org/jira/browse/CASSANDRA-7688 Project: Cassandra Issue Type: New Feature Reporter: Jeremiah Jordan Fix For: 2.1.3 Currently you can't implement something similar to describe_splits_ex purely from the a native protocol driver. https://datastax-oss.atlassian.net/browse/JAVA-312 is open to expose easily getting ownership information to a client in the java-driver. But you still need the data sizing part to get splits of a given size. We should add the sizing information to a system table so that native clients can get to it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-6976) Determining replicas to query is very slow with large numbers of nodes or vnodes
[ https://issues.apache.org/jira/browse/CASSANDRA-6976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230055#comment-14230055 ] Ariel Weisberg commented on CASSANDRA-6976: --- bq. the benchmark as tested will have perfect L1 cache occupancy, which in a real scenario is unlikely I recall someone on the Mechanical Sympathy group pointing out that you can warm an entire last level cache in some small amount of time, I think it was 30ish milliseconds. I can't find the post and I could be very wrong, but it was definitely milliseconds. My guess is that in the big picture cache effects aren't changing the narrative that this takes 10s to 100s of milliseconds. bq. the benchmarks did not account for: (all of which should have a negative impact on the runtime on getRangeSlice itself) Is the take away here that I should reopen and run the micro-benchmarks again with these configurations? If it is slow, what is the solution? Even if we lazily materialize the ranges the run time of fetching batches of results dominates the in-memory compute of getRestrictedRanges. When we talked use cases it seems like people would using paging programmatically so only console users would see this poor performance outside of the lookup table use case you mentioned. bq. guess what really bugs me about this, and what I assumed would be related to the problem (but patently can't given the default behaviour) ... I was hoping we'd fix that as a result of this work, since that's a lot of duplicated effort, but that hardly seems sensible now. I didn't quite follow this. Are you talking about getLiveSortedEndpoints called from getRangeSlice? I haven't dug deep enough into getRangeSlice to tell you where the time in that goes exactly. I would have to do it again and insert some probes. I assumed it was dominated by sending remote requests. bq. What we definitely should do, though, is make sure we're (in general) benchmarking behaviour over common config, as our default test configuration is not at all representative. Benchmarking in what scope? This microbenchmark, defaults for workloads in cstar, tribal knowledge when doing performance work? Determining replicas to query is very slow with large numbers of nodes or vnodes Key: CASSANDRA-6976 URL: https://issues.apache.org/jira/browse/CASSANDRA-6976 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Assignee: Ariel Weisberg Labels: performance Attachments: GetRestrictedRanges.java, jmh_output.txt, jmh_output_murmur3.txt, make_jmh_work.patch As described in CASSANDRA-6906, this can be ~100ms for a relatively small cluster with vnodes, which is longer than it will spend in transit on the network. This should be much faster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8056) nodetool snapshot keyspace -cf table -t sametagname does not work on multiple tabes of the same keyspace
[ https://issues.apache.org/jira/browse/CASSANDRA-8056?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230060#comment-14230060 ] Nick Bailey commented on CASSANDRA-8056: Since we are doing this here is CASSANDRA-8348 now a duplicate? nodetool snapshot keyspace -cf table -t sametagname does not work on multiple tabes of the same keyspace -- Key: CASSANDRA-8056 URL: https://issues.apache.org/jira/browse/CASSANDRA-8056 Project: Cassandra Issue Type: Improvement Components: Core Environment: Cassandra 2.0.6 debian wheezy and squeeze Reporter: Esha Pathak Priority: Trivial Labels: lhf Fix For: 2.0.12 Attachments: CASSANDRA-8056.txt scenario keyspace thing has tables : thing:user , thing:object, thing:user_details steps to reproduce : 1. nodetool snapshot thing --column-family user --tag tagname Requested creating snapshot for: thing and table: user Snapshot directory: tagname 2.nodetool snapshot thing --column-family object --tag tagname Requested creating snapshot for: thing and table: object Exception in thread main java.io.IOException: Snapshot tagname already exists. at org.apache.cassandra.service.StorageService.takeColumnFamilySnapshot(StorageService.java:2274) at sun.reflect.GeneratedMethodAccessor129.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) at sun.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[Cassandra Wiki] Update of HowToContribute by MichaelShuler
Dear Wiki user, You have subscribed to a wiki page or wiki category on Cassandra Wiki for change notification. The HowToContribute page has been changed by MichaelShuler: https://wiki.apache.org/cassandra/HowToContribute?action=diffrev1=58rev2=59 1. View `build/cobertura/html/index.html` === Continuous integration === - Buildbot runs the Cassandra tests continuously: http://ci.apache.org/builders/cassandra-trunk. (Builders for stable branches also exist.) + Jenkins runs the Cassandra tests continuously: http://cassci.datastax.com/ (Builders for stable branches also exist.) == IDE == * [[RunningCassandraInIDEA]]
[jira] [Resolved] (CASSANDRA-8396) repairs creates sstable per each num tokens range
[ https://issues.apache.org/jira/browse/CASSANDRA-8396?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-8396. --- Resolution: Duplicate Fix Version/s: (was: 2.1.3) Reproduced In: 2.1.2, 2.1.1 (was: 2.1.1, 2.1.2) repairs creates sstable per each num tokens range - Key: CASSANDRA-8396 URL: https://issues.apache.org/jira/browse/CASSANDRA-8396 Project: Cassandra Issue Type: Bug Components: Core Reporter: Alexander Piavlo Priority: Critical I have num tokens set to 256 then i run `nodetool repair -pr someKeyspace someCF` it creates 256 new small sstables - per each range afaiu on all replica nodes, this is major overkill for read performance. This happens with 2.1.2 and 2.1.1 I have never anything like that with cassandra 1.0.x -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Ninja-add missing consistency levels to cqlsh
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 d8642ae39 - 902e43b93 Ninja-add missing consistency levels to cqlsh Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/902e43b9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/902e43b9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/902e43b9 Branch: refs/heads/cassandra-2.0 Commit: 902e43b935552516b5f840190cca4bf87f7dbf0c Parents: d8642ae Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:45:07 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:45:07 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/902e43b9/bin/cqlsh -- diff --git a/bin/cqlsh b/bin/cqlsh index c99b98c..6be9b78 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -247,9 +247,11 @@ cqlsh_extra_syntax_rules = r''' | THREE | QUORUM | ALL - | LOCAL_ONE | LOCAL_QUORUM | EACH_QUORUM + | SERIAL + | LOCAL_SERIAL + | LOCAL_ONE ; showCommand ::= SHOW what=( VERSION | HOST | SESSION sessionid=uuid )
[jira] [Commented] (CASSANDRA-8367) Clash between Cassandra and Crunch mapreduce config
[ https://issues.apache.org/jira/browse/CASSANDRA-8367?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230101#comment-14230101 ] Michael Shuler commented on CASSANDRA-8367: --- [~zvo] do you have a patch that implements the changeover to a different config key? Someone could look at that :) Clash between Cassandra and Crunch mapreduce config --- Key: CASSANDRA-8367 URL: https://issues.apache.org/jira/browse/CASSANDRA-8367 Project: Cassandra Issue Type: Bug Components: Hadoop Reporter: Radovan Zvoncek Priority: Minor We would like to use Cassandra's (Cql)BulkOutputFormats to implement Resource IOs for Crunch. We want to do this to allow Crunch users write results of their jobs directly to Cassandra (thus skipping writing them to file system). In the process of doing this, we found out there is a clash in the mapreduce job config. The affected config key is 'mapreduce.output.basename'. Cassandra is using it [1] for something different than Crunch [2]. This is resulting in some obscure behavior I personally don't understand, but it causes the jobs to fail. We went ahead and re-implemented the output format classes to use different config key, but we'd very much like to stop using them. [1] https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/hadoop/ConfigHelper.java#L54 [2] https://github.com/apache/crunch/blob/3f13ee65c9debcf6bd7366607f58beae6c73ffe2/crunch-core/src/main/java/org/apache/crunch/io/CrunchOutputs.java#L99 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/2] cassandra git commit: Ninja-add missing consistency levels to cqlsh
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 9a4712e4d - 37dfe4303 Ninja-add missing consistency levels to cqlsh Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/902e43b9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/902e43b9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/902e43b9 Branch: refs/heads/cassandra-2.1 Commit: 902e43b935552516b5f840190cca4bf87f7dbf0c Parents: d8642ae Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:45:07 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:45:07 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/902e43b9/bin/cqlsh -- diff --git a/bin/cqlsh b/bin/cqlsh index c99b98c..6be9b78 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -247,9 +247,11 @@ cqlsh_extra_syntax_rules = r''' | THREE | QUORUM | ALL - | LOCAL_ONE | LOCAL_QUORUM | EACH_QUORUM + | SERIAL + | LOCAL_SERIAL + | LOCAL_ONE ; showCommand ::= SHOW what=( VERSION | HOST | SESSION sessionid=uuid )
[2/2] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/37dfe430 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/37dfe430 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/37dfe430 Branch: refs/heads/cassandra-2.1 Commit: 37dfe430349d18fa950fc9b0b88acc1ae2a83502 Parents: 9a4712e 902e43b Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:46:41 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:46:41 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/37dfe430/bin/cqlsh --
[1/3] cassandra git commit: Ninja-add missing consistency levels to cqlsh
Repository: cassandra Updated Branches: refs/heads/trunk 94ba744b3 - cb8bda8d4 Ninja-add missing consistency levels to cqlsh Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/902e43b9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/902e43b9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/902e43b9 Branch: refs/heads/trunk Commit: 902e43b935552516b5f840190cca4bf87f7dbf0c Parents: d8642ae Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:45:07 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:45:07 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/902e43b9/bin/cqlsh -- diff --git a/bin/cqlsh b/bin/cqlsh index c99b98c..6be9b78 100755 --- a/bin/cqlsh +++ b/bin/cqlsh @@ -247,9 +247,11 @@ cqlsh_extra_syntax_rules = r''' | THREE | QUORUM | ALL - | LOCAL_ONE | LOCAL_QUORUM | EACH_QUORUM + | SERIAL + | LOCAL_SERIAL + | LOCAL_ONE ; showCommand ::= SHOW what=( VERSION | HOST | SESSION sessionid=uuid )
[3/3] cassandra git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/cb8bda8d Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/cb8bda8d Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/cb8bda8d Branch: refs/heads/trunk Commit: cb8bda8d47981d2bde98662c934286d8fade2c6c Parents: 94ba744 37dfe43 Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:47:07 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:47:07 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --
[2/3] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/37dfe430 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/37dfe430 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/37dfe430 Branch: refs/heads/trunk Commit: 37dfe430349d18fa950fc9b0b88acc1ae2a83502 Parents: 9a4712e 902e43b Author: Aleksey Yeschenko alek...@apache.org Authored: Mon Dec 1 20:46:41 2014 +0300 Committer: Aleksey Yeschenko alek...@apache.org Committed: Mon Dec 1 20:46:41 2014 +0300 -- bin/cqlsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/37dfe430/bin/cqlsh --
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230112#comment-14230112 ] Jonathan Ellis commented on CASSANDRA-8371: --- Marcus pointed out on chat that days is probably the correct resolution in most cases, since you will generally want to allow repair to complete before sealing it away from compaction. I'm fine with living with fractional days in the occasional case (like stress testing) where it's not. DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-8333) Streaming Error during repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler resolved CASSANDRA-8333. --- Resolution: Cannot Reproduce Streaming Error during repair - Key: CASSANDRA-8333 URL: https://issues.apache.org/jira/browse/CASSANDRA-8333 Project: Cassandra Issue Type: Bug Components: Core Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_55 Reporter: Andreas Schnitzerling Attachments: system.log During repair, connections are closing and throwing exceptions. CPU is running on 100%, when error occurs. My test-configuration is one node w/ 2.1.2 and 11 nodes w/ 2.0.11. If I make repair either on 2.1 or 2.0 I get such an error. But if I have 2.0 everywhere istalled, no error. 2.0 nodes make endless repair in that circumstance. Seems to be incompatibility between 2.0 and 2.1. {panel:title=system.log} ERROR [STREAM-OUT-/10.6.8.212] 2014-11-18 12:28:34,948 StreamSession.java:472 - [Stream #0866dc80-6f16-11e4-bc5c-5fe413b6852c] Streaming error occurred java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.7.0_55] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.7.0_55] at org.apache.cassandra.io.util.DataOutputStreamAndChannel.write(DataOutputStreamAndChannel.java:48) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:44) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:346) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:326) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] ERROR [AntiEntropySessions:1] 2014-11-18 12:28:34,948 RepairSession.java:303 - [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c] session completed with the following error org.apache.cassandra.exceptions.RepairException: [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c on logdata/onlinedata, (-143721749331492309,-139544903266258032]] Sync failed between /10.9.9.241 and /10.6.8.212 at org.apache.cassandra.repair.RepairSession.syncComplete(RepairSession.java:223) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.service.ActiveRepairService.handleMessage(ActiveRepairService.java:389) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:126) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_55] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] {panel} Since in windows only parallel repair is possible, is there a way to throttle CPU-consumption? I reduced rpc_X_threads to 4 and concurrent_reads/writes to 4. But no change. On other nodes is C* 2.0.10 and nothing in their system.log. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8333) Streaming Error during repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230116#comment-14230116 ] Michael Shuler commented on CASSANDRA-8333: --- Is Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen equivalent to Connection reset? Cassandra is CPU intensive. Generally, it's going to use as much as it can. 32-bit OS is not recommended and 3G RAM is too little. I appreciate that you keep trying with the hardware you have, but this really seems to be a dead end. If 2.0 works for you, stay on 2.0. Streaming Error during repair - Key: CASSANDRA-8333 URL: https://issues.apache.org/jira/browse/CASSANDRA-8333 Project: Cassandra Issue Type: Bug Components: Core Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_55 Reporter: Andreas Schnitzerling Attachments: system.log During repair, connections are closing and throwing exceptions. CPU is running on 100%, when error occurs. My test-configuration is one node w/ 2.1.2 and 11 nodes w/ 2.0.11. If I make repair either on 2.1 or 2.0 I get such an error. But if I have 2.0 everywhere istalled, no error. 2.0 nodes make endless repair in that circumstance. Seems to be incompatibility between 2.0 and 2.1. {panel:title=system.log} ERROR [STREAM-OUT-/10.6.8.212] 2014-11-18 12:28:34,948 StreamSession.java:472 - [Stream #0866dc80-6f16-11e4-bc5c-5fe413b6852c] Streaming error occurred java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.7.0_55] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.7.0_55] at org.apache.cassandra.io.util.DataOutputStreamAndChannel.write(DataOutputStreamAndChannel.java:48) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:44) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:346) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:326) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] ERROR [AntiEntropySessions:1] 2014-11-18 12:28:34,948 RepairSession.java:303 - [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c] session completed with the following error org.apache.cassandra.exceptions.RepairException: [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c on logdata/onlinedata, (-143721749331492309,-139544903266258032]] Sync failed between /10.9.9.241 and /10.6.8.212 at org.apache.cassandra.repair.RepairSession.syncComplete(RepairSession.java:223) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.service.ActiveRepairService.handleMessage(ActiveRepairService.java:389) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:126) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_55] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] {panel} Since in windows only parallel repair is possible, is there a way to throttle CPU-consumption? I reduced rpc_X_threads to 4 and concurrent_reads/writes to 4. But no change. On other nodes is C* 2.0.10 and nothing in their system.log. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8315) cassandra-env.sh doesn't handle correctly non numeric JDK versions
[ https://issues.apache.org/jira/browse/CASSANDRA-8315?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230121#comment-14230121 ] Michael Shuler commented on CASSANDRA-8315: --- What Cassandra version? (I was also testing -ea releases recently on 2.1 branch for another bug and didn't have a problem, so maybe this is something earlier?) cassandra-env.sh doesn't handle correctly non numeric JDK versions -- Key: CASSANDRA-8315 URL: https://issues.apache.org/jira/browse/CASSANDRA-8315 Project: Cassandra Issue Type: Bug Reporter: Michaël Figuière Priority: Trivial Trying to work around a JDK bug, I've installed a Early Access release of the JDK, which lead to a small, non-blocking error, in {{cassandra-env.sh}} as it expects the patch part of the JDK version to be a number, but on Oracle EA JDKs, the patch number is followed by an {{-ea}} qualifier as in: {code} $ java -version java version 1.7.0_80-ea Java(TM) SE Runtime Environment (build 1.7.0_80-ea-b02) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b07, mixed mode) {code} This lead to the following error: {code} bin/../conf/cassandra-env.sh: line 102: [: 80-ea: integer expression expected {code} Obviously not a big deal, but we may want to cover this corner case properly by just ignoring the qualifier part of the version. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7124) Use JMX Notifications to Indicate Success/Failure of Long-Running Operations
[ https://issues.apache.org/jira/browse/CASSANDRA-7124?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-7124: -- Attachment: 7124-wip.txt [~rnamboodiri] I attached my version of (work-in-progress) async cleanup. Please take a look, and see if you can expand it to other operations. Use JMX Notifications to Indicate Success/Failure of Long-Running Operations Key: CASSANDRA-7124 URL: https://issues.apache.org/jira/browse/CASSANDRA-7124 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Tyler Hobbs Assignee: Rajanarayanan Thottuvaikkatumana Priority: Minor Labels: lhf Fix For: 3.0 Attachments: 7124-wip.txt, cassandra-trunk-cleanup-7124.txt If {{nodetool cleanup}} or some other long-running operation takes too long to complete, you'll see an error like the one in CASSANDRA-2126, so you can't tell if the operation completed successfully or not. CASSANDRA-4767 fixed this for repairs with JMX notifications. We should do something similar for nodetool cleanup, compact, decommission, move, relocate, etc. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Reopened] (CASSANDRA-8333) Streaming Error during repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler reopened CASSANDRA-8333: --- For the sake of testing mixed version repairs, I'm going to reopen. Streaming Error during repair - Key: CASSANDRA-8333 URL: https://issues.apache.org/jira/browse/CASSANDRA-8333 Project: Cassandra Issue Type: Bug Components: Core Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_55 Reporter: Andreas Schnitzerling Attachments: system.log During repair, connections are closing and throwing exceptions. CPU is running on 100%, when error occurs. My test-configuration is one node w/ 2.1.2 and 11 nodes w/ 2.0.11. If I make repair either on 2.1 or 2.0 I get such an error. But if I have 2.0 everywhere istalled, no error. 2.0 nodes make endless repair in that circumstance. Seems to be incompatibility between 2.0 and 2.1. {panel:title=system.log} ERROR [STREAM-OUT-/10.6.8.212] 2014-11-18 12:28:34,948 StreamSession.java:472 - [Stream #0866dc80-6f16-11e4-bc5c-5fe413b6852c] Streaming error occurred java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.7.0_55] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.7.0_55] at org.apache.cassandra.io.util.DataOutputStreamAndChannel.write(DataOutputStreamAndChannel.java:48) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:44) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:346) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:326) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] ERROR [AntiEntropySessions:1] 2014-11-18 12:28:34,948 RepairSession.java:303 - [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c] session completed with the following error org.apache.cassandra.exceptions.RepairException: [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c on logdata/onlinedata, (-143721749331492309,-139544903266258032]] Sync failed between /10.9.9.241 and /10.6.8.212 at org.apache.cassandra.repair.RepairSession.syncComplete(RepairSession.java:223) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.service.ActiveRepairService.handleMessage(ActiveRepairService.java:389) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:126) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_55] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] {panel} Since in windows only parallel repair is possible, is there a way to throttle CPU-consumption? I reduced rpc_X_threads to 4 and concurrent_reads/writes to 4. But no change. On other nodes is C* 2.0.10 and nothing in their system.log. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8333) Streaming Error during repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230138#comment-14230138 ] Michael Shuler commented on CASSANDRA-8333: --- [~enigmacurry] can we get a mixed cassandra version repair dtest running to check that's working as expected? Streaming Error during repair - Key: CASSANDRA-8333 URL: https://issues.apache.org/jira/browse/CASSANDRA-8333 Project: Cassandra Issue Type: Bug Components: Core Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_55 Reporter: Andreas Schnitzerling Attachments: system.log During repair, connections are closing and throwing exceptions. CPU is running on 100%, when error occurs. My test-configuration is one node w/ 2.1.2 and 11 nodes w/ 2.0.11. If I make repair either on 2.1 or 2.0 I get such an error. But if I have 2.0 everywhere istalled, no error. 2.0 nodes make endless repair in that circumstance. Seems to be incompatibility between 2.0 and 2.1. {panel:title=system.log} ERROR [STREAM-OUT-/10.6.8.212] 2014-11-18 12:28:34,948 StreamSession.java:472 - [Stream #0866dc80-6f16-11e4-bc5c-5fe413b6852c] Streaming error occurred java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.7.0_55] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.7.0_55] at org.apache.cassandra.io.util.DataOutputStreamAndChannel.write(DataOutputStreamAndChannel.java:48) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:44) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:346) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:326) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] ERROR [AntiEntropySessions:1] 2014-11-18 12:28:34,948 RepairSession.java:303 - [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c] session completed with the following error org.apache.cassandra.exceptions.RepairException: [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c on logdata/onlinedata, (-143721749331492309,-139544903266258032]] Sync failed between /10.9.9.241 and /10.6.8.212 at org.apache.cassandra.repair.RepairSession.syncComplete(RepairSession.java:223) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.service.ActiveRepairService.handleMessage(ActiveRepairService.java:389) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:126) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_55] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] {panel} Since in windows only parallel repair is possible, is there a way to throttle CPU-consumption? I reduced rpc_X_threads to 4 and concurrent_reads/writes to 4. But no change. On other nodes is C* 2.0.10 and nothing in their system.log. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: Workaround for output name restriction when using MultipleOutputs with CqlBulkOutputFormat
Repository: cassandra Updated Branches: refs/heads/trunk cb8bda8d4 - 7add7ead1 Workaround for output name restriction when using MultipleOutputs with CqlBulkOutputFormat Patch by Paul Pak, reviewed by Piotr KoÅaczkowski for CASSANDRA-7827 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/7add7ead Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/7add7ead Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/7add7ead Branch: refs/heads/trunk Commit: 7add7ead1884325c9c648802b66af45a258104ee Parents: cb8bda8 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:00:28 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:02:13 2014 -0600 -- .../cassandra/hadoop/cql3/CqlBulkOutputFormat.java | 11 +++ .../cassandra/hadoop/cql3/CqlBulkRecordWriter.java | 7 +++ 2 files changed, 18 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/7add7ead/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java -- diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java index bdc9fbf..78080e2 100644 --- a/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java +++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkOutputFormat.java @@ -54,6 +54,7 @@ public class CqlBulkOutputFormat extends AbstractBulkOutputFormatObject, ListB private static final String OUTPUT_CQL_SCHEMA_PREFIX = cassandra.columnfamily.schema.; private static final String OUTPUT_CQL_INSERT_PREFIX = cassandra.columnfamily.insert.; private static final String DELETE_SOURCE = cassandra.output.delete.source; +private static final String COLUMNFAMILY_ALIAS_PREFIX = cqlbulkoutputformat.columnfamily.alias.; /** Fills the deprecated OutputFormat interface for streaming. */ @Deprecated @@ -114,4 +115,14 @@ public class CqlBulkOutputFormat extends AbstractBulkOutputFormatObject, ListB { return conf.getBoolean(DELETE_SOURCE, false); } + +public static void setColumnFamilyAlias(Configuration conf, String alias, String columnFamily) +{ +conf.set(COLUMNFAMILY_ALIAS_PREFIX + alias, columnFamily); +} + +public static String getColumnFamilyForAlias(Configuration conf, String alias) +{ +return conf.get(COLUMNFAMILY_ALIAS_PREFIX + alias); +} } http://git-wip-us.apache.org/repos/asf/cassandra/blob/7add7ead/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java -- diff --git a/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java b/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java index e60a240..ebae7a4 100644 --- a/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java +++ b/src/java/org/apache/cassandra/hadoop/cql3/CqlBulkRecordWriter.java @@ -39,6 +39,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.mapreduce.TaskAttemptContext; import org.apache.hadoop.util.Progressable; + /** * The codeCqlBulkRecordWriter/code maps the output lt;key, valuegt; * pairs to a Cassandra column family. In particular, it applies the binded variables @@ -85,6 +86,12 @@ public class CqlBulkRecordWriter extends AbstractBulkRecordWriterObject, ListB // if anything is missing, exceptions will be thrown here, instead of on write() keyspace = ConfigHelper.getOutputKeyspace(conf); columnFamily = ConfigHelper.getOutputColumnFamily(conf); + +// check if columnFamily is aliased +String aliasedCf = CqlBulkOutputFormat.getColumnFamilyForAlias(conf, columnFamily); +if (aliasedCf != null) +columnFamily = aliasedCf; + schema = CqlBulkOutputFormat.getColumnFamilySchema(conf, columnFamily); insertStatement = CqlBulkOutputFormat.getColumnFamilyInsertStatement(conf, columnFamily); outputDir = getColumnFamilyDirectory();
[jira] [Resolved] (CASSANDRA-8333) Streaming Error during repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8333?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler resolved CASSANDRA-8333. --- Resolution: Duplicate I was directed to the linked bugs, which this duplicates - reclosing. Streaming Error during repair - Key: CASSANDRA-8333 URL: https://issues.apache.org/jira/browse/CASSANDRA-8333 Project: Cassandra Issue Type: Bug Components: Core Environment: Windows-7-32 bit, 3GB RAM, Java 1.7.0_55 Reporter: Andreas Schnitzerling Attachments: system.log During repair, connections are closing and throwing exceptions. CPU is running on 100%, when error occurs. My test-configuration is one node w/ 2.1.2 and 11 nodes w/ 2.0.11. If I make repair either on 2.1 or 2.0 I get such an error. But if I have 2.0 everywhere istalled, no error. 2.0 nodes make endless repair in that circumstance. Seems to be incompatibility between 2.0 and 2.1. {panel:title=system.log} ERROR [STREAM-OUT-/10.6.8.212] 2014-11-18 12:28:34,948 StreamSession.java:472 - [Stream #0866dc80-6f16-11e4-bc5c-5fe413b6852c] Streaming error occurred java.io.IOException: Eine bestehende Verbindung wurde softwaregesteuert durch den Hostcomputer abgebrochen at sun.nio.ch.SocketDispatcher.write0(Native Method) ~[na:1.7.0_55] at sun.nio.ch.SocketDispatcher.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.IOUtil.write(Unknown Source) ~[na:1.7.0_55] at sun.nio.ch.SocketChannelImpl.write(Unknown Source) ~[na:1.7.0_55] at org.apache.cassandra.io.util.DataOutputStreamAndChannel.write(DataOutputStreamAndChannel.java:48) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.messages.StreamMessage.serialize(StreamMessage.java:44) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.sendMessage(ConnectionHandler.java:346) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.streaming.ConnectionHandler$OutgoingMessageHandler.run(ConnectionHandler.java:326) [apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] ERROR [AntiEntropySessions:1] 2014-11-18 12:28:34,948 RepairSession.java:303 - [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c] session completed with the following error org.apache.cassandra.exceptions.RepairException: [repair #e10d0240-6f15-11e4-bc5c-5fe413b6852c on logdata/onlinedata, (-143721749331492309,-139544903266258032]] Sync failed between /10.9.9.241 and /10.6.8.212 at org.apache.cassandra.repair.RepairSession.syncComplete(RepairSession.java:223) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.service.ActiveRepairService.handleMessage(ActiveRepairService.java:389) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.repair.RepairMessageVerbHandler.doVerb(RepairMessageVerbHandler.java:126) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:62) ~[apache-cassandra-2.1.2-SNAPSHOT.jar:2.1.2-SNAPSHOT] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [na:1.7.0_55] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.7.0_55] at java.lang.Thread.run(Unknown Source) [na:1.7.0_55] {panel} Since in windows only parallel repair is possible, is there a way to throttle CPU-consumption? I reduced rpc_X_threads to 4 and concurrent_reads/writes to 4. But no change. On other nodes is C* 2.0.10 and nothing in their system.log. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-8330) Confusing Message: ConfigurationException: Found system keyspace files, but they couldn't be loaded!
[ https://issues.apache.org/jira/browse/CASSANDRA-8330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler resolved CASSANDRA-8330. --- Resolution: Not a Problem Thanks for the bug report. From your log, it seems that the corrupt files were logged as unreadable correctly, and you did the logical thing to get going again. :) Confusing Message: ConfigurationException: Found system keyspace files, but they couldn't be loaded! Key: CASSANDRA-8330 URL: https://issues.apache.org/jira/browse/CASSANDRA-8330 Project: Cassandra Issue Type: Bug Environment: cassandra 2.0.10 Reporter: Karl Mueller Priority: Minor I restarted a node which was not responding to cqlsh. It produced this error: INFO [SSTableBatchOpen:3] 2014-11-17 16:36:50,388 SSTableReader.java (line 223) Opening /data2/data-cassandra/system/local/system-local-jb-304 (133 bytes) INFO [SSTableBatchOpen:2] 2014-11-17 16:36:50,388 SSTableReader.java (line 223) Opening /data2/data-cassandra/system/local/system-local-jb-305 (80 bytes) INFO [main] 2014-11-17 16:36:50,393 AutoSavingCache.java (line 114) reading saved cache /data2/cache-cassandra/system-local-KeyCache-b.db ERROR [main] 2014-11-17 16:36:50,543 CassandraDaemon.java (line 265) Fatal exception during initialization org.apache.cassandra.exceptions.ConfigurationException: Found system keyspace files, but they couldn't be loaded! at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:554) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585) After deleting the cache, I still got this error: INFO 16:41:43,718 Opening /data2/data-cassandra/system/local/system-local-jb-304 (133 bytes) INFO 16:41:43,718 Opening /data2/data-cassandra/system/local/system-local-jb-305 (80 bytes) ERROR 16:41:43,877 Fatal exception during initialization org.apache.cassandra.exceptions.ConfigurationException: Found system keyspace files, but they couldn't be loaded! at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:554) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585) I think possibly the node had corrupted one of the files due to it being in a bad state. This would be impossible to replicate, so I don't think the actual bug is that helpful. What I did find very confusing was the error message. There's nothing to indicate what the problem is! Is it a corrupt file? A valid file with bad information in it? Referencing something that doesn't exist?! I fixed it by deleting the system keyspace and starting it with its token, but many people wouldn't know to do that at all. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8341) Expose time spent in each thread pool
[ https://issues.apache.org/jira/browse/CASSANDRA-8341?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230164#comment-14230164 ] Chris Lohfink commented on CASSANDRA-8341: -- I'll write up something in a little bit, but a scheduled task to walk the threads and capture the User time from the ThreadMXBean could give a good picture of which thread pools are burning cpu (including cpu burnt waiting). Can capture it from the SEPWorker when changing assigned executors. A problem is (thanks [~benedict]) in the maybeExecuteImmediately when not adding the task, that would need to be wrapped in an expensive call which adds latency to read/writes. Expose time spent in each thread pool - Key: CASSANDRA-8341 URL: https://issues.apache.org/jira/browse/CASSANDRA-8341 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Minor Labels: metrics Attachments: 8341.patch, 8341v2.txt Can increment a counter with time spent in each queue. This can provide context on how much time is spent percentage wise in each stage. Additionally can be used with littles law in future if ever want to try to tune the size of the pools. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-6976) Determining replicas to query is very slow with large numbers of nodes or vnodes
[ https://issues.apache.org/jira/browse/CASSANDRA-6976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230181#comment-14230181 ] Benedict commented on CASSANDRA-6976: - bq. I recall someone on the Mechanical Sympathy group pointing out that you can warm an entire last level cache in some small amount of time, I think it was 30ish milliseconds. I can't find the post and I could be very wrong, but it was definitely milliseconds. My guess is that in the big picture cache effects aren't changing the narrative that this takes 10s to 100s of milliseconds. Sure it does - if an action that is likely memory bound (like this one - after all, it does very little in the way of computation and doesn't touch any disk) takes time X with a warmed cache, and only touches data that can fit in cache, it will take X*K with a cold cache for some K (significantly) 1 - and in real operation, especially with many tokens, there is a quite reasonable likelihood of a cold cache given the lack of locality and amount of data as the cluster grows. This is actually one possibility for improving this behaviour, if we cared at all - ensuring the number of cache lines touched is kept low, working with primitives for the token ranges and inet addresses to reduce the constant factors. This would also improve the normal code paths, not just range slices. bq. If it is slow, what is the solution? Even if we lazily materialize the ranges the run time of fetching batches of results dominates the in-memory compute of getRestrictedRanges. When we talked use cases it seems like people would using paging programmatically so only console users would see this poor performance outside of the lookup table use case you mentioned. For a lookup (i.e. small) table query, or a range query that can be serviced entirely by the local node, it is quite unlikely that the fetching would dominate when talking about timescales = 1ms. bq. I didn't quite follow this. Are you talking about getLiveSortedEndpoints called from getRangeSlice? I haven't dug deep enough into getRangeSlice to tell you where the time in that goes exactly. I would have to do it again and insert some probes. I assumed it was dominated by sending remote requests. Yes - for your benchmark it would not have spent any much time here, since the sort would be a no-op and the list a single entry, but as the number of data centres and replication factor grows, and with use of NetworkTopologyStrategy, this could be a significant time expenditure. It will also on the aggregate affect a certain percentage of cpu time spent on all queries. However since the sort order is actually pretty consistent, sorting only when the sort order changes would be a way to eliminate this cost. bq. Benchmarking in what scope? This microbenchmark, defaults for workloads in cstar, tribal knowledge when doing performance work? Like I said, please do feel to drop this particular line of enquiry for the moment, since even with all of the above I doubt this is a pressing matter. But I don't think this is the end of the topic entirely - at some point this cost will be a more measurable percentage of.work done. But these kinds of costs are simply not a part of any of our current benchmarking methodology since our default configs avoid the code paths entirely (either by having no DCs, low RF, low node count, no tokens, and SimpleStrategy), and that is something we should address. In the meantime it might be worth having a simple short-circuit path for queries that may be answered by the local node only, though. Determining replicas to query is very slow with large numbers of nodes or vnodes Key: CASSANDRA-6976 URL: https://issues.apache.org/jira/browse/CASSANDRA-6976 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Assignee: Ariel Weisberg Labels: performance Attachments: GetRestrictedRanges.java, jmh_output.txt, jmh_output_murmur3.txt, make_jmh_work.patch As described in CASSANDRA-6906, this can be ~100ms for a relatively small cluster with vnodes, which is longer than it will spend in transit on the network. This should be much faster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/8] cassandra git commit: Fix undeclared throwable exception while executing 'nodetool netstats localhost'
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 902e43b93 - 54b4b99e1 refs/heads/cassandra-2.1 37dfe4303 - 642487143 refs/heads/trunk 7add7ead1 - f5fa97819 Fix undeclared throwable exception while executing 'nodetool netstats localhost' Patch by Vishal Mehta and Carl Yeksigian, reviewed by Carl Yeksigian for CASSANDRA-8122 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/54b4b99e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/54b4b99e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/54b4b99e Branch: refs/heads/cassandra-2.0 Commit: 54b4b99e1e12328005df51feb71448a320a9b7d6 Parents: 902e43b Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:18:54 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:18:54 2014 -0600 -- .../cassandra/service/StorageService.java | 5 ++ .../cassandra/service/StorageServiceMBean.java | 3 ++ .../org/apache/cassandra/tools/NodeCmd.java | 55 +++- .../org/apache/cassandra/tools/NodeProbe.java | 5 ++ 4 files changed, 42 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 601e036..0456907 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -3387,6 +3387,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE return operationMode.toString(); } +public boolean isStarting() +{ +return operationMode == Mode.STARTING; +} + public String getDrainProgress() { return String.format(Drained %s/%s ColumnFamilies, remainingCFs, totalCFs); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 2386fc8..0ea08a2 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -358,6 +358,9 @@ public interface StorageServiceMBean extends NotificationEmitter /** get the operational mode (leaving, joining, normal, decommissioned, client) **/ public String getOperationMode(); +/** Returns whether the storage service is starting or not */ +public boolean isStarting(); + /** get the progress of a drain operation */ public String getDrainProgress(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index e4a14b2..b085088 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -762,32 +762,35 @@ public class NodeCmd } } -outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); - -MessagingServiceMBean ms = probe.msProxy; -outs.printf(%-25s, Pool Name); -outs.printf(%10s, Active); -outs.printf(%10s, Pending); -outs.printf(%15s%n, Completed); - -int pending; -long completed; - -pending = 0; -for (int n : ms.getCommandPendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getCommandCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); - -pending = 0; -for (int n : ms.getResponsePendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getResponseCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +if (!probe.isStarting()) +{ + outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(),
[5/8] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/74a5f79a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/74a5f79a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/74a5f79a Branch: refs/heads/trunk Commit: 74a5f79ad134b6e60f144b77b49c9eaa8b3eb32e Parents: 37dfe43 54b4b99 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:21:19 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:21:19 2014 -0600 -- --
[7/8] cassandra git commit: Fix undeclared throwable exception while executing 'nodetool netstats localhost'
Fix undeclared throwable exception while executing 'nodetool netstats localhost' Patch by Vishal Mehta and Carl Yeksigian, reviewed by Carl Yeksigian for CASSANDRA-8122 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64248714 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64248714 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64248714 Branch: refs/heads/cassandra-2.1 Commit: 6424871439c6e203f0531736dcac71b1c50f41d9 Parents: 74a5f79 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:21:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:21:56 2014 -0600 -- .../org/apache/cassandra/tools/NodeTool.java| 55 +++- 1 file changed, 29 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64248714/src/java/org/apache/cassandra/tools/NodeTool.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java index fe4535b..5038d29 100644 --- a/src/java/org/apache/cassandra/tools/NodeTool.java +++ b/src/java/org/apache/cassandra/tools/NodeTool.java @@ -638,32 +638,35 @@ public class NodeTool } } -System.out.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); - -MessagingServiceMBean ms = probe.msProxy; -System.out.printf(%-25s, Pool Name); -System.out.printf(%10s, Active); -System.out.printf(%10s, Pending); -System.out.printf(%15s%n, Completed); - -int pending; -long completed; - -pending = 0; -for (int n : ms.getCommandPendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getCommandCompletedTasks().values()) -completed += n; -System.out.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); - -pending = 0; -for (int n : ms.getResponsePendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getResponseCompletedTasks().values()) -completed += n; -System.out.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +if (!probe.isStarting()) +{ +System.out.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); + +MessagingServiceMBean ms = probe.msProxy; +System.out.printf(%-25s, Pool Name); +System.out.printf(%10s, Active); +System.out.printf(%10s, Pending); +System.out.printf(%15s%n, Completed); + +int pending; +long completed; + +pending = 0; +for (int n : ms.getCommandPendingTasks().values()) +pending += n; +completed = 0; +for (long n : ms.getCommandCompletedTasks().values()) +completed += n; +System.out.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); + +pending = 0; +for (int n : ms.getResponsePendingTasks().values()) +pending += n; +completed = 0; +for (long n : ms.getResponseCompletedTasks().values()) +completed += n; +System.out.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +} } }
[3/8] cassandra git commit: Fix undeclared throwable exception while executing 'nodetool netstats localhost'
Fix undeclared throwable exception while executing 'nodetool netstats localhost' Patch by Vishal Mehta and Carl Yeksigian, reviewed by Carl Yeksigian for CASSANDRA-8122 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/54b4b99e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/54b4b99e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/54b4b99e Branch: refs/heads/trunk Commit: 54b4b99e1e12328005df51feb71448a320a9b7d6 Parents: 902e43b Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:18:54 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:18:54 2014 -0600 -- .../cassandra/service/StorageService.java | 5 ++ .../cassandra/service/StorageServiceMBean.java | 3 ++ .../org/apache/cassandra/tools/NodeCmd.java | 55 +++- .../org/apache/cassandra/tools/NodeProbe.java | 5 ++ 4 files changed, 42 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 601e036..0456907 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -3387,6 +3387,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE return operationMode.toString(); } +public boolean isStarting() +{ +return operationMode == Mode.STARTING; +} + public String getDrainProgress() { return String.format(Drained %s/%s ColumnFamilies, remainingCFs, totalCFs); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 2386fc8..0ea08a2 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -358,6 +358,9 @@ public interface StorageServiceMBean extends NotificationEmitter /** get the operational mode (leaving, joining, normal, decommissioned, client) **/ public String getOperationMode(); +/** Returns whether the storage service is starting or not */ +public boolean isStarting(); + /** get the progress of a drain operation */ public String getDrainProgress(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index e4a14b2..b085088 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -762,32 +762,35 @@ public class NodeCmd } } -outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); - -MessagingServiceMBean ms = probe.msProxy; -outs.printf(%-25s, Pool Name); -outs.printf(%10s, Active); -outs.printf(%10s, Pending); -outs.printf(%15s%n, Completed); - -int pending; -long completed; - -pending = 0; -for (int n : ms.getCommandPendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getCommandCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); - -pending = 0; -for (int n : ms.getResponsePendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getResponseCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +if (!probe.isStarting()) +{ + outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); + + MessagingServiceMBean ms = probe.msProxy; + outs.printf(%-25s, Pool Name); + outs.printf(%10s, Active); +
[4/8] cassandra git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/74a5f79a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/74a5f79a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/74a5f79a Branch: refs/heads/cassandra-2.1 Commit: 74a5f79ad134b6e60f144b77b49c9eaa8b3eb32e Parents: 37dfe43 54b4b99 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:21:19 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:21:19 2014 -0600 -- --
[2/8] cassandra git commit: Fix undeclared throwable exception while executing 'nodetool netstats localhost'
Fix undeclared throwable exception while executing 'nodetool netstats localhost' Patch by Vishal Mehta and Carl Yeksigian, reviewed by Carl Yeksigian for CASSANDRA-8122 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/54b4b99e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/54b4b99e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/54b4b99e Branch: refs/heads/cassandra-2.1 Commit: 54b4b99e1e12328005df51feb71448a320a9b7d6 Parents: 902e43b Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:18:54 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:18:54 2014 -0600 -- .../cassandra/service/StorageService.java | 5 ++ .../cassandra/service/StorageServiceMBean.java | 3 ++ .../org/apache/cassandra/tools/NodeCmd.java | 55 +++- .../org/apache/cassandra/tools/NodeProbe.java | 5 ++ 4 files changed, 42 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 601e036..0456907 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -3387,6 +3387,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE return operationMode.toString(); } +public boolean isStarting() +{ +return operationMode == Mode.STARTING; +} + public String getDrainProgress() { return String.format(Drained %s/%s ColumnFamilies, remainingCFs, totalCFs); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 2386fc8..0ea08a2 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -358,6 +358,9 @@ public interface StorageServiceMBean extends NotificationEmitter /** get the operational mode (leaving, joining, normal, decommissioned, client) **/ public String getOperationMode(); +/** Returns whether the storage service is starting or not */ +public boolean isStarting(); + /** get the progress of a drain operation */ public String getDrainProgress(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/54b4b99e/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index e4a14b2..b085088 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -762,32 +762,35 @@ public class NodeCmd } } -outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); - -MessagingServiceMBean ms = probe.msProxy; -outs.printf(%-25s, Pool Name); -outs.printf(%10s, Active); -outs.printf(%10s, Pending); -outs.printf(%15s%n, Completed); - -int pending; -long completed; - -pending = 0; -for (int n : ms.getCommandPendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getCommandCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); - -pending = 0; -for (int n : ms.getResponsePendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getResponseCompletedTasks().values()) -completed += n; -outs.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +if (!probe.isStarting()) +{ + outs.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); + + MessagingServiceMBean ms = probe.msProxy; + outs.printf(%-25s, Pool Name); + outs.printf(%10s,
[6/8] cassandra git commit: Fix undeclared throwable exception while executing 'nodetool netstats localhost'
Fix undeclared throwable exception while executing 'nodetool netstats localhost' Patch by Vishal Mehta and Carl Yeksigian, reviewed by Carl Yeksigian for CASSANDRA-8122 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/64248714 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/64248714 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/64248714 Branch: refs/heads/trunk Commit: 6424871439c6e203f0531736dcac71b1c50f41d9 Parents: 74a5f79 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:21:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:21:56 2014 -0600 -- .../org/apache/cassandra/tools/NodeTool.java| 55 +++- 1 file changed, 29 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/64248714/src/java/org/apache/cassandra/tools/NodeTool.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java index fe4535b..5038d29 100644 --- a/src/java/org/apache/cassandra/tools/NodeTool.java +++ b/src/java/org/apache/cassandra/tools/NodeTool.java @@ -638,32 +638,35 @@ public class NodeTool } } -System.out.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); - -MessagingServiceMBean ms = probe.msProxy; -System.out.printf(%-25s, Pool Name); -System.out.printf(%10s, Active); -System.out.printf(%10s, Pending); -System.out.printf(%15s%n, Completed); - -int pending; -long completed; - -pending = 0; -for (int n : ms.getCommandPendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getCommandCompletedTasks().values()) -completed += n; -System.out.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); - -pending = 0; -for (int n : ms.getResponsePendingTasks().values()) -pending += n; -completed = 0; -for (long n : ms.getResponseCompletedTasks().values()) -completed += n; -System.out.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +if (!probe.isStarting()) +{ +System.out.printf(Read Repair Statistics:%nAttempted: %d%nMismatch (Blocking): %d%nMismatch (Background): %d%n, probe.getReadRepairAttempted(), probe.getReadRepairRepairedBlocking(), probe.getReadRepairRepairedBackground()); + +MessagingServiceMBean ms = probe.msProxy; +System.out.printf(%-25s, Pool Name); +System.out.printf(%10s, Active); +System.out.printf(%10s, Pending); +System.out.printf(%15s%n, Completed); + +int pending; +long completed; + +pending = 0; +for (int n : ms.getCommandPendingTasks().values()) +pending += n; +completed = 0; +for (long n : ms.getCommandCompletedTasks().values()) +completed += n; +System.out.printf(%-25s%10s%10s%15s%n, Commands, n/a, pending, completed); + +pending = 0; +for (int n : ms.getResponsePendingTasks().values()) +pending += n; +completed = 0; +for (long n : ms.getResponseCompletedTasks().values()) +completed += n; +System.out.printf(%-25s%10s%10s%15s%n, Responses, n/a, pending, completed); +} } }
[8/8] cassandra git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/f5fa9781 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/f5fa9781 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/f5fa9781 Branch: refs/heads/trunk Commit: f5fa97819f7d3727f1a649ad01d5334e512f7ed7 Parents: 7add7ea 6424871 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 12:23:36 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 12:23:36 2014 -0600 -- .../org/apache/cassandra/tools/NodeTool.java| 55 +++- 1 file changed, 29 insertions(+), 26 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/f5fa9781/src/java/org/apache/cassandra/tools/NodeTool.java --
[jira] [Assigned] (CASSANDRA-8315) cassandra-env.sh doesn't handle correctly non numeric JDK versions
[ https://issues.apache.org/jira/browse/CASSANDRA-8315?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler reassigned CASSANDRA-8315: - Assignee: Michael Shuler cassandra-env.sh doesn't handle correctly non numeric JDK versions -- Key: CASSANDRA-8315 URL: https://issues.apache.org/jira/browse/CASSANDRA-8315 Project: Cassandra Issue Type: Bug Reporter: Michaël Figuière Assignee: Michael Shuler Priority: Trivial Trying to work around a JDK bug, I've installed a Early Access release of the JDK, which lead to a small, non-blocking error, in {{cassandra-env.sh}} as it expects the patch part of the JDK version to be a number, but on Oracle EA JDKs, the patch number is followed by an {{-ea}} qualifier as in: {code} $ java -version java version 1.7.0_80-ea Java(TM) SE Runtime Environment (build 1.7.0_80-ea-b02) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b07, mixed mode) {code} This lead to the following error: {code} bin/../conf/cassandra-env.sh: line 102: [: 80-ea: integer expression expected {code} Obviously not a big deal, but we may want to cover this corner case properly by just ignoring the qualifier part of the version. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8316) Did not get positive replies from all endpoints error on incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8316?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8316: --- Fix Version/s: 2.1.3 We are currently investigating the issue. Did not get positive replies from all endpoints error on incremental repair -- Key: CASSANDRA-8316 URL: https://issues.apache.org/jira/browse/CASSANDRA-8316 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.2 Reporter: Loic Lambiel Assignee: Alan Boudreault Fix For: 2.1.3 Attachments: CassandraDaemon-2014-11-25-2.snapshot.tar.gz, test.sh Hi, I've got an issue with incremental repairs on our production 15 nodes 2.1.2 (new cluster, not yet loaded, RF=3) After having successfully performed an incremental repair (-par -inc) on 3 nodes, I started receiving Repair failed with error Did not get positive replies from all endpoints. from nodetool on all remaining nodes : [2014-11-14 09:12:36,488] Starting repair command #3, repairing 108 ranges for keyspace (seq=false, full=false) [2014-11-14 09:12:47,919] Repair failed with error Did not get positive replies from all endpoints. All the nodes are up and running and the local system log shows that the repair commands got started and that's it. I've also noticed that soon after the repair, several nodes started having more cpu load indefinitely without any particular reason (no tasks / queries, nothing in the logs). I then restarted C* on these nodes and retried the repair on several nodes, which were successful until facing the issue again. I tried to repro on our 3 nodes preproduction cluster without success It looks like I'm not the only one having this issue: http://www.mail-archive.com/user%40cassandra.apache.org/msg39145.html Any idea? Thanks Loic -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8366) Repair grows data on nodes, causes load to become unbalanced
[ https://issues.apache.org/jira/browse/CASSANDRA-8366?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14229328#comment-14229328 ] Alan Boudreault edited comment on CASSANDRA-8366 at 12/1/14 6:53 PM: - I have been able to reproduce the issue with 2.1.2 and branch cassandra-2.1. From my tests, the issue seems to be related the parallel incremental repairs. I don't see the issue with full repairs. With full repairs, the storage size increases but everything is fine after a compaction. With incremental repairs, I've seen nodes going from 1.5G to 15G of storage size. It looks like something is broken with inc repairs. Most of the time, I get one of the following errors during the repairs: * Repair session 6f6c4ae0-78d6-11e4-9b48-b56034537865 for range (3074457345618258602,-9223372036854775808] failed with error org.apache.cassandra.exceptions.RepairException: [repair #6f6c4ae0-78d6-11e4-9b48-b56034537865 on r1/Standard1, (3074457345618258602,-9223372036854775808]] Sync failed between /127.0.0.1 and /127.0.0.3 * Repair failed with error Did not get positive replies from all endpoints. List of failed endpoint(s): [127.0.0.1] So this issue might be related to CASSANDRA-8316 . I've attached the script I used to reproduce the issue and also 3 result files. was (Author: aboudreault): I have been able to reproduce the issue with 2.1.2 and branch cassandra-2.1. From my tests, the issue seems to be related the parallel incremental repairs. I don't see the issue with full repairs. With full repairs, the storage size increases but everything is fine after a compaction. With incremental repairs, I've seen nodes going from 1.5G to 15G of storage size. It looks like something is broken with inc repairs. Most of the time, I get one of the following errors during the repairs: * Repair session 6f6c4ae0-78d6-11e4-9b48-b56034537865 for range (3074457345618258602,-9223372036854775808] failed with error org.apache.cassandra.exceptions.RepairException: [repair #6f6c4ae0-78d6-11e4-9b48-b56034537865 on r1/Standard1, (3074457345618258602,-9223372036854775808]] Sync failed between /127.0.0.1 and /127.0.0.3 * Repair failed with error Did not get positive replies from all endpoints. List of failed endpoint(s): [127.0.0.1] So this issue might be related to CASSANDRA-8613 . I've attached the script I used to reproduce the issue and also 3 result files. Repair grows data on nodes, causes load to become unbalanced Key: CASSANDRA-8366 URL: https://issues.apache.org/jira/browse/CASSANDRA-8366 Project: Cassandra Issue Type: Bug Environment: 4 node cluster 2.1.2 Cassandra Inserts and reads are done with CQL driver Reporter: Jan Karlsson Assignee: Alan Boudreault Attachments: results-1750_inc_repair.txt, results-500_1_inc_repairs.txt, results-500_2_inc_repairs.txt, results-500_full_repair_then_inc_repairs.txt, results-500_inc_repairs_not_parallel.txt, test.sh There seems to be something weird going on when repairing data. I have a program that runs 2 hours which inserts 250 random numbers and reads 250 times per second. It creates 2 keyspaces with SimpleStrategy and RF of 3. I use size-tiered compaction for my cluster. After those 2 hours I run a repair and the load of all nodes goes up. If I run incremental repair the load goes up alot more. I saw the load shoot up 8 times the original size multiple times with incremental repair. (from 2G to 16G) with node 9 8 7 and 6 the repro procedure looked like this: (Note that running full repair first is not a requirement to reproduce.) After 2 hours of 250 reads + 250 writes per second: UN 9 583.39 MB 256 ? 28220962-26ae-4eeb-8027-99f96e377406 rack1 UN 8 584.01 MB 256 ? f2de6ea1-de88-4056-8fde-42f9c476a090 rack1 UN 7 583.72 MB 256 ? 2b6b5d66-13c8-43d8-855c-290c0f3c3a0b rack1 UN 6 583.84 MB 256 ? b8bd67f1-a816-46ff-b4a4-136ad5af6d4b rack1 Repair -pr -par on all nodes sequentially UN 9 746.29 MB 256 ? 28220962-26ae-4eeb-8027-99f96e377406 rack1 UN 8 751.02 MB 256 ? f2de6ea1-de88-4056-8fde-42f9c476a090 rack1 UN 7 748.89 MB 256 ? 2b6b5d66-13c8-43d8-855c-290c0f3c3a0b rack1 UN 6 758.34 MB 256 ? b8bd67f1-a816-46ff-b4a4-136ad5af6d4b rack1 repair -inc -par on all nodes sequentially UN 9 2.41 GB256 ? 28220962-26ae-4eeb-8027-99f96e377406 rack1 UN 8 2.53 GB256 ? f2de6ea1-de88-4056-8fde-42f9c476a090 rack1 UN 7 2.6 GB 256 ? 2b6b5d66-13c8-43d8-855c-290c0f3c3a0b rack1 UN 6 2.17 GB256 ? b8bd67f1-a816-46ff-b4a4-136ad5af6d4b rack1 after rolling restart UN 9 1.47 GB
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230237#comment-14230237 ] Jonathan Shook commented on CASSANDRA-8371: --- I would be happy to submit a patch that normalized the format of the options, removing suffixes from the names and putting them into the values, but still honoring the current names with logger warnings. We can deprecate them at some point in the future. I believe that many will be doing stress testing on this strategy, and nearly all at a high rate of ingesetion. The use of 0.00069 as a configuration option feels a bit strange. 1 minute feels right. Comments? DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-8399) Reference Counter exception when dropping user type
Philip Thompson created CASSANDRA-8399: -- Summary: Reference Counter exception when dropping user type Key: CASSANDRA-8399 URL: https://issues.apache.org/jira/browse/CASSANDRA-8399 Project: Cassandra Issue Type: Bug Reporter: Philip Thompson Assignee: Marcus Eriksson Fix For: 2.1.3 Attachments: node2.log When running the dtest {{user_types_test.py:TestUserTypes.test_type_keyspace_permission_isolation}} with the current 2.1-HEAD code, very frequently, but not always, when dropping a type, the following exception is seen:{code} ERROR [MigrationStage:1] 2014-12-01 13:54:54,824 CassandraDaemon.java:170 - Exception in thread Thread[MigrationStage:1,5,main] java.lang.AssertionError: Reference counter -1 for /var/folders/v3/z4wf_34n1q506_xjdy49gb78gn/T/dtest-eW2RXj/test/node2/data/system/schema_keyspaces-b0f2235744583cdb9631c43e59ce3676/system-sche ma_keyspaces-ka-14-Data.db at org.apache.cassandra.io.sstable.SSTableReader.releaseReference(SSTableReader.java:1662) ~[main/:na] at org.apache.cassandra.io.sstable.SSTableScanner.close(SSTableScanner.java:164) ~[main/:na] at org.apache.cassandra.utils.MergeIterator.close(MergeIterator.java:62) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore$8.close(ColumnFamilyStore.java:1943) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:2116) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:2029) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1963) ~[main/:na] at org.apache.cassandra.db.SystemKeyspace.serializedSchema(SystemKeyspace.java:744) ~[main/:na] at org.apache.cassandra.db.SystemKeyspace.serializedSchema(SystemKeyspace.java:731) ~[main/:na] at org.apache.cassandra.config.Schema.updateVersion(Schema.java:374) ~[main/:na] at org.apache.cassandra.config.Schema.updateVersionAndAnnounce(Schema.java:399) ~[main/:na] at org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:167) ~[main/:na] at org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:49) ~[main/:na] at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[main/:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_67] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_67] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_67] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_67] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]{code} Log of the node with the error is attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230247#comment-14230247 ] Jonathan Shook commented on CASSANDRA-8371: --- Also, using a different field allows us to require a proper time unit suffix, so the more uniform field names could throw a validation exception with a helpful message. DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-6976) Determining replicas to query is very slow with large numbers of nodes or vnodes
[ https://issues.apache.org/jira/browse/CASSANDRA-6976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230244#comment-14230244 ] Ariel Weisberg commented on CASSANDRA-6976: --- bq. Sure it does - if an action that is likely memory bound (like this one - after all, i The entire thing runs in 60 milliseconds with 2000 tokens. That is 2x the time to warm up the cache (assuming a correct number for warmup). So warming up the cache is definitely impacting the numbers, but not changing it from 100s of milliseconds to 10s. Tack on the time to warm up the last level cache to the current time and still the same order of magnitude. We could do the cache optimization thing and then find out that in practice the cache is not beneficial anyways. bq. For a lookup (i.e. small) table query, or a range query that can be serviced entirely by the local node, it is quite unlikely that the fetching would dominate when talking about timescales = 1ms. Range queries are slow because they produce a lot of ranges. That means contacting a lot of nodes. The cost of getRestrictedRanges is proportional to the cost of getRangeSlice, but still a small part of overall execution time. If the lookup table really only needed to contact one node getRestrictedRanges wouldn't run for long and would return a small set of ranges right? bq. Like I said, please do feel to drop this particular line of enquiry for the moment, ... What your describing is that it's bad in production we just don't see it in test. I don't see a reason to drop it just because the ticket got caught up in implementation details and not the user facing issue we want to address. [~jbellis]? bq. In the meantime it might be worth having a simple short-circuit path for queries that may be answered by the local node only, though. What queries could identify that this shortcut is possible? By nature those queries would only hit one local node if they didn't cover a lot of ranges in which case all the problem code we are discussing runs relatively fast (compared to its worst case). Determining replicas to query is very slow with large numbers of nodes or vnodes Key: CASSANDRA-6976 URL: https://issues.apache.org/jira/browse/CASSANDRA-6976 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Assignee: Ariel Weisberg Labels: performance Attachments: GetRestrictedRanges.java, jmh_output.txt, jmh_output_murmur3.txt, make_jmh_work.patch As described in CASSANDRA-6906, this can be ~100ms for a relatively small cluster with vnodes, which is longer than it will spend in transit on the network. This should be much faster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230247#comment-14230247 ] Jonathan Shook edited comment on CASSANDRA-8371 at 12/1/14 6:59 PM: Also, using a different field allows us to require a proper time unit suffix, so the more uniform field names could throw a validation exception with a helpful message if it wasn't provided. was (Author: jshook): Also, using a different field allows us to require a proper time unit suffix, so the more uniform field names could throw a validation exception with a helpful message. DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8399) Reference Counter exception when dropping user type
[ https://issues.apache.org/jira/browse/CASSANDRA-8399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-8399: --- Since Version: 2.1.3 I'm not finished with the git bisect yet, but I cannot reproduce this on 2.1.2 Reference Counter exception when dropping user type --- Key: CASSANDRA-8399 URL: https://issues.apache.org/jira/browse/CASSANDRA-8399 Project: Cassandra Issue Type: Bug Reporter: Philip Thompson Assignee: Marcus Eriksson Fix For: 2.1.3 Attachments: node2.log When running the dtest {{user_types_test.py:TestUserTypes.test_type_keyspace_permission_isolation}} with the current 2.1-HEAD code, very frequently, but not always, when dropping a type, the following exception is seen:{code} ERROR [MigrationStage:1] 2014-12-01 13:54:54,824 CassandraDaemon.java:170 - Exception in thread Thread[MigrationStage:1,5,main] java.lang.AssertionError: Reference counter -1 for /var/folders/v3/z4wf_34n1q506_xjdy49gb78gn/T/dtest-eW2RXj/test/node2/data/system/schema_keyspaces-b0f2235744583cdb9631c43e59ce3676/system-sche ma_keyspaces-ka-14-Data.db at org.apache.cassandra.io.sstable.SSTableReader.releaseReference(SSTableReader.java:1662) ~[main/:na] at org.apache.cassandra.io.sstable.SSTableScanner.close(SSTableScanner.java:164) ~[main/:na] at org.apache.cassandra.utils.MergeIterator.close(MergeIterator.java:62) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore$8.close(ColumnFamilyStore.java:1943) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.filter(ColumnFamilyStore.java:2116) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:2029) ~[main/:na] at org.apache.cassandra.db.ColumnFamilyStore.getRangeSlice(ColumnFamilyStore.java:1963) ~[main/:na] at org.apache.cassandra.db.SystemKeyspace.serializedSchema(SystemKeyspace.java:744) ~[main/:na] at org.apache.cassandra.db.SystemKeyspace.serializedSchema(SystemKeyspace.java:731) ~[main/:na] at org.apache.cassandra.config.Schema.updateVersion(Schema.java:374) ~[main/:na] at org.apache.cassandra.config.Schema.updateVersionAndAnnounce(Schema.java:399) ~[main/:na] at org.apache.cassandra.db.DefsTables.mergeSchema(DefsTables.java:167) ~[main/:na] at org.apache.cassandra.db.DefinitionsUpdateVerbHandler$1.runMayThrow(DefinitionsUpdateVerbHandler.java:49) ~[main/:na] at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28) ~[main/:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_67] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_67] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_67] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_67] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_67]{code} Log of the node with the error is attached. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230257#comment-14230257 ] Aleksey Yeschenko commented on CASSANDRA-8371: -- You can't view this in isolation from other parameter names used in different places in Cassandra. Whatever you introduce should be consistent with everything else. And we don't do that ('1 minute') anywhere. We provide an option with the minimally useful granularity and use that. FWIW I'm also fine with fractional days - we can switch to that since the options are a text-text map. DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-6976) Determining replicas to query is very slow with large numbers of nodes or vnodes
[ https://issues.apache.org/jira/browse/CASSANDRA-6976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230244#comment-14230244 ] Ariel Weisberg edited comment on CASSANDRA-6976 at 12/1/14 7:08 PM: bq. Sure it does - if an action that is likely memory bound (like this one - after all, i The entire thing runs in 60 milliseconds with 2000 tokens. That is 2x the time to warm up the cache (assuming a correct number for warmup). So warming up the cache is definitely impacting the numbers, but not changing it from 100s of milliseconds to 10s. Tack on the time to warm up the last level cache to the current time and still the same order of magnitude. bq. For a lookup (i.e. small) table query, or a range query that can be serviced entirely by the local node, it is quite unlikely that the fetching would dominate when talking about timescales = 1ms. Range queries are slow because they produce a lot of ranges. That means contacting a lot of nodes. The cost of getRestrictedRanges is proportional to the cost of getRangeSlice, but still a small part of overall execution time. If the lookup table really only needed to contact one node getRestrictedRanges wouldn't run for long and would return a small set of ranges right? bq. Like I said, please do feel to drop this particular line of enquiry for the moment, ... What your describing is that it's bad in production we just don't see it in test. I don't see a reason to drop it just because the ticket got caught up in implementation details and not the user facing issue we want to address. [~jbellis]? bq. In the meantime it might be worth having a simple short-circuit path for queries that may be answered by the local node only, though. What queries could identify that this shortcut is possible? By nature those queries would only hit one local node if they didn't cover a lot of ranges in which case all the problem code we are discussing runs relatively fast (compared to its worst case). was (Author: aweisberg): bq. Sure it does - if an action that is likely memory bound (like this one - after all, i The entire thing runs in 60 milliseconds with 2000 tokens. That is 2x the time to warm up the cache (assuming a correct number for warmup). So warming up the cache is definitely impacting the numbers, but not changing it from 100s of milliseconds to 10s. Tack on the time to warm up the last level cache to the current time and still the same order of magnitude. We could do the cache optimization thing and then find out that in practice the cache is not beneficial anyways. bq. For a lookup (i.e. small) table query, or a range query that can be serviced entirely by the local node, it is quite unlikely that the fetching would dominate when talking about timescales = 1ms. Range queries are slow because they produce a lot of ranges. That means contacting a lot of nodes. The cost of getRestrictedRanges is proportional to the cost of getRangeSlice, but still a small part of overall execution time. If the lookup table really only needed to contact one node getRestrictedRanges wouldn't run for long and would return a small set of ranges right? bq. Like I said, please do feel to drop this particular line of enquiry for the moment, ... What your describing is that it's bad in production we just don't see it in test. I don't see a reason to drop it just because the ticket got caught up in implementation details and not the user facing issue we want to address. [~jbellis]? bq. In the meantime it might be worth having a simple short-circuit path for queries that may be answered by the local node only, though. What queries could identify that this shortcut is possible? By nature those queries would only hit one local node if they didn't cover a lot of ranges in which case all the problem code we are discussing runs relatively fast (compared to its worst case). Determining replicas to query is very slow with large numbers of nodes or vnodes Key: CASSANDRA-6976 URL: https://issues.apache.org/jira/browse/CASSANDRA-6976 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Assignee: Ariel Weisberg Labels: performance Attachments: GetRestrictedRanges.java, jmh_output.txt, jmh_output_murmur3.txt, make_jmh_work.patch As described in CASSANDRA-6906, this can be ~100ms for a relatively small cluster with vnodes, which is longer than it will spend in transit on the network. This should be much faster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8316) Did not get positive replies from all endpoints error on incremental repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8316?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230269#comment-14230269 ] Alan Boudreault commented on CASSANDRA-8316: This issue seems to be effectively critical. I reproduced the issues on all inc repairs while working on CASSANDRA-8366 and have seen very inconsistent results in storage size. Did not get positive replies from all endpoints error on incremental repair -- Key: CASSANDRA-8316 URL: https://issues.apache.org/jira/browse/CASSANDRA-8316 Project: Cassandra Issue Type: Bug Components: Core Environment: cassandra 2.1.2 Reporter: Loic Lambiel Assignee: Alan Boudreault Fix For: 2.1.3 Attachments: CassandraDaemon-2014-11-25-2.snapshot.tar.gz, test.sh Hi, I've got an issue with incremental repairs on our production 15 nodes 2.1.2 (new cluster, not yet loaded, RF=3) After having successfully performed an incremental repair (-par -inc) on 3 nodes, I started receiving Repair failed with error Did not get positive replies from all endpoints. from nodetool on all remaining nodes : [2014-11-14 09:12:36,488] Starting repair command #3, repairing 108 ranges for keyspace (seq=false, full=false) [2014-11-14 09:12:47,919] Repair failed with error Did not get positive replies from all endpoints. All the nodes are up and running and the local system log shows that the repair commands got started and that's it. I've also noticed that soon after the repair, several nodes started having more cpu load indefinitely without any particular reason (no tasks / queries, nothing in the logs). I then restarted C* on these nodes and retried the repair on several nodes, which were successful until facing the issue again. I tried to repro on our 3 nodes preproduction cluster without success It looks like I'm not the only one having this issue: http://www.mail-archive.com/user%40cassandra.apache.org/msg39145.html Any idea? Thanks Loic -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/3] cassandra git commit: Damnit, Carl
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 642487143 - dd1dd8eb7 refs/heads/trunk f5fa97819 - 986b7a603 Damnit, Carl Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd1dd8eb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd1dd8eb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd1dd8eb Branch: refs/heads/cassandra-2.1 Commit: dd1dd8eb76767d4d81feb3d5c35b78a12bb61162 Parents: 6424871 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 13:17:15 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 13:17:15 2014 -0600 -- src/java/org/apache/cassandra/service/StorageService.java | 5 + src/java/org/apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + 3 files changed, 13 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 19b4615..332fbe5 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -3567,6 +3567,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE return operationMode.toString(); } +public boolean isStarting() +{ +return operationMode == Mode.STARTING; +} + public String getDrainProgress() { return String.format(Drained %s/%s ColumnFamilies, remainingCFs, totalCFs); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index e7d6f14..a661b97 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -365,6 +365,9 @@ public interface StorageServiceMBean extends NotificationEmitter /** get the operational mode (leaving, joining, normal, decommissioned, client) **/ public String getOperationMode(); +/** Returns whether the storage service is starting or not */ +public boolean isStarting(); + /** get the progress of a drain operation */ public String getDrainProgress(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/tools/NodeProbe.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 38d0f74..9c9e93d 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -650,6 +650,11 @@ public class NodeProbe implements AutoCloseable return ssProxy.getOperationMode(); } +public boolean isStarting() +{ +return ssProxy.isStarting(); +} + public void truncate(String keyspaceName, String cfName) { try
[3/3] cassandra git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/986b7a60 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/986b7a60 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/986b7a60 Branch: refs/heads/trunk Commit: 986b7a6032938163a429a909065a060cd7cefd8c Parents: f5fa978 dd1dd8e Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 13:17:30 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 13:17:30 2014 -0600 -- src/java/org/apache/cassandra/service/StorageService.java | 5 + src/java/org/apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + 3 files changed, 13 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/986b7a60/src/java/org/apache/cassandra/service/StorageService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/986b7a60/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/986b7a60/src/java/org/apache/cassandra/tools/NodeProbe.java --
[2/3] cassandra git commit: Damnit, Carl
Damnit, Carl Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dd1dd8eb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dd1dd8eb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dd1dd8eb Branch: refs/heads/trunk Commit: dd1dd8eb76767d4d81feb3d5c35b78a12bb61162 Parents: 6424871 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Dec 1 13:17:15 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Dec 1 13:17:15 2014 -0600 -- src/java/org/apache/cassandra/service/StorageService.java | 5 + src/java/org/apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + 3 files changed, 13 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 19b4615..332fbe5 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -3567,6 +3567,11 @@ public class StorageService extends NotificationBroadcasterSupport implements IE return operationMode.toString(); } +public boolean isStarting() +{ +return operationMode == Mode.STARTING; +} + public String getDrainProgress() { return String.format(Drained %s/%s ColumnFamilies, remainingCFs, totalCFs); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index e7d6f14..a661b97 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -365,6 +365,9 @@ public interface StorageServiceMBean extends NotificationEmitter /** get the operational mode (leaving, joining, normal, decommissioned, client) **/ public String getOperationMode(); +/** Returns whether the storage service is starting or not */ +public boolean isStarting(); + /** get the progress of a drain operation */ public String getDrainProgress(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/dd1dd8eb/src/java/org/apache/cassandra/tools/NodeProbe.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 38d0f74..9c9e93d 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -650,6 +650,11 @@ public class NodeProbe implements AutoCloseable return ssProxy.getOperationMode(); } +public boolean isStarting() +{ +return ssProxy.isStarting(); +} + public void truncate(String keyspaceName, String cfName) { try
[jira] [Commented] (CASSANDRA-8390) The process cannot access the file because it is being used by another process
[ https://issues.apache.org/jira/browse/CASSANDRA-8390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230278#comment-14230278 ] Joshua McKenzie commented on CASSANDRA-8390: This might be due to mmap'ed index file access - Windows has some known issues with deleting files that have actively mmap'ed segments live in memory (see CASSANDRA-6993). Given your data file deleted correctly and access violation hit on index, this is the first thing that jumps out to me. If you see the following in your system.log:DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap, adding the following to your conf\cassandra.yaml file might fix this: disk_access_mode: standard Please let me know if the above addresses this and I'll push for the 6993 backport to make it into the next 2.X release. The process cannot access the file because it is being used by another process -- Key: CASSANDRA-8390 URL: https://issues.apache.org/jira/browse/CASSANDRA-8390 Project: Cassandra Issue Type: Bug Reporter: Ilya Komolkin Assignee: Joshua McKenzie 21:46:27.810 [NonPeriodicTasks:1] ERROR o.a.c.service.CassandraDaemon - Exception in thread Thread[NonPeriodicTasks:1,5,main] org.apache.cassandra.io.FSWriteError: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:135) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:121) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTable.delete(SSTable.java:113) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableDeletingTask.run(SSTableDeletingTask.java:94) ~[cassandra-all-2.1.1.jar:2.1.1] at org.apache.cassandra.io.sstable.SSTableReader$6.run(SSTableReader.java:664) ~[cassandra-all-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_71] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) ~[na:1.7.0_71] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_71] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_71] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_71] Caused by: java.nio.file.FileSystemException: E:\Upsource_12391\data\cassandra\data\kernel\filechangehistory_t-a277b560764611e48c8e4915424c75fe\kernel-filechangehistory_t-ka-33-Index.db: The process cannot access the file because it is being used by another process. at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) ~[na:1.7.0_71] at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) ~[na:1.7.0_71] at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) ~[na:1.7.0_71] at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) ~[na:1.7.0_71] at java.nio.file.Files.delete(Files.java:1079) ~[na:1.7.0_71] at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:131) ~[cassandra-all-2.1.1.jar:2.1.1] ... 11 common frames omitted -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-6976) Determining replicas to query is very slow with large numbers of nodes or vnodes
[ https://issues.apache.org/jira/browse/CASSANDRA-6976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230280#comment-14230280 ] Benedict commented on CASSANDRA-6976: - bq. I don't see a reason to drop it just because the ticket got caught up in implementation details and not the user facing issue we want to address. Well, given the test case that originally produced this concern almost certainly had the same methodology you had, I suspect you did indeed track down the problem to a non-warm JVM bq. The entire thing runs in 60 milliseconds with 2000 tokens. That is 2x the time to warm up the cache (assuming a correct number for warmup). You're assuming that (1) the cache stays warm in normal operation and (2) that the warmup figures you have are for similar data distributions and (3) the warmup is simply a matter of presence in cache, rather than likelihood of eviction (4) all this behaviour has no negative impact outside of the method itself. But, like I said, I agree it won't likely make an order of magnitude difference by itself. Especially not with current state of C*. bq. Range queries are slow because they produce a lot of ranges. Did we determine that if the _result_ is a narrow range the performance is significantly faster? Because this stemmed from a situation where the entire contents were known to be node-local (because the data was local only, it wasn't actually distributed). I wouldn't be at all surprised if it was fine, given the likely cause you tracked down, but I don't think we actually demonstrated that? bq. What queries could identify that this shortcut is possible? I am referring here to the more general case of getLiveSortedEndpoints, which is used much more widely. But, like I said, I raised this largely because of a general bugging that this whole area of code has many inefficiencies, not because it is likely they really matter. The only thing actionable is that we *should* take steps to ensure our default (and common) test and benchmark configs more accurately represent real cluster configs because we simply do not exercise these codepaths right now from a performance perspective. Determining replicas to query is very slow with large numbers of nodes or vnodes Key: CASSANDRA-6976 URL: https://issues.apache.org/jira/browse/CASSANDRA-6976 Project: Cassandra Issue Type: Bug Components: Core Reporter: Benedict Assignee: Ariel Weisberg Labels: performance Attachments: GetRestrictedRanges.java, jmh_output.txt, jmh_output_murmur3.txt, make_jmh_work.patch As described in CASSANDRA-6906, this can be ~100ms for a relatively small cluster with vnodes, which is longer than it will spend in transit on the network. This should be much faster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8371) DateTieredCompactionStrategy is always compacting
[ https://issues.apache.org/jira/browse/CASSANDRA-8371?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14230287#comment-14230287 ] Jonathan Shook commented on CASSANDRA-8371: --- If we are to hold to the idea of minimally useful granularity, then we haven't reached that point with DTCS yet. The only backwards-compatible change that provides something workable is in-fact inconsistent with the parameter conventions. That's the rub. I am advocating that we fix it in some useful way while it is still early, in order to avoid having to deal with 0.00069 and the like from now on. My suggestion for suffixes was just base on my own wishes for something that was consistent, obvious, and easy to use. My assertion is essentially that sub 1 day max times will be more common than initially assumed. Regarding repairs, I do not feel comfortable with the notion that the value has to always be high enough for repair to see it before the max age. There is no guarantee of that. If there is repair involvement, then it should be handled as orthogonally as possible. What bad things are we concerned about happening if repair has to supplement one of these files after the max age? DateTieredCompactionStrategy is always compacting -- Key: CASSANDRA-8371 URL: https://issues.apache.org/jira/browse/CASSANDRA-8371 Project: Cassandra Issue Type: Bug Components: Core Reporter: mck Assignee: Björn Hegerfors Labels: compaction, performance Attachments: java_gc_counts_rate-month.png, read-latency-recommenders-adview.png, read-latency.png, sstables-recommenders-adviews.png, sstables.png, vg2_iad-month.png Running 2.0.11 and having switched a table to [DTCS|https://issues.apache.org/jira/browse/CASSANDRA-6602] we've seen that disk IO and gc count increase, along with the number of reads happening in the compaction hump of cfhistograms. Data, and generally performance, looks good, but compactions are always happening, and pending compactions are building up. The schema for this is {code}CREATE TABLE search ( loginid text, searchid timeuuid, description text, searchkey text, searchurl text, PRIMARY KEY ((loginid), searchid) );{code} We're sitting on about 82G (per replica) across 6 nodes in 4 DCs. CQL executed against this keyspace, and traffic patterns, can be seen in slides 7+8 of https://prezi.com/b9-aj6p2esft/ Attached are sstables-per-read and read-latency graphs from cfhistograms, and screenshots of our munin graphs as we have gone from STCS, to LCS (week ~44), to DTCS (week ~46). These screenshots are also found in the prezi on slides 9-11. [~pmcfadin], [~Bj0rn], Can this be a consequence of occasional deleted rows, as is described under (3) in the description of CASSANDRA-6602 ? -- This message was sent by Atlassian JIRA (v6.3.4#6332)