[jira] [Created] (CASSANDRA-9094) Check for fully expired sstables more often
Marcus Eriksson created CASSANDRA-9094: -- Summary: Check for fully expired sstables more often Key: CASSANDRA-9094 URL: https://issues.apache.org/jira/browse/CASSANDRA-9094 Project: Cassandra Issue Type: Improvement Reporter: Marcus Eriksson Priority: Minor Fix For: 3.0 CASSANDRA-8359 added an extra check for expired sstables to DTCS since that is where it is most likely to happen. We should refactor this a bit and check more often for all compaction strategies (and avoid checking twice like we do now with DTCS). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8102) cassandra-cli and cqlsh report two different values for a setting, partially update it and partially report it
[ https://issues.apache.org/jira/browse/CASSANDRA-8102?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392430#comment-14392430 ] Marcus Eriksson commented on CASSANDRA-8102: looks like a bug to me cassandra-cli and cqlsh report two different values for a setting, partially update it and partially report it -- Key: CASSANDRA-8102 URL: https://issues.apache.org/jira/browse/CASSANDRA-8102 Project: Cassandra Issue Type: Bug Environment: 2.0.9 Reporter: Peter Haggerty Priority: Minor Labels: cli, cqlsh Fix For: 2.0.15 cassandra-cli updates and prints out a min_compaction_threshold that is not shown by cqlsh (it shows a different min_threshold attribute) cqlsh updates both values but only shows one of them {code} cassandra-cli: UPDATE COLUMN FAMILY foo WITH min_compaction_threshold = 8; $ echo describe foo; | cassandra-cli -h `hostname` -k bar Compaction min/max thresholds: 8/32 $ echo describe table foo; | cqlsh -k bar `hostname` compaction={'class': 'SizeTieredCompactionStrategy'} AND {code} {code} cqlsh: ALTER TABLE foo WITH compaction = {'class' : 'SizeTieredCompactionStrategy', 'min_threshold' : 16}; cassandra-cli: Compaction min/max thresholds: 16/32 Compaction Strategy Options: min_threshold: 16 cqlsh: compaction={'min_threshold': '16', 'class': 'SizeTieredCompactionStrategy'} AND {code} {code} cassandra-cli: UPDATE COLUMN FAMILY foo WITH min_compaction_threshold = 8; cassandra-cli: Compaction min/max thresholds: 8/32 Compaction Strategy Options: min_threshold: 16 cqlsh: compaction={'min_threshold': '16', 'class': 'SizeTieredCompactionStrategy'} AND {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8986) Major cassandra-stress refactor
[ https://issues.apache.org/jira/browse/CASSANDRA-8986?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392469#comment-14392469 ] Benedict commented on CASSANDRA-8986: - One more thing it should consider is the ability to efficiently compute multiple different projections of the same dataset, so that Global Indexes can be probed Major cassandra-stress refactor --- Key: CASSANDRA-8986 URL: https://issues.apache.org/jira/browse/CASSANDRA-8986 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Benedict Assignee: Benedict We need a tool for both stressing _and_ validating more complex workloads than stress currently supports. Stress needs a raft of changes, and I think it would be easier to deliver many of these as a single major endeavour which I think is justifiable given its audience. The rough behaviours I want stress to support are: * Ability to know exactly how many rows it will produce, for any clustering prefix, without generating those prefixes * Ability to generate an amount of data proportional to the amount it will produce to the server (or consume from the server), rather than proportional to the variation in clustering columns * Ability to reliably produce near identical behaviour each run * Ability to understand complex overlays of operation types (LWT, Delete, Expiry, although perhaps not all implemented immediately, the framework for supporting them easily) * Ability to (with minimal internal state) understand the complete cluster state through overlays of multiple procedural generations * Ability to understand the in-flight state of in-progress operations (i.e. if we're applying a delete, understand that the delete may have been applied, and may not have been, for potentially multiple conflicting in flight operations) I think the necessary changes to support this would give us the _functional_ base to support all the functionality I can currently envisage stress needing. Before embarking on this (which I may attempt very soon), it would be helpful to get input from others as to features missing from stress that I haven't covered here that we will certainly want in the future, so that they can be factored in to the overall design and hopefully avoid another refactor one year from now, as its complexity is scaling each time, and each time it is a higher sunk cost. [~jbellis] [~iamaleksey] [~slebresne] [~tjake] [~enigmacurry] [~aweisberg] [~blambov] [~jshook] ... and @everyone else :) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8359) Make DTCS consider removing SSTables much more frequently
[ https://issues.apache.org/jira/browse/CASSANDRA-8359?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Marcus Eriksson updated CASSANDRA-8359: --- Fix Version/s: 2.0.15 3.0 Make DTCS consider removing SSTables much more frequently - Key: CASSANDRA-8359 URL: https://issues.apache.org/jira/browse/CASSANDRA-8359 Project: Cassandra Issue Type: Improvement Reporter: Björn Hegerfors Assignee: Björn Hegerfors Priority: Minor Fix For: 3.0, 2.0.15, 2.1.5 Attachments: cassandra-2.0-CASSANDRA-8359.txt When I run DTCS on a table where every value has a TTL (always the same TTL), SSTables are completely expired, but still stay on disk for much longer than they need to. I've applied CASSANDRA-8243, but it doesn't make an apparent difference (probably because the subject SSTables are purged via compaction anyway, if not by directly dropping them). Disk size graphs show clearly that tombstones are only removed when the oldest SSTable participates in compaction. In the long run, size on disk continually grows bigger. This should not have to happen. It should easily be able to stay constant, thanks to DTCS separating the expired data from the rest. I think checks for whether SSTables can be dropped should happen much more frequently. This is something that probably only needs to be tweaked for DTCS, but perhaps there's a more general place to put this. Anyway, my thinking is that DTCS should, on every call to getNextBackgroundTask, check which SSTables can be dropped. It would be something like a call to CompactionController.getFullyExpiredSSTables with all non-compactingSSTables sent in as compacting and all other SSTables sent in as overlapping. The returned SSTables, if any, are then added to whichever set of SSTables that DTCS decides to compact. Then before the compaction happens, Cassandra is going to make another call to CompactionController.getFullyExpiredSSTables, where it will see that it can just drop them. This approach has a bit of redundancy in that it needs to call CompactionController.getFullyExpiredSSTables twice. To avoid that, the code path for deciding SSTables to drop would have to be changed. (Side tracking a little here: I'm also thinking that tombstone compactions could be considered more often in DTCS. Maybe even some kind of multi-SSTable tombstone compaction involving the oldest couple of SSTables...) -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-8276) Duplicate values in an IN restriction on the partition key column can break paging
[ https://issues.apache.org/jira/browse/CASSANDRA-8276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer resolved CASSANDRA-8276. --- Resolution: Fixed Duplicate values in an IN restriction on the partition key column can break paging -- Key: CASSANDRA-8276 URL: https://issues.apache.org/jira/browse/CASSANDRA-8276 Project: Cassandra Issue Type: Bug Environment: Cassandra 2.0.10 Java driver 2.0.8-SNAPSHOT Reporter: Pierre Laporte Assignee: Benjamin Lerer Fix For: 3.0 We had an issue ([JAVA-515|https://datastax-oss.atlassian.net/browse/JAVA-515]) in the java-driver when the number of parameters in a statement is greater than the supported limit (65k). I added a limit-test to verify that prepared statements with 65535 parameters were accepted by the driver, but ran into an issue on the Cassandra side. Basically, the test runs forever, because the driver receives an inconsistent answer from Cassandra. When we prepare the statement, C* answers that it is correctly prepared, however when we try to execute it, we receive a {{UNPREPARED}} answer. [Here is the code|https://github.com/datastax/java-driver/blob/JAVA-515/driver-core/src/test/java/com/datastax/driver/core/PreparedStatementTest.java#L448] to reproduce the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8276) Duplicate values in an IN restriction on the partition key column can break paging
[ https://issues.apache.org/jira/browse/CASSANDRA-8276?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-8276: -- Fix Version/s: (was: 2.1.5) 3.0 Summary: Duplicate values in an IN restriction on the partition key column can break paging (was: Unusable prepared statement with 65k parameters) Duplicate values in an IN restriction on the partition key column can break paging -- Key: CASSANDRA-8276 URL: https://issues.apache.org/jira/browse/CASSANDRA-8276 Project: Cassandra Issue Type: Bug Environment: Cassandra 2.0.10 Java driver 2.0.8-SNAPSHOT Reporter: Pierre Laporte Assignee: Benjamin Lerer Fix For: 3.0 We had an issue ([JAVA-515|https://datastax-oss.atlassian.net/browse/JAVA-515]) in the java-driver when the number of parameters in a statement is greater than the supported limit (65k). I added a limit-test to verify that prepared statements with 65535 parameters were accepted by the driver, but ran into an issue on the Cassandra side. Basically, the test runs forever, because the driver receives an inconsistent answer from Cassandra. When we prepare the statement, C* answers that it is correctly prepared, however when we try to execute it, we receive a {{UNPREPARED}} answer. [Here is the code|https://github.com/datastax/java-driver/blob/JAVA-515/driver-core/src/test/java/com/datastax/driver/core/PreparedStatementTest.java#L448] to reproduce the issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9095) Compressed commit log should measure compressed space used
Branimir Lambov created CASSANDRA-9095: -- Summary: Compressed commit log should measure compressed space used Key: CASSANDRA-9095 URL: https://issues.apache.org/jira/browse/CASSANDRA-9095 Project: Cassandra Issue Type: Improvement Reporter: Branimir Lambov Assignee: Branimir Lambov Priority: Minor The commit log compression option introduced in CASSANDRA-6809 does not change the way space use is measure by the commitlog, meaning that it still measures the amount of space taken by the log segments before compression. It should measure the space taken on disk which in this case is the compressed amount. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392398#comment-14392398 ] Sergey Maznichenko commented on CASSANDRA-9092: --- Java heap is selected automatically in cassandra-env.sh. I tried to set MAX_HEAP_SIZE=8G, NEW_HEAP_SIZE=800M, but it didn't help. nodetool disableautocompaction - didn't help, compactions continue after restart node. nodetool truncatehints - didn't help, it showed message like 'cannot stop running hint compaction'. One of nodes had ~24000 files in system\hints-..., I stepped node and deleted them, it helps and node is running about 10 hours. Other node has 18154 files in system\hints-... (~1.1TB) and has the same problem, I leave it for experiments. Workload: 20-40 processes on application servers, each one performs loading files in blobs (one big table), size of each file is about 3.5MB, key - UUID. CREATE KEYSPACE filespace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1', 'DC2': '1'} AND durable_writes = true; CREATE TABLE filespace.filestorage ( key text, filename text, value blob, PRIMARY KEY (key, chunk) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (chunk ASC) AND bloom_filter_fp_chance = 0.01 AND caching = '{keys:ALL, rows_per_partition:NONE}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; nodetool status filespace Datacenter: DC1 === Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.X.X.12 4.82 TB256 28.0% 25cefe6a-a9b1-4b30-839d-46ed5f4736cc RAC1 UN 10.X.X.13 3.98 TB256 22.9% ef439686-1e8f-4b31-9c42-f49ff7a8b537 RAC1 UN 10.X.X.10 4.52 TB256 26.1% a11f52a6-1bff-4b47-bfa9-628a55a058dc RAC1 UN 10.X.X.11 4.01 TB256 23.1% 0f454fa7-5cdf-45b3-bf2d-729ab7bd9e52 RAC1 Datacenter: DC2 === Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.X.X.137 4.64 TB256 22.6% e184cc42-7cd9-4e2e-bd0d-55a6a62f69dd RAC1 UN 10.X.X.136 1.25 TB256 27.2% c8360341-83e0-4778-b2d4-3966f083151b RAC1 DN 10.X.X.139 4.81 TB256 25.8% 1f434cfe-6952-4d41-8fc5-780a18e64963 RAC1 UN 10.X.X.138 3.69 TB256 24.4% b7467041-05d9-409f-a59a-438d0a29f6a7 RAC1 I need some workaround to prevent this situation with hints. How we use dafault values for: hinted_handoff_enabled: 'true' max_hints_delivery_threads: 2 max_hint_window_in_ms: 1080 hinted_handoff_throttle_in_kb: 1024 Should I disable hints or increase number of threads and throughput? For example: hinted_handoff_enabled: 'true' max_hints_delivery_threads: 20 max_hint_window_in_ms: 10800 hinted_handoff_throttle_in_kb: 10240 Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/2] cassandra git commit: Make it possible to major compact LCS
Make it possible to major compact LCS Patch by marcuse; reviewed by carlyeks for CASSANDRA-7272 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/910170c9 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/910170c9 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/910170c9 Branch: refs/heads/trunk Commit: 910170c9d10bb6a71922a529b2f070cf27891a10 Parents: 86f51fd Author: Marcus Eriksson marc...@apache.org Authored: Fri Jan 9 15:18:26 2015 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Thu Apr 2 09:56:19 2015 +0200 -- CHANGES.txt | 1 + NEWS.txt| 8 + .../apache/cassandra/db/ColumnFamilyStore.java | 8 +- .../cassandra/db/ColumnFamilyStoreMBean.java| 4 +- .../org/apache/cassandra/db/DataTracker.java| 7 +- .../compaction/AbstractCompactionStrategy.java | 2 +- .../db/compaction/AbstractCompactionTask.java | 13 +- .../db/compaction/CompactionManager.java| 13 +- .../cassandra/db/compaction/CompactionTask.java | 112 -- .../DateTieredCompactionStrategy.java | 2 +- .../compaction/LeveledCompactionStrategy.java | 41 ++-- .../db/compaction/LeveledCompactionTask.java| 16 +- .../db/compaction/LeveledManifest.java | 17 +- .../db/compaction/SSTableSplitter.java | 7 +- .../SizeTieredCompactionStrategy.java | 21 +- .../compaction/WrappingCompactionStrategy.java | 6 +- .../writers/CompactionAwareWriter.java | 97 .../writers/DefaultCompactionWriter.java| 85 +++ .../writers/MajorLeveledCompactionWriter.java | 120 ++ .../writers/MaxSSTableSizeWriter.java | 102 + .../SplittingSizeTieredCompactionWriter.java| 135 +++ .../io/sstable/metadata/MetadataCollector.java | 20 +- .../cassandra/service/StorageService.java | 4 +- .../cassandra/service/StorageServiceMBean.java | 2 +- .../org/apache/cassandra/tools/NodeProbe.java | 4 +- .../org/apache/cassandra/tools/NodeTool.java| 5 +- .../db/compaction/LongCompactionsTest.java | 2 +- .../LongLeveledCompactionStrategyTest.java | 4 +- .../org/apache/cassandra/db/KeyspaceTest.java | 2 +- .../apache/cassandra/db/RangeTombstoneTest.java | 6 +- .../compaction/CompactionAwareWriterTest.java | 222 +++ .../db/compaction/CompactionsPurgeTest.java | 6 +- .../db/compaction/CompactionsTest.java | 2 +- .../db/compaction/OneCompactionTest.java| 2 +- .../cassandra/io/sstable/SSTableReaderTest.java | 12 +- 35 files changed, 951 insertions(+), 159 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/910170c9/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index c2a23e5..bda5bb7 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0 + * Make it possible to major compact LCS (CASSANDRA-7272) * Make FunctionExecutionException extend RequestExecutionException (CASSANDRA-9055) * Add support for SELECT JSON, INSERT JSON syntax and new toJson(), fromJson() http://git-wip-us.apache.org/repos/asf/cassandra/blob/910170c9/NEWS.txt -- diff --git a/NEWS.txt b/NEWS.txt index 94e225b..7db07f0 100644 --- a/NEWS.txt +++ b/NEWS.txt @@ -18,6 +18,14 @@ using the provided 'sstableupgrade' tool. New features + - It is now possible to do major compactions when using leveled compaction. + Doing that will take all sstables and compact them out in levels. The + levels will be non overlapping so doing this will still not be something + you want to do very often since it might cause more compactions for a while. + It is also possible to split output when doing a major compaction with + STCS - files will be split in sizes 50%, 25%, 12.5% etc of the total size. + This might be a bit better than old major compactions which created one big + file on disk. - A new tool has been added bin/sstableverify that checks for errors/bitrot in all sstables. Unlike scrub, this is a non-invasive tool. - Authentication Authorization APIs have been updated to introduce http://git-wip-us.apache.org/repos/asf/cassandra/blob/910170c9/src/java/org/apache/cassandra/db/ColumnFamilyStore.java -- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index ca77954..2e3355b 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++
[1/2] cassandra git commit: Make it possible to major compact LCS
Repository: cassandra Updated Branches: refs/heads/trunk 86f51fd4f - 910170c9d http://git-wip-us.apache.org/repos/asf/cassandra/blob/910170c9/test/unit/org/apache/cassandra/db/compaction/CompactionAwareWriterTest.java -- diff --git a/test/unit/org/apache/cassandra/db/compaction/CompactionAwareWriterTest.java b/test/unit/org/apache/cassandra/db/compaction/CompactionAwareWriterTest.java new file mode 100644 index 000..ac12491 --- /dev/null +++ b/test/unit/org/apache/cassandra/db/compaction/CompactionAwareWriterTest.java @@ -0,0 +1,222 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.cassandra.db.compaction; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import com.google.common.primitives.Longs; +import org.junit.BeforeClass; +import org.junit.Test; + +import org.apache.cassandra.SchemaLoader; +import org.apache.cassandra.Util; +import org.apache.cassandra.config.KSMetaData; +import org.apache.cassandra.db.Cell; +import org.apache.cassandra.db.ColumnFamily; +import org.apache.cassandra.db.ColumnFamilyStore; +import org.apache.cassandra.db.DecoratedKey; +import org.apache.cassandra.db.Keyspace; +import org.apache.cassandra.db.Mutation; +import org.apache.cassandra.db.compaction.writers.CompactionAwareWriter; +import org.apache.cassandra.db.compaction.writers.DefaultCompactionWriter; +import org.apache.cassandra.db.compaction.writers.MajorLeveledCompactionWriter; +import org.apache.cassandra.db.compaction.writers.MaxSSTableSizeWriter; +import org.apache.cassandra.db.compaction.writers.SplittingSizeTieredCompactionWriter; +import org.apache.cassandra.db.filter.QueryFilter; +import org.apache.cassandra.exceptions.ConfigurationException; +import org.apache.cassandra.io.sstable.ISSTableScanner; +import org.apache.cassandra.io.sstable.format.SSTableReader; +import org.apache.cassandra.locator.SimpleStrategy; +import org.apache.cassandra.utils.ByteBufferUtil; +import static org.junit.Assert.assertEquals; + +public class CompactionAwareWriterTest +{ +private static String KEYSPACE1 = CompactionAwareWriterTest; +private static String CF = Standard1; + +@BeforeClass +public static void defineSchema() throws ConfigurationException +{ +SchemaLoader.prepareServer(); +SchemaLoader.createKeyspace(KEYSPACE1, +SimpleStrategy.class, +KSMetaData.optsWithRF(1), +SchemaLoader.standardCFMD(KEYSPACE1, CF)); + +} +@Test +public void testDefaultCompactionWriter() +{ +Keyspace ks = Keyspace.open(KEYSPACE1); +ColumnFamilyStore cfs = ks.getColumnFamilyStore(CF); +int rowCount = 1000; +cfs.disableAutoCompaction(); +populate(cfs, rowCount); +SetSSTableReader sstables = new HashSet(cfs.getSSTables()); +long beforeSize = sstables.iterator().next().onDiskLength(); +CompactionAwareWriter writer = new DefaultCompactionWriter(cfs, sstables, sstables, false, OperationType.COMPACTION); +int rows = compact(cfs, sstables, writer); +assertEquals(1, cfs.getSSTables().size()); +assertEquals(rowCount, rows); +assertEquals(beforeSize, cfs.getSSTables().iterator().next().onDiskLength()); +validateData(cfs, rowCount); +cfs.truncateBlocking(); +} + +@Test +public void testMaxSSTableSizeWriter() +{ +Keyspace ks = Keyspace.open(KEYSPACE1); +ColumnFamilyStore cfs = ks.getColumnFamilyStore(CF); +cfs.disableAutoCompaction(); +int rowCount = 1000; +populate(cfs, rowCount); +SetSSTableReader sstables = new HashSet(cfs.getSSTables()); +long beforeSize = sstables.iterator().next().onDiskLength(); +int sstableCount = (int)beforeSize/10; +CompactionAwareWriter writer = new MaxSSTableSizeWriter(cfs, sstables, sstables, sstableCount, 0, false,
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393337#comment-14393337 ] Roman Tkachenko commented on CASSANDRA-9045: Okay, thanks for letting me know! Nope, there were no compactions around that time. I ran repair on this node earlier this morning but the queries were performed some time after it was done. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-6559) cqlsh should warn about ALLOW FILTERING
[ https://issues.apache.org/jira/browse/CASSANDRA-6559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-6559: --- Reviewer: Tyler Hobbs cqlsh should warn about ALLOW FILTERING --- Key: CASSANDRA-6559 URL: https://issues.apache.org/jira/browse/CASSANDRA-6559 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Tupshin Harper Priority: Minor Labels: cqlsh Fix For: 2.0.15 Attachments: CASSANDRA-6559.txt ALLOW FILTERING can be a convenience for preliminary exploration of your data, and can be useful for batch jobs, but it is such an anti-pattern for regular production queries, that cqlsh should provie an explicit warn ingwhenever such a query is performed. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8915) Improve MergeIterator performance
[ https://issues.apache.org/jira/browse/CASSANDRA-8915?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393517#comment-14393517 ] Benedict commented on CASSANDRA-8915: - Suggestion: convert each Candidate into a linked-list of colliding iterators, so that consume() becomes guaranteed O(1). In the event of many equal items, this would incur only linear costs, and only on push down, rather than logarithmic costs on both push down and advance. This would particularly help the partition level (sstable/memtable) merge, as we are likely to encounter the same DecoratedKey many times. Improve MergeIterator performance - Key: CASSANDRA-8915 URL: https://issues.apache.org/jira/browse/CASSANDRA-8915 Project: Cassandra Issue Type: Improvement Reporter: Branimir Lambov Assignee: Branimir Lambov Priority: Minor The implementation of {{MergeIterator}} uses a priority queue and applies a pair of {{poll}}+{{add}} operations for every item in the resulting sequence. This is quite inefficient as {{poll}} necessarily applies at least {{log N}} comparisons (up to {{2log N}}), and {{add}} often requires another {{log N}}, for example in the case where the inputs largely don't overlap (where {{N}} is the number of iterators being merged). This can easily be replaced with a simple custom structure that can perform replacement of the top of the queue in a single step, which will very often complete after a couple of comparisons and in the worst case scenarios will match the complexity of the current implementation. This should significantly improve merge performance for iterators with limited overlap (e.g. levelled compaction). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9107) More accurate row count estimates
Chris Lohfink created CASSANDRA-9107: Summary: More accurate row count estimates Key: CASSANDRA-9107 URL: https://issues.apache.org/jira/browse/CASSANDRA-9107 Project: Cassandra Issue Type: Improvement Reporter: Chris Lohfink Attachments: 9107-cassandra2-1.patch Currently the estimated row count from cfstats is the sum of the number of rows in all the sstables. This becomes very inaccurate with wide rows or heavily updated datasets since the same partition would exist in many sstables. In example: {code} create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; create TABLE wide (key text PRIMARY KEY , value text) WITH compaction = {'class': 'SizeTieredCompactionStrategy', 'min_threshold': 30, 'max_threshold': 100} ; --- insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 1 (128 in older version from index) insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 2 (256 in older version from index) ... etc {code} previously it used the index but it still did it per sstable and summed them up which became inaccurate as there are more sstables (just by much worse). With new versions of sstables we can merge the cardinalities to resolve this with a slight hit to accuracy in the case of every sstable having completely unique partitions. Furthermore I think it would be pretty minimal effort to include the number of rows in the memtables to this count. We wont have the cardinality merging between memtables and sstables but I would consider that a relatively minor negative. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-9107) More accurate row count estimates
[ https://issues.apache.org/jira/browse/CASSANDRA-9107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Lohfink reassigned CASSANDRA-9107: Assignee: Chris Lohfink More accurate row count estimates - Key: CASSANDRA-9107 URL: https://issues.apache.org/jira/browse/CASSANDRA-9107 Project: Cassandra Issue Type: Improvement Reporter: Chris Lohfink Assignee: Chris Lohfink Attachments: 9107-cassandra2-1.patch Currently the estimated row count from cfstats is the sum of the number of rows in all the sstables. This becomes very inaccurate with wide rows or heavily updated datasets since the same partition would exist in many sstables. In example: {code} create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; create TABLE wide (key text PRIMARY KEY , value text) WITH compaction = {'class': 'SizeTieredCompactionStrategy', 'min_threshold': 30, 'max_threshold': 100} ; --- insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 1 (128 in older version from index) insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 2 (256 in older version from index) ... etc {code} previously it used the index but it still did it per sstable and summed them up which became inaccurate as there are more sstables (just by much worse). With new versions of sstables we can merge the cardinalities to resolve this with a slight hit to accuracy in the case of every sstable having completely unique partitions. Furthermore I think it would be pretty minimal effort to include the number of rows in the memtables to this count. We wont have the cardinality merging between memtables and sstables but I would consider that a relatively minor negative. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Issue Comment Deleted] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-9045: --- Comment: was deleted (was: [~r0mant] we're currently working on reproducing the issue. Thanks for the additional info! That's pretty odd. I presume that there were no compactions for that table on 173.203.37.151 around the time of those queries?) Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393277#comment-14393277 ] Tyler Hobbs commented on CASSANDRA-9045: [~r0mant] we're currently working on reproducing the issue. Thanks for the additional info! That's pretty odd. I presume that there were no compactions for that table on 173.203.37.151 around the time of those queries? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393278#comment-14393278 ] Tyler Hobbs commented on CASSANDRA-9045: [~r0mant] we're currently working on reproducing the issue. Thanks for the additional info! That's pretty odd. I presume that there were no compactions for that table on 173.203.37.151 around the time of those queries? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- 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=14393360#comment-14393360 ] Aleksey Yeschenko commented on CASSANDRA-7688: -- You probably just have schema left from running 2.1-head. 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 Assignee: Aleksey Yeschenko Fix For: 2.1.5 Attachments: 7688.txt 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] [Updated] (CASSANDRA-8238) NPE in SizeTieredCompactionStrategy.filterColdSSTables
[ https://issues.apache.org/jira/browse/CASSANDRA-8238?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-8238: --- Fix Version/s: 2.0.15 NPE in SizeTieredCompactionStrategy.filterColdSSTables -- Key: CASSANDRA-8238 URL: https://issues.apache.org/jira/browse/CASSANDRA-8238 Project: Cassandra Issue Type: Bug Components: Core Reporter: Tyler Hobbs Assignee: Marcus Eriksson Fix For: 2.0.15, 2.1.5 Attachments: 0001-assert-that-readMeter-is-not-null.patch, 0001-dont-always-set-client-mode-for-sstable-loader.patch {noformat} ERROR [CompactionExecutor:15] 2014-10-31 15:28:32,318 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:15,1,main] java.lang.NullPointerException: null at org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.filterColdSSTables(SizeTieredCompactionStrategy.java:181) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.getNextBackgroundSSTables(SizeTieredCompactionStrategy.java:83) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy.getNextBackgroundTask(SizeTieredCompactionStrategy.java:267) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.db.compaction.CompactionManager$BackgroundCompactionTask.run(CompactionManager.java:226) ~[apache-cassandra-2.1.1.jar:2.1.1] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_72] at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[na:1.7.0_72] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_72] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_72] at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72] {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393552#comment-14393552 ] Tyler Hobbs commented on CASSANDRA-9045: [~r0mant] since we're having no luck reproducing the issue, would you be willing to deploy a patched version of 2.0.13 with additional tracing entries if we create a patch? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393568#comment-14393568 ] Roman Tkachenko commented on CASSANDRA-9045: Also, what is the digest mismatch that I'm getting in some tracing query logs? Can it be the reason of this weird behavior? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Roman Tkachenko updated CASSANDRA-9045: --- Attachment: inconsistency.txt Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9105) JMX APIs appear untested
Ariel Weisberg created CASSANDRA-9105: - Summary: JMX APIs appear untested Key: CASSANDRA-9105 URL: https://issues.apache.org/jira/browse/CASSANDRA-9105 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Anything supported via JMX is part of the public API of the database. Node tool uses JMX but doesn't seem to have its own unit test and the dtest nodetool_test.py is pretty sparse. For values returned by JMX for the purposes of reporting we should test as best we can that we are getting real values end to end. Occasionally metrics end up with no values, or values in the wrong units. For commands going the other direction they should be exercised. There is probably a lot of coverage of commands since they may be used when testing the features those commands are a part of so no need for duplication there. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7557) User permissions for UDFs
[ https://issues.apache.org/jira/browse/CASSANDRA-7557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-7557: --- Reviewer: Tyler Hobbs User permissions for UDFs - Key: CASSANDRA-7557 URL: https://issues.apache.org/jira/browse/CASSANDRA-7557 Project: Cassandra Issue Type: Sub-task Components: Core Reporter: Tyler Hobbs Assignee: Sam Tunnicliffe Labels: client-impacting, cql, udf Fix For: 3.0 We probably want some new permissions for user defined functions. Most RDBMSes split function permissions roughly into {{EXECUTE}} and {{CREATE}}/{{ALTER}}/{{DROP}} permissions. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9092: --- Assignee: Sam Tunnicliffe Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Assignee: Sam Tunnicliffe Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space ERROR [HintedHandoff:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[HintedHandoff:1,1,main] java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Issue Comment Deleted] (CASSANDRA-8991) CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does.
[ https://issues.apache.org/jira/browse/CASSANDRA-8991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ulises Cervino Beresi updated CASSANDRA-8991: - Comment: was deleted (was: Can this patch be backported to 2.0 please?) CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. - Key: CASSANDRA-8991 URL: https://issues.apache.org/jira/browse/CASSANDRA-8991 Project: Cassandra Issue Type: Bug Components: Core Reporter: Ulises Cervino Beresi Assignee: Ulises Cervino Beresi Priority: Minor Fix For: 2.0.15, 2.1.5 Attachments: CASSANDRA-2.0.13-8991.txt CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[Cassandra Wiki] Update of ThirdPartySupport by AlekseyYeschenko
Dear Wiki user, You have subscribed to a wiki page or wiki category on Cassandra Wiki for change notification. The ThirdPartySupport page has been changed by AlekseyYeschenko: https://wiki.apache.org/cassandra/ThirdPartySupport?action=diffrev1=44rev2=45 == Companies that employ Apache Cassandra Committers: == - {{http://www.datastax.com/wp-content/themes/datastax-2014-08/images/common/logo.png}} [[http://datastax.com|Datastax]], the commercial leader in Apache Cassandra™ offers products and services that make it easy for customers to build, deploy and operate elastically scalable and cloud-optimized applications and data services. [[http://datastax.com|DataStax]] has over 100 customers, including leaders such as Netflix, Cisco, Rackspace, HP, Constant Contact and [[http://www.datastax.com/cassandrausers|more]], and spanning verticals including web, financial services, telecommunications, logistics and government. + {{ https://upload.wikimedia.org/wikipedia/en/d/d3/Datastax_Logo.png }} [[http://datastax.com|Datastax]], the commercial leader in Apache Cassandra™ offers products and services that make it easy for customers to build, deploy and operate elastically scalable and cloud-optimized applications and data services. [[http://datastax.com|DataStax]] has over 100 customers, including leaders such as Netflix, Cisco, Rackspace, HP, Constant Contact and [[http://www.datastax.com/cassandrausers|more]], and spanning verticals including web, financial services, telecommunications, logistics and government. == Other companies: ==
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393596#comment-14393596 ] Roman Tkachenko commented on CASSANDRA-9045: We can try that. Would you be able to provide a binary that I could use as a drop-in replacement? Also, will I need to replace it on all nodes in the cluster? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[Cassandra Wiki] Update of ThirdPartySupport by AlekseyYeschenko
Dear Wiki user, You have subscribed to a wiki page or wiki category on Cassandra Wiki for change notification. The ThirdPartySupport page has been changed by AlekseyYeschenko: https://wiki.apache.org/cassandra/ThirdPartySupport?action=diffrev1=43rev2=44 == Companies that employ Apache Cassandra Committers: == - {{http://www.datastax.com/wp-content/themes/datastax-custom/images/logo.png}} [[http://datastax.com|Datastax]], the commercial leader in Apache Cassandra™ offers products and services that make it easy for customers to build, deploy and operate elastically scalable and cloud-optimized applications and data services. [[http://datastax.com|DataStax]] has over 100 customers, including leaders such as Netflix, Cisco, Rackspace, HP, Constant Contact and [[http://www.datastax.com/cassandrausers|more]], and spanning verticals including web, financial services, telecommunications, logistics and government. + {{http://www.datastax.com/wp-content/themes/datastax-2014-08/images/common/logo.png}} [[http://datastax.com|Datastax]], the commercial leader in Apache Cassandra™ offers products and services that make it easy for customers to build, deploy and operate elastically scalable and cloud-optimized applications and data services. [[http://datastax.com|DataStax]] has over 100 customers, including leaders such as Netflix, Cisco, Rackspace, HP, Constant Contact and [[http://www.datastax.com/cassandrausers|more]], and spanning verticals including web, financial services, telecommunications, logistics and government. == Other companies: == - - {{http://www.acunu.com/uploads/1/1/5/5/11559475/1335714080.png}} [[http://www.acunu.com|Acunu]] are world experts in Apache Cassandra and beyond. Some of the most challenging Cassandra deployments already rely on Acunu's technology, training and support. With a focus real time applications, Acunu makes it easy to build Cassandra based real-time Big Data solutions that derive instant answers from event streams and deliver fresh insight {{ http://www.urimagnation.com/wp-content/themes/v2.0/images/logo.jpg}} [[http://www.urimagnation.com | URimagination]] , a group of peers, highly qualified, dedicated and motivated professionals, and with huge passion for open source technologies and projects such Apache Hadoop Big Data Platform, OpenSuse, Casandra and more, offers services to enhance performance of your applications and databases at quite a low cost. Our emphasis is to provide remote database services and thereafter-remote database monitoring of your business program. We provide competent services in Oracle, PostgreSQL, NoSQL, Hbase, MongoDB, DB2, and many more for commercial and government institutions, check our services[[http://www.urimagnation.com/services | services]]
[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=14393367#comment-14393367 ] Philip Thompson commented on CASSANDRA-7688: I'm using ccm, so the data dirs are being created from scratch 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 Assignee: Aleksey Yeschenko Fix For: 2.1.5 Attachments: 7688.txt 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] [Created] (CASSANDRA-9106) disable secondary indexes by default
Jon Haddad created CASSANDRA-9106: - Summary: disable secondary indexes by default Key: CASSANDRA-9106 URL: https://issues.apache.org/jira/browse/CASSANDRA-9106 Project: Cassandra Issue Type: Improvement Reporter: Jon Haddad This feature is misused constantly. Can we disable it by default, and provide a yaml config to explicitly enable it? Along with a massive warning about how they aren't there for performance, maybe with a link to documentation that explains why? -- 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=14393296#comment-14393296 ] Piotr Kołaczkowski commented on CASSANDRA-7688: --- Why is this ticket marked as fixed in 2.1.5, if I can see this working in just released 2.1.4? 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 Assignee: Aleksey Yeschenko Fix For: 2.1.5 Attachments: 7688.txt 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] [Created] (CASSANDRA-9104) Unit test failures, trunk + Windows
Joshua McKenzie created CASSANDRA-9104: -- Summary: Unit test failures, trunk + Windows Key: CASSANDRA-9104 URL: https://issues.apache.org/jira/browse/CASSANDRA-9104 Project: Cassandra Issue Type: Test Reporter: Joshua McKenzie Assignee: Joshua McKenzie Fix For: 3.0 Variety of different test failures have cropped up over the past 2-3 weeks: h6. org.apache.cassandra.cql3.UFTest FAILED (timeout) h6. org.apache.cassandra.db.KeyCacheTest FAILED {noformat} expected:4 but was:2 junit.framework.AssertionFailedError: expected:4 but was:2 at org.apache.cassandra.db.KeyCacheTest.assertKeyCacheSize(KeyCacheTest.java:221) at org.apache.cassandra.db.KeyCacheTest.testKeyCache(KeyCacheTest.java:181) {noformat} h6. RecoveryManagerTest: {noformat} org.apache.cassandra.db.RecoveryManagerTest FAILED org.apache.cassandra.db.RecoveryManager2Test FAILED org.apache.cassandra.db.RecoveryManager3Test FAILED org.apache.cassandra.db.RecoveryManagerTruncateTest FAILED All are the following: java.nio.file.AccessDeniedException: build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log FSWriteError in build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:128) at org.apache.cassandra.db.commitlog.CommitLogSegmentManager.recycleSegment(CommitLogSegmentManager.java:360) at org.apache.cassandra.db.commitlog.CommitLog.recover(CommitLog.java:156) at org.apache.cassandra.db.RecoveryManagerTest.testNothingToRecover(RecoveryManagerTest.java:75) Caused by: java.nio.file.AccessDeniedException: build\test\cassandra\commitlog;0\CommitLog-5-1427995105229.log at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:83) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) at sun.nio.fs.AbstractFileSystemProvider.delete(AbstractFileSystemProvider.java:103) at java.nio.file.Files.delete(Files.java:1079) at org.apache.cassandra.io.util.FileUtils.deleteWithConfirm(FileUtils.java:124) {noformat} h6. testScrubCorruptedCounterRow(org.apache.cassandra.db.ScrubTest): FAILED {noformat} Expecting new size of 1, got 2 while replacing [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')] by [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')] in View(pending_count=0, sstables=[BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-3-big-Data.db')], compacting=[]) junit.framework.AssertionFailedError: Expecting new size of 1, got 2 while replacing [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')] by [BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-1-big-Data.db')] in View(pending_count=0, sstables=[BigTableReader(path='C:\src\refCassandra\build\test\cassandra\data;0\Keyspace1\Counter1-deab62b2d95c11e489c6e117fe147c1d\la-3-big-Data.db')], compacting=[]) at org.apache.cassandra.db.DataTracker$View.replace(DataTracker.java:767) at org.apache.cassandra.db.DataTracker.replaceReaders(DataTracker.java:408) at org.apache.cassandra.db.DataTracker.replaceWithNewInstances(DataTracker.java:312) at org.apache.cassandra.io.sstable.SSTableRewriter.moveStarts(SSTableRewriter.java:341) at org.apache.cassandra.io.sstable.SSTableRewriter.abort(SSTableRewriter.java:202) at org.apache.cassandra.db.compaction.Scrubber.scrub(Scrubber.java:277) at org.apache.cassandra.db.ScrubTest.testScrubCorruptedCounterRow(ScrubTest.java:152) {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9037) Terminal UDFs evaluated at prepare time throw protocol version error
[ https://issues.apache.org/jira/browse/CASSANDRA-9037?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393255#comment-14393255 ] Tyler Hobbs commented on CASSANDRA-9037: I don't think we need to defer for collection args, only return types. The get() method for collection Terminals (e.g. {{Lists.Value.get()}}) serializes the collection based on the requested protocol version (the highest version supported by the driver, in this case). The function will also execute assuming that same protocol version, so it will have no problems deserializing the collection. The reason that the return type specifically is problematic is that the function results may need further processing (such as another function call) or reserialization (if the protocol version is less than 3). Basically, the serialization format for the results has to match the protocol version in use. Also, don't forget to handle tuple and UDT return types specially. If they contain collections, those collections will be serialized with the format for whatever protocol version we execute the function with. Terminal UDFs evaluated at prepare time throw protocol version error Key: CASSANDRA-9037 URL: https://issues.apache.org/jira/browse/CASSANDRA-9037 Project: Cassandra Issue Type: Bug Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Fix For: 3.0 When a pure function with only terminal arguments (or with no arguments) is used in a where clause, it's executed at prepare time and {{Server.CURRENT_VERSION}} passed as the protocol version for serialization purposes. For native functions, this isn't a problem, but UDFs use classes in the bundled java-driver-core jar for (de)serialization of args and return values. When {{Server.CURRENT_VERSION}} is greater than the highest version supported by the bundled java driver the execution fails with the following exception: {noformat} ERROR [SharedPool-Worker-1] 2015-03-24 18:10:59,391 QueryMessage.java:132 - Unexpected error during query org.apache.cassandra.exceptions.FunctionExecutionException: execution of 'ks.overloaded[text]' failed: java.lang.IllegalArgumentException: No protocol version matching integer version 4 at org.apache.cassandra.exceptions.FunctionExecutionException.create(FunctionExecutionException.java:35) ~[main/:na] at org.apache.cassandra.cql3.udf.gen.Cksoverloaded_1.execute(Cksoverloaded_1.java) ~[na:na] at org.apache.cassandra.cql3.functions.FunctionCall.executeInternal(FunctionCall.java:78) ~[main/:na] at org.apache.cassandra.cql3.functions.FunctionCall.access$200(FunctionCall.java:34) ~[main/:na] at org.apache.cassandra.cql3.functions.FunctionCall$Raw.execute(FunctionCall.java:176) ~[main/:na] at org.apache.cassandra.cql3.functions.FunctionCall$Raw.prepare(FunctionCall.java:161) ~[main/:na] at org.apache.cassandra.cql3.SingleColumnRelation.toTerm(SingleColumnRelation.java:108) ~[main/:na] at org.apache.cassandra.cql3.SingleColumnRelation.newEQRestriction(SingleColumnRelation.java:143) ~[main/:na] at org.apache.cassandra.cql3.Relation.toRestriction(Relation.java:127) ~[main/:na] at org.apache.cassandra.cql3.restrictions.StatementRestrictions.init(StatementRestrictions.java:126) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:787) ~[main/:na] at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:740) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:488) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:252) ~[main/:na] at org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:246) ~[main/:na] at org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:119) ~[main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:475) [main/:na] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:371) [main/:na] at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:333) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext.access$700(AbstractChannelHandlerContext.java:32) [netty-all-4.0.23.Final.jar:4.0.23.Final] at io.netty.channel.AbstractChannelHandlerContext$8.run(AbstractChannelHandlerContext.java:324)
[jira] [Commented] (CASSANDRA-8991) CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does.
[ https://issues.apache.org/jira/browse/CASSANDRA-8991?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393311#comment-14393311 ] Ulises Cervino Beresi commented on CASSANDRA-8991: -- Can this patch be backported to 2.0 please? CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. - Key: CASSANDRA-8991 URL: https://issues.apache.org/jira/browse/CASSANDRA-8991 Project: Cassandra Issue Type: Bug Components: Core Reporter: Ulises Cervino Beresi Assignee: Ulises Cervino Beresi Priority: Minor Fix For: 2.0.15, 2.1.5 Attachments: CASSANDRA-2.0.13-8991.txt CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8991) CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does.
[ https://issues.apache.org/jira/browse/CASSANDRA-8991?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Yeschenko updated CASSANDRA-8991: - Fix Version/s: 2.0.15 CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. - Key: CASSANDRA-8991 URL: https://issues.apache.org/jira/browse/CASSANDRA-8991 Project: Cassandra Issue Type: Bug Components: Core Reporter: Ulises Cervino Beresi Assignee: Ulises Cervino Beresi Priority: Minor Fix For: 2.0.15, 2.1.5 Attachments: CASSANDRA-2.0.13-8991.txt CQL3 DropIndexStatement should expose getColumnFamily like the CQL2 version does. -- 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=14393375#comment-14393375 ] Aleksey Yeschenko commented on CASSANDRA-7688: -- Must be magic then. 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 Assignee: Aleksey Yeschenko Fix For: 2.1.5 Attachments: 7688.txt 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] [Updated] (CASSANDRA-9107) More accurate row count estimates
[ https://issues.apache.org/jira/browse/CASSANDRA-9107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Lohfink updated CASSANDRA-9107: - Attachment: 9107-cassandra2-1.patch More accurate row count estimates - Key: CASSANDRA-9107 URL: https://issues.apache.org/jira/browse/CASSANDRA-9107 Project: Cassandra Issue Type: Improvement Reporter: Chris Lohfink Assignee: Chris Lohfink Attachments: 9107-cassandra2-1.patch Currently the estimated row count from cfstats is the sum of the number of rows in all the sstables. This becomes very inaccurate with wide rows or heavily updated datasets since the same partition would exist in many sstables. In example: {code} create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; create TABLE wide (key text PRIMARY KEY , value text) WITH compaction = {'class': 'SizeTieredCompactionStrategy', 'min_threshold': 30, 'max_threshold': 100} ; --- insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 1 (128 in older version from index) insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 2 (256 in older version from index) ... etc {code} previously it used the index but it still did it per sstable and summed them up which became inaccurate as there are more sstables (just by much worse). With new versions of sstables we can merge the cardinalities to resolve this with a slight hit to accuracy in the case of every sstable having completely unique partitions. Furthermore I think it would be pretty minimal effort to include the number of rows in the memtables to this count. We wont have the cardinality merging between memtables and sstables but I would consider that a relatively minor negative. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393231#comment-14393231 ] Roman Tkachenko commented on CASSANDRA-9045: Also, check out the attached inconsistency.txt file. A request was issued twice with a difference of several seconds and the same server says Read 1 live and 0 tombstoned cells on the first run and Read 0 live and 3 tombstoned cells on the second run. How could that happen? I'm also getting inconsistent results (for this record and some others) even with LOCAL_QUORUM, when using our production app: one query returns the record, the next one does not. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9105) JMX APIs appear untested
[ https://issues.apache.org/jira/browse/CASSANDRA-9105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393304#comment-14393304 ] Tyler Hobbs commented on CASSANDRA-9105: I recently added a JMX utility module to the dtests that should make this easier to cover: https://github.com/riptano/cassandra-dtest/blob/master/jmxutils.py JMX APIs appear untested Key: CASSANDRA-9105 URL: https://issues.apache.org/jira/browse/CASSANDRA-9105 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Anything supported via JMX is part of the public API of the database. Node tool uses JMX but doesn't seem to have its own unit test and the dtest nodetool_test.py is pretty sparse. For values returned by JMX for the purposes of reporting we should test as best we can that we are getting real values end to end. Occasionally metrics end up with no values, or values in the wrong units. For commands going the other direction they should be exercised. There is probably a lot of coverage of commands since they may be used when testing the features those commands are a part of so no need for duplication there. -- 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=14393352#comment-14393352 ] Philip Thompson commented on CASSANDRA-7688: I see the system.size_estimates table in 2.1.4, but I don't see it being populated. Are you? 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 Assignee: Aleksey Yeschenko Fix For: 2.1.5 Attachments: 7688.txt 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-7017) allow per-partition LIMIT clause in cql
[ https://issues.apache.org/jira/browse/CASSANDRA-7017?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393503#comment-14393503 ] William Price commented on CASSANDRA-7017: -- Going for symmetry with the existing {{CREATE TABLE ... WITH CLUSTERING ORDER BY ...}} syntax, what about: {code} SELECT * FROM scores (WITH)? CLUSTERING LIMIT 3 {code} allow per-partition LIMIT clause in cql --- Key: CASSANDRA-7017 URL: https://issues.apache.org/jira/browse/CASSANDRA-7017 Project: Cassandra Issue Type: Improvement Reporter: Jonathan Halliday Assignee: Dan Burkert Labels: cql Fix For: 3.0 Attachments: 0001-CASSANDRA-7017.patch somewhat related to static columns (#6561) and slicing (#4851), it is desirable to apply a LIMIT on a per-partition rather than per-query basis, such as to retrieve the top (most recent, etc) N clustered values for each partition key, e.g. -- for each league, keep a ranked list of users create table scores (league text, score int, player text, primary key(league, score, player) ); -- get the top 3 teams in each league: select * from scores staticlimit 3; this currently requires issuing one query per partition key, which is tedious if all the key partition key values are known and impossible if they aren't. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393564#comment-14393564 ] Roman Tkachenko commented on CASSANDRA-9045: Yeah, I understand 1 vs 3. What I'm confused about is live vs tombstoned because there were no deletes for this record within this 20 seconds interval. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9108) SSL appears to be untested
Ariel Weisberg created CASSANDRA-9108: - Summary: SSL appears to be untested Key: CASSANDRA-9108 URL: https://issues.apache.org/jira/browse/CASSANDRA-9108 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg Need to test that you can set up a cluster with SSL node - node and client - node. A dtest for this would be really useful to make sure it's always working at a basic level. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9109) Repair appears to have some of untested behaviors
[ https://issues.apache.org/jira/browse/CASSANDRA-9109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg updated CASSANDRA-9109: -- Description: There is AntiCompactionTest and a few single process unit tests, but they aren't very convincing. Looking at the docs to nodetool it looks like there are a few different ways that repair could operate that aren't explored. dtest wise there is repair_test and incremental_repair test which do give some useful coverage, but don't do everything. It's also the kind of thing you might like to see tested with some concurrent load to catch interactions with everything else moving about, but a dtest may not be the right place to do that. was: There is AntiCompactionTest and a few single process unit tests, but they aren't very convincing. Looking at the docs to nodetool it looks like there are a few different ways that repair could operate that aren't explored. It's also the kind of thing you might like to see tested with some concurrent load to catch interactions with everything else moving about, but a dtest may not be the right place to do that. Repair appears to have some of untested behaviors - Key: CASSANDRA-9109 URL: https://issues.apache.org/jira/browse/CASSANDRA-9109 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg There is AntiCompactionTest and a few single process unit tests, but they aren't very convincing. Looking at the docs to nodetool it looks like there are a few different ways that repair could operate that aren't explored. dtest wise there is repair_test and incremental_repair test which do give some useful coverage, but don't do everything. It's also the kind of thing you might like to see tested with some concurrent load to catch interactions with everything else moving about, but a dtest may not be the right place to do that. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9110) Bounded/RingBuffer CQL Collections
Jim Plush created CASSANDRA-9110: Summary: Bounded/RingBuffer CQL Collections Key: CASSANDRA-9110 URL: https://issues.apache.org/jira/browse/CASSANDRA-9110 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jim Plush Priority: Minor Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9110) Bounded/RingBuffer CQL Collections
[ https://issues.apache.org/jira/browse/CASSANDRA-9110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jim Plush updated CASSANDRA-9110: - Description: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds as long as the CQL returns the right bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); was: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); Bounded/RingBuffer CQL Collections -- Key: CASSANDRA-9110 URL: https://issues.apache.org/jira/browse/CASSANDRA-9110 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jim Plush Priority: Minor Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds as long as the CQL returns the right bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Roman Tkachenko updated CASSANDRA-9045: --- Attachment: debug.txt Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: 9045-debug-tracing.txt, apache-cassandra-2.0.13-SNAPSHOT.jar, cqlsh.txt, debug.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393989#comment-14393989 ] Yuki Morishita commented on CASSANDRA-9097: --- The problem is that the repair coordinator does not wait anticompaction to finish on other nodes. We can change the behavior to wait until coordinator receives notification from other replica, but doing so can be a problem between the nodes in different minor version. We definitely need to fix this in 3.0, though let me see what would be the right solution for 2.1.x. Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Yuki Morishita Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9109) Repair appears to have a lot of untested behaviors
Ariel Weisberg created CASSANDRA-9109: - Summary: Repair appears to have a lot of untested behaviors Key: CASSANDRA-9109 URL: https://issues.apache.org/jira/browse/CASSANDRA-9109 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg There is AntiCompactionTest and a few single process unit tests, but they aren't very convincing. Looking at the docs to nodetool it looks like there are a few different ways that repair could operate that aren't explored. It's also the kind of thing you might like to see tested with some concurrent load to catch interactions with everything else moving about, but a dtest may not be the right place to do that. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9110) Bounded/RingBuffer CQL Collections
[ https://issues.apache.org/jira/browse/CASSANDRA-9110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jim Plush updated CASSANDRA-9110: - Description: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection, or waits until compaction to drop the overflow data as long as the CQL returns the right bounds. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); was: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds as long as the CQL returns the right bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); Bounded/RingBuffer CQL Collections -- Key: CASSANDRA-9110 URL: https://issues.apache.org/jira/browse/CASSANDRA-9110 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jim Plush Priority: Minor Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection, or waits until compaction to drop the overflow data as long as the CQL returns the right bounds. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-9053) Convert dtests that use cassandra-cli to Thrift API
[ https://issues.apache.org/jira/browse/CASSANDRA-9053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs reassigned CASSANDRA-9053: -- Assignee: Tyler Hobbs Convert dtests that use cassandra-cli to Thrift API --- Key: CASSANDRA-9053 URL: https://issues.apache.org/jira/browse/CASSANDRA-9053 Project: Cassandra Issue Type: Test Components: Tests Reporter: Tyler Hobbs Assignee: Tyler Hobbs Fix For: 3.0 The following dtests need to be changed to use the Thrift API directly instead of going through cassandra-cli: * {{cql_tests.TestCQL.cql3_insert_thrift_test}} * {{cql_tests.TestCQL.rename_test}} * {{super_column_cache_test.TestSCCache.sc_with_row_cache_test}} * {{upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_index_creation_test}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-9053) Convert dtests that use cassandra-cli to Thrift API
[ https://issues.apache.org/jira/browse/CASSANDRA-9053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs resolved CASSANDRA-9053. Resolution: Fixed All of the dtests that used the CLI now go through the Thrift API directly. Convert dtests that use cassandra-cli to Thrift API --- Key: CASSANDRA-9053 URL: https://issues.apache.org/jira/browse/CASSANDRA-9053 Project: Cassandra Issue Type: Test Components: Tests Reporter: Tyler Hobbs Assignee: Tyler Hobbs Fix For: 3.0 The following dtests need to be changed to use the Thrift API directly instead of going through cassandra-cli: * {{cql_tests.TestCQL.cql3_insert_thrift_test}} * {{cql_tests.TestCQL.rename_test}} * {{super_column_cache_test.TestSCCache.sc_with_row_cache_test}} * {{upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_index_creation_test}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9053) Convert dtests that use cassandra-cli to Thrift API
[ https://issues.apache.org/jira/browse/CASSANDRA-9053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-9053: --- Description: The following dtests need to be changed to use the Thrift API directly instead of going through cassandra-cli: * {{cql_tests.TestCQL.cql3_insert_thrift_test}} * {{cql_tests.TestCQL.rename_test}} * {{super_column_cache_test.TestSCCache.sc_with_row_cache_test}} * {{upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_index_creation_test}} was: The following dtests need to be changed to use the Thrift API directly instead of going through cassandra-cli: * {{global_row_key_cache_test.TestGlobalRowKeyCache.functional_test}} * {{cql_tests.TestCQL.cql3_insert_thrift_test}} * {{cql_tests.TestCQL.rename_test}} * {{super_column_cache_test.TestSCCache.sc_with_row_cache_test}} * {{upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_index_creation_test}} Convert dtests that use cassandra-cli to Thrift API --- Key: CASSANDRA-9053 URL: https://issues.apache.org/jira/browse/CASSANDRA-9053 Project: Cassandra Issue Type: Test Components: Tests Reporter: Tyler Hobbs Fix For: 3.0 The following dtests need to be changed to use the Thrift API directly instead of going through cassandra-cli: * {{cql_tests.TestCQL.cql3_insert_thrift_test}} * {{cql_tests.TestCQL.rename_test}} * {{super_column_cache_test.TestSCCache.sc_with_row_cache_test}} * {{upgrade_supercolumns_test.TestSCUpgrade.upgrade_with_index_creation_test}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9082) sstableloader error on trunk due to loading read meter
[ https://issues.apache.org/jira/browse/CASSANDRA-9082?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393784#comment-14393784 ] Tyler Hobbs commented on CASSANDRA-9082: +1 sstableloader error on trunk due to loading read meter -- Key: CASSANDRA-9082 URL: https://issues.apache.org/jira/browse/CASSANDRA-9082 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Tyler Hobbs Assignee: Benedict Fix For: 3.0, 2.1.5 If you try to run sstableloader on trunk, you'll get an error like the following: {noformat} Exception: sstableloader command '/tmp/dtest-p5eSr3/test/node1/bin/sstableloader -d 127.0.0.1 /tmp/tmpzd5CCh/ks/cf' failed; exit status: 1'; stdout: Established connection to initial hosts Opening sstables and calculating sections to stream ; stderr: null java.lang.AssertionError org.apache.cassandra.exceptions.ConfigurationException at org.apache.cassandra.locator.AbstractReplicationStrategy.createInternal(AbstractReplicationStrategy.java:249) at org.apache.cassandra.locator.AbstractReplicationStrategy.createReplicationStrategy(AbstractReplicationStrategy.java:264) at org.apache.cassandra.db.Keyspace.createReplicationStrategy(Keyspace.java:279) at org.apache.cassandra.db.Keyspace.init(Keyspace.java:267) at org.apache.cassandra.db.Keyspace.open(Keyspace.java:115) at org.apache.cassandra.db.Keyspace.open(Keyspace.java:92) at org.apache.cassandra.cql3.restrictions.StatementRestrictions.init(StatementRestrictions.java:128) at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:788) at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:741) at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:488) at org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:266) at org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:300) at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:308) at org.apache.cassandra.db.SystemKeyspace.getSSTableReadMeter(SystemKeyspace.java:899) at org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.init(SSTableReader.java:1973) at org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.get(SSTableReader.java:2012) at org.apache.cassandra.io.sstable.format.SSTableReader$DescriptorTypeTidy.init(SSTableReader.java:1890) at org.apache.cassandra.io.sstable.format.SSTableReader$DescriptorTypeTidy.get(SSTableReader.java:1926) at org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.setup(SSTableReader.java:1809) at org.apache.cassandra.io.sstable.format.SSTableReader.setup(SSTableReader.java:1754) at org.apache.cassandra.io.sstable.format.SSTableReader.openForBatch(SSTableReader.java:398) at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:117) at java.io.File.list(File.java:1155) at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:78) at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:162) at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:106) Caused by: java.lang.AssertionError at org.apache.cassandra.locator.AbstractReplicationStrategy.init(AbstractReplicationStrategy.java:66) at org.apache.cassandra.locator.LocalStrategy.init(LocalStrategy.java:36) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.cassandra.locator.AbstractReplicationStrategy.createInternal(AbstractReplicationStrategy.java:244) ... 25 more {noformat} At first glance, it looks like the SSTableReader is trying to load the read meter even though it shouldn't (or doesn't need to). Assigning to Benedict since this seems to be most related to SSTableReader management. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393812#comment-14393812 ] Tyler Hobbs commented on CASSANDRA-9045: Thanks! What repair operation did you run in between the queries? Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: 9045-debug-tracing.txt, apache-cassandra-2.0.13-SNAPSHOT.jar, cqlsh.txt, debug.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393824#comment-14393824 ] Roman Tkachenko commented on CASSANDRA-9045: I ran nodetool repair -pr blackbook bounces on a couple of nodes. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: 9045-debug-tracing.txt, apache-cassandra-2.0.13-SNAPSHOT.jar, cqlsh.txt, debug.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393627#comment-14393627 ] Tyler Hobbs commented on CASSANDRA-9045: bq. Would you be able to provide a binary that I could use as a drop-in replacement? I can do that if you need me to, although I can also provide simple instructions for building the jar. bq. Also, will I need to replace it on all nodes in the cluster? One node would be enough if you can reproduce the behavior like {{inconsistency.txt}} on a key that it's a replica for. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9109) Repair appears to have some of untested behaviors
[ https://issues.apache.org/jira/browse/CASSANDRA-9109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg updated CASSANDRA-9109: -- Summary: Repair appears to have some of untested behaviors (was: Repair appears to have a lot of untested behaviors) Repair appears to have some of untested behaviors - Key: CASSANDRA-9109 URL: https://issues.apache.org/jira/browse/CASSANDRA-9109 Project: Cassandra Issue Type: Test Reporter: Ariel Weisberg There is AntiCompactionTest and a few single process unit tests, but they aren't very convincing. Looking at the docs to nodetool it looks like there are a few different ways that repair could operate that aren't explored. It's also the kind of thing you might like to see tested with some concurrent load to catch interactions with everything else moving about, but a dtest may not be the right place to do that. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9110) Bounded/RingBuffer CQL Collections
[ https://issues.apache.org/jira/browse/CASSANDRA-9110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jim Plush updated CASSANDRA-9110: - Description: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); was: Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); Bounded/RingBuffer CQL Collections -- Key: CASSANDRA-9110 URL: https://issues.apache.org/jira/browse/CASSANDRA-9110 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jim Plush Priority: Minor Feature Request: I've had frequent use cases for bounded and RingBuffer based collections. For example: I want to store the first 100 times I've see this thing. I want to store the last 100 times I've seen this thing. Currently that means having to do application level READ/WRITE operations and we like to keep some of our high scale apps to write only where possible. While probably expensive for exactly N items an approximation should be good enough for most applications. Where N in our example could be 100 or 102, or even make that tunable on the type or table. For the RingBuffer example, consider I only want to store the last N login attempts for a user. Once N+1 comes in it issues a delete for the oldest one in the collection. A potential implementation idea, given the rowkey would live on a single node would be to have an LRU based counter cache (tunable in the yaml settings in MB) that keeps a current count of how many items are already in the collection for that rowkey. If than bound, toss. It could also be a compaction type thing where it stores all the data then at compaction time it filters out the data that's out of bounds. something akin to: CREATE TABLE users ( user_id text PRIMARY KEY, first_name text, first_logins settext, 100, oldest last_logins settext, 100, newest ); -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9082) sstableloader error on trunk due to loading read meter
[ https://issues.apache.org/jira/browse/CASSANDRA-9082?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-9082: --- Reviewer: Tyler Hobbs sstableloader error on trunk due to loading read meter -- Key: CASSANDRA-9082 URL: https://issues.apache.org/jira/browse/CASSANDRA-9082 Project: Cassandra Issue Type: Bug Components: Tools Reporter: Tyler Hobbs Assignee: Benedict Fix For: 3.0, 2.1.5 If you try to run sstableloader on trunk, you'll get an error like the following: {noformat} Exception: sstableloader command '/tmp/dtest-p5eSr3/test/node1/bin/sstableloader -d 127.0.0.1 /tmp/tmpzd5CCh/ks/cf' failed; exit status: 1'; stdout: Established connection to initial hosts Opening sstables and calculating sections to stream ; stderr: null java.lang.AssertionError org.apache.cassandra.exceptions.ConfigurationException at org.apache.cassandra.locator.AbstractReplicationStrategy.createInternal(AbstractReplicationStrategy.java:249) at org.apache.cassandra.locator.AbstractReplicationStrategy.createReplicationStrategy(AbstractReplicationStrategy.java:264) at org.apache.cassandra.db.Keyspace.createReplicationStrategy(Keyspace.java:279) at org.apache.cassandra.db.Keyspace.init(Keyspace.java:267) at org.apache.cassandra.db.Keyspace.open(Keyspace.java:115) at org.apache.cassandra.db.Keyspace.open(Keyspace.java:92) at org.apache.cassandra.cql3.restrictions.StatementRestrictions.init(StatementRestrictions.java:128) at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepareRestrictions(SelectStatement.java:788) at org.apache.cassandra.cql3.statements.SelectStatement$RawStatement.prepare(SelectStatement.java:741) at org.apache.cassandra.cql3.QueryProcessor.getStatement(QueryProcessor.java:488) at org.apache.cassandra.cql3.QueryProcessor.parseStatement(QueryProcessor.java:266) at org.apache.cassandra.cql3.QueryProcessor.prepareInternal(QueryProcessor.java:300) at org.apache.cassandra.cql3.QueryProcessor.executeInternal(QueryProcessor.java:308) at org.apache.cassandra.db.SystemKeyspace.getSSTableReadMeter(SystemKeyspace.java:899) at org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.init(SSTableReader.java:1973) at org.apache.cassandra.io.sstable.format.SSTableReader$GlobalTidy.get(SSTableReader.java:2012) at org.apache.cassandra.io.sstable.format.SSTableReader$DescriptorTypeTidy.init(SSTableReader.java:1890) at org.apache.cassandra.io.sstable.format.SSTableReader$DescriptorTypeTidy.get(SSTableReader.java:1926) at org.apache.cassandra.io.sstable.format.SSTableReader$InstanceTidier.setup(SSTableReader.java:1809) at org.apache.cassandra.io.sstable.format.SSTableReader.setup(SSTableReader.java:1754) at org.apache.cassandra.io.sstable.format.SSTableReader.openForBatch(SSTableReader.java:398) at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:117) at java.io.File.list(File.java:1155) at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:78) at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:162) at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:106) Caused by: java.lang.AssertionError at org.apache.cassandra.locator.AbstractReplicationStrategy.init(AbstractReplicationStrategy.java:66) at org.apache.cassandra.locator.LocalStrategy.init(LocalStrategy.java:36) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.apache.cassandra.locator.AbstractReplicationStrategy.createInternal(AbstractReplicationStrategy.java:244) ... 25 more {noformat} At first glance, it looks like the SSTableReader is trying to load the read meter even though it shouldn't (or doesn't need to). Assigning to Benedict since this seems to be most related to SSTableReader management. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393803#comment-14393803 ] Roman Tkachenko commented on CASSANDRA-9045: I couldn't reproduce the inconsistency.txt issue but reproduced the original reported one. Take a look at the debug.txt - after repair the tombstone on 173.203.37.77 is gone. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: 9045-debug-tracing.txt, apache-cassandra-2.0.13-SNAPSHOT.jar, cqlsh.txt, debug.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9111) SSTables originated from the same incremental repair session have different repairedAt timestamps
prmg created CASSANDRA-9111: --- Summary: SSTables originated from the same incremental repair session have different repairedAt timestamps Key: CASSANDRA-9111 URL: https://issues.apache.org/jira/browse/CASSANDRA-9111 Project: Cassandra Issue Type: Bug Components: Core Reporter: prmg CASSANDRA-7168 optimizes QUORUM reads by skipping incrementally repaired SSTables on other replicas that were repaired on or before the maximum repairedAt timestamp of the coordinating replica's SSTables for the query partition. One assumption of that optimization is that SSTables originated from the same repair session in different nodes will have the same repairedAt timestamp, since the objective is to skip reading SSTables originated in the same repair session (or before). However, currently, each node timestamps independently SSTables originated from the same repair session, so they almost never have the same timestamp. Steps to reproduce the problem: {code} ccm create test ccm populate -n 3 ccm start ccm node1 cqlsh; {code} {code:sql} CREATE KEYSPACE foo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; CREATE TABLE foo.bar ( key int, col int, PRIMARY KEY (key) ) ; INSERT INTO foo.bar (key, col) VALUES (1, 1); exit; {code} {code} ccm node1 flush; ccm node2 flush; ccm node3 flush; nodetool -h 127.0.0.1 -p 7100 repair -par -inc foo bar [2015-04-02 21:56:07,726] Starting repair command #1, repairing 3 ranges for keyspace foo (parallelism=PARALLEL, full=false) [2015-04-02 21:56:07,816] Repair session 3655b670-d99c-11e4-b250-9107aba35569 for range (3074457345618258602,-9223372036854775808] finished [2015-04-02 21:56:07,816] Repair session 365a4a50-d99c-11e4-b250-9107aba35569 for range (-9223372036854775808,-3074457345618258603] finished [2015-04-02 21:56:07,818] Repair session 365bf800-d99c-11e4-b250-9107aba35569 for range (-3074457345618258603,3074457345618258602] finished [2015-04-02 21:56:07,995] Repair command #1 finished sstablemetadata ~/.ccm/test/node1/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node2/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node3/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db | grep Repaired Repaired at: 1428023050318 Repaired at: 1428023050322 Repaired at: 1428023050340 {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9107) More accurate row count estimates
[ https://issues.apache.org/jira/browse/CASSANDRA-9107?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-9107: -- Reviewer: Sam Tunnicliffe [~beobal] to review More accurate row count estimates - Key: CASSANDRA-9107 URL: https://issues.apache.org/jira/browse/CASSANDRA-9107 Project: Cassandra Issue Type: Improvement Reporter: Chris Lohfink Assignee: Chris Lohfink Attachments: 9107-cassandra2-1.patch Currently the estimated row count from cfstats is the sum of the number of rows in all the sstables. This becomes very inaccurate with wide rows or heavily updated datasets since the same partition would exist in many sstables. In example: {code} create KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1}; create TABLE wide (key text PRIMARY KEY , value text) WITH compaction = {'class': 'SizeTieredCompactionStrategy', 'min_threshold': 30, 'max_threshold': 100} ; --- insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 1 (128 in older version from index) insert INTO wide (key, value) VALUES ('key', 'value'); // flush // cfstats output: Number of keys (estimate): 2 (256 in older version from index) ... etc {code} previously it used the index but it still did it per sstable and summed them up which became inaccurate as there are more sstables (just by much worse). With new versions of sstables we can merge the cardinalities to resolve this with a slight hit to accuracy in the case of every sstable having completely unique partitions. Furthermore I think it would be pretty minimal effort to include the number of rows in the memtables to this count. We wont have the cardinality merging between memtables and sstables but I would consider that a relatively minor negative. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9111) SSTables originated from the same incremental repair session have different repairedAt timestamps
[ https://issues.apache.org/jira/browse/CASSANDRA-9111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] prmg updated CASSANDRA-9111: Attachment: CASSANDRA-9111-v0.txt The proposed solution involves passing the initiator timestamp in the repair's PrepareMessage. This timestamp is then used to create the ParentRepairSession with the initiator timestamp in all replicas. Finally, the ParentRepairSession's repairedAt field is used to populate the repairedAt field on the SSTable metadata after anticompation. After performing the test described in the ticket description after this patch, the SSTables originated from the same incremental repair session now share the same timestamp: {code} sstablemetadata ~/.ccm/test/node1/data/foo/bar-104e25c0d99c11e4b2509107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node2/data/foo/bar-104e25c0d99c11e4b2509107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node3/data/foo/bar-104e25c0d99c11e4b2509107aba35569/foo-bar-ka-1-Statistics.db | grep Repaired Repaired at: 1428022567736 Repaired at: 1428022567736 Repaired at: 1428022567736 {code} SSTables originated from the same incremental repair session have different repairedAt timestamps - Key: CASSANDRA-9111 URL: https://issues.apache.org/jira/browse/CASSANDRA-9111 Project: Cassandra Issue Type: Bug Components: Core Reporter: prmg Attachments: CASSANDRA-9111-v0.txt CASSANDRA-7168 optimizes QUORUM reads by skipping incrementally repaired SSTables on other replicas that were repaired on or before the maximum repairedAt timestamp of the coordinating replica's SSTables for the query partition. One assumption of that optimization is that SSTables originated from the same repair session in different nodes will have the same repairedAt timestamp, since the objective is to skip reading SSTables originated in the same repair session (or before). However, currently, each node timestamps independently SSTables originated from the same repair session, so they almost never have the same timestamp. Steps to reproduce the problem: {code} ccm create test ccm populate -n 3 ccm start ccm node1 cqlsh; {code} {code:sql} CREATE KEYSPACE foo WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; CREATE TABLE foo.bar ( key int, col int, PRIMARY KEY (key) ) ; INSERT INTO foo.bar (key, col) VALUES (1, 1); exit; {code} {code} ccm node1 flush; ccm node2 flush; ccm node3 flush; nodetool -h 127.0.0.1 -p 7100 repair -par -inc foo bar [2015-04-02 21:56:07,726] Starting repair command #1, repairing 3 ranges for keyspace foo (parallelism=PARALLEL, full=false) [2015-04-02 21:56:07,816] Repair session 3655b670-d99c-11e4-b250-9107aba35569 for range (3074457345618258602,-9223372036854775808] finished [2015-04-02 21:56:07,816] Repair session 365a4a50-d99c-11e4-b250-9107aba35569 for range (-9223372036854775808,-3074457345618258603] finished [2015-04-02 21:56:07,818] Repair session 365bf800-d99c-11e4-b250-9107aba35569 for range (-3074457345618258603,3074457345618258602] finished [2015-04-02 21:56:07,995] Repair command #1 finished sstablemetadata ~/.ccm/test/node1/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node2/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db ~/.ccm/test/node3/data/foo/bar-377b5540d99d11e49cc09107aba35569/foo-bar-ka-1-Statistics.db | grep Repaired Repaired at: 1428023050318 Repaired at: 1428023050322 Repaired at: 1428023050340 {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9045) Deleted columns are resurrected after repair in wide rows
[ https://issues.apache.org/jira/browse/CASSANDRA-9045?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Tyler Hobbs updated CASSANDRA-9045: --- Attachment: apache-cassandra-2.0.13-SNAPSHOT.jar 9045-debug-tracing.txt [~r0mant] I've attached a patch and jar that include more details in the tracing info. You can try deploying the jar to a single node and attempt to reproduce an issue like {{inconsistency.txt}} with tracing enabled against it. If that doesn't work, you may need to deploy the jar to multiple nodes. Deleted columns are resurrected after repair in wide rows - Key: CASSANDRA-9045 URL: https://issues.apache.org/jira/browse/CASSANDRA-9045 Project: Cassandra Issue Type: Bug Components: Core Reporter: Roman Tkachenko Assignee: Marcus Eriksson Priority: Critical Fix For: 2.0.15 Attachments: 9045-debug-tracing.txt, apache-cassandra-2.0.13-SNAPSHOT.jar, cqlsh.txt, inconsistency.txt Hey guys, After almost a week of researching the issue and trying out multiple things with (almost) no luck I was suggested (on the user@cass list) to file a report here. h5. Setup Cassandra 2.0.13 (we had the issue with 2.0.10 as well and upgraded to see if it goes away) Multi datacenter 12+6 nodes cluster. h5. Schema {code} cqlsh describe keyspace blackbook; CREATE KEYSPACE blackbook WITH replication = { 'class': 'NetworkTopologyStrategy', 'IAD': '3', 'ORD': '3' }; USE blackbook; CREATE TABLE bounces ( domainid text, address text, message text, timestamp bigint, PRIMARY KEY (domainid, address) ) WITH bloom_filter_fp_chance=0.10 AND caching='KEYS_ONLY' AND comment='' AND dclocal_read_repair_chance=0.10 AND gc_grace_seconds=864000 AND index_interval=128 AND read_repair_chance=0.00 AND populate_io_cache_on_flush='false' AND default_time_to_live=0 AND speculative_retry='99.0PERCENTILE' AND memtable_flush_period_in_ms=0 AND compaction={'class': 'LeveledCompactionStrategy'} AND compression={'sstable_compression': 'LZ4Compressor'}; {code} h5. Use case Each row (defined by a domainid) can have many many columns (bounce entries) so rows can get pretty wide. In practice, most of the rows are not that big but some of them contain hundreds of thousands and even millions of columns. Columns are not TTL'ed but can be deleted using the following CQL3 statement: {code} delete from bounces where domainid = 'domain.com' and address = 'al...@example.com'; {code} All queries are performed using LOCAL_QUORUM CL. h5. Problem We weren't very diligent about running repairs on the cluster initially, but shorty after we started doing it we noticed that some of previously deleted columns (bounce entries) are there again, as if tombstones have disappeared. I have run this test multiple times via cqlsh, on the row of the customer who originally reported the issue: * delete an entry * verify it's not returned even with CL=ALL * run repair on nodes that own this row's key * the columns reappear and are returned even with CL=ALL I tried the same test on another row with much less data and everything was correctly deleted and didn't reappear after repair. h5. Other steps I've taken so far Made sure NTP is running on all servers and clocks are synchronized. Increased gc_grace_seconds to 100 days, ran full repair (on the affected keyspace) on all nodes, then changed it back to the default 10 days again. Didn't help. Performed one more test. Updated one of the resurrected columns, then deleted it and ran repair again. This time the updated version of the column reappeared. Finally, I noticed these log entries for the row in question: {code} INFO [ValidationExecutor:77] 2015-03-25 20:27:43,936 CompactionController.java (line 192) Compacting large row blackbook/bounces:4ed558feba8a483733001d6a (279067683 bytes) incrementally {code} Figuring it may be related I bumped in_memory_compaction_limit_in_mb to 512MB so the row fits into it, deleted the entry and ran repair once again. The log entry for this row was gone and the columns didn't reappear. We have a lot of rows much larger than 512MB so can't increase this parameters forever, if that is the issue. Please let me know if you need more information on the case or if I can run more experiments. Thanks! Roman -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-8091) Stress tool creates too large batches
[ https://issues.apache.org/jira/browse/CASSANDRA-8091?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benedict resolved CASSANDRA-8091. - Resolution: Not a Problem No, it was ninja-fixed by [~tjake] a few days before this ticket was filed Stress tool creates too large batches - Key: CASSANDRA-8091 URL: https://issues.apache.org/jira/browse/CASSANDRA-8091 Project: Cassandra Issue Type: Bug Reporter: Carl Yeksigian Labels: stress With CASSANDRA-8011, the stress tool now gets exceptions because its batches are too large. We should change the default behaviour to not create batches so large, probably using individual inserts instead of an unlogged batch. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9096) Improve ByteBuffer compression interface
Branimir Lambov created CASSANDRA-9096: -- Summary: Improve ByteBuffer compression interface Key: CASSANDRA-9096 URL: https://issues.apache.org/jira/browse/CASSANDRA-9096 Project: Cassandra Issue Type: Improvement Reporter: Branimir Lambov Fix For: 3.0 Now that we have a few uses of compression/decompression on ByteBuffers it is time to finalize the interface before it becomes set in stone with 3.0. The current code has some shortcomings: - The interface uses the buffers' positions and limits instead of accepting offset and length as parameters. This necessitates that the buffers be duplicated before they can be compressed for thread-safety, something that adds burden to the caller, is prone to being forgotten, and we could generally do without for performance. - The direct/non-direct buffer support needs to be more clearly defined. The current {{useDirectOutputByteBuffers}} is not named well. - If we don't want to support non-direct buffers everywhere as a fallback, we should clearly state the decision and rationale. - How should {{WrappedByteBuffer}} treat direct/indirect buffers? - More testing is necessary as e.g. errors in {{DeflateCompressor}} were only caught in CASSANDRA-6809. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8828) Counter of ALLOW FILTERING queries
[ https://issues.apache.org/jira/browse/CASSANDRA-8828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14394062#comment-14394062 ] Chris Lohfink commented on CASSANDRA-8828: -- If the limiting usage is sufficient I can (or anyone else can) mark this as a duplicate. I guess the only advantage to having this is in the case of debugging a slow system that isn't necessarily under their control. Having the ability to disallow the filtering would be good for admins trying to control their devs, but for people going into a new situation (ie consultants/support folks) theres no way to check if someone is doing any filtering other than walking through codebase or disallowing it and seeing if the production environment starts failing. A bonus here is we can include in the counter the number of results that were filtered (or a ratio of filtered vs kept) through to see how effective or ineffective the ALLOW FILTERING queries are in the particular use case. Counter of ALLOW FILTERING queries -- Key: CASSANDRA-8828 URL: https://issues.apache.org/jira/browse/CASSANDRA-8828 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Chris Lohfink Priority: Trivial Having a counter of requests that use allow filtering could be something to check to make sure a cluster is not using dangerous queries in production. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
cassandra git commit: use long math for long results
Repository: cassandra Updated Branches: refs/heads/trunk 910170c9d - 2bf60356c use long math for long results Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/2bf60356 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/2bf60356 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/2bf60356 Branch: refs/heads/trunk Commit: 2bf60356c61f87891b021b2f6ba3f8e46f135f13 Parents: 910170c Author: Dave Brosius dbros...@mebigfatguy.com Authored: Fri Apr 3 00:25:06 2015 -0400 Committer: Dave Brosius dbros...@mebigfatguy.com Committed: Fri Apr 3 00:25:06 2015 -0400 -- src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/2bf60356/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java b/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java index 4b48462..8d7b0e9 100644 --- a/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java +++ b/src/java/org/apache/cassandra/db/compaction/SSTableSplitter.java @@ -75,7 +75,7 @@ public class SSTableSplitter { @Override public CompactionAwareWriter getCompactionAwareWriter(ColumnFamilyStore cfs, SetSSTableReader allSSTables, SetSSTableReader nonExpiredSSTables) { -return new MaxSSTableSizeWriter(cfs, sstables, nonExpiredSSTables, sstableSizeInMB * 1024 * 1024, 0, true, compactionType); +return new MaxSSTableSizeWriter(cfs, sstables, nonExpiredSSTables, sstableSizeInMB * 1024L * 1024L, 0, true, compactionType); } @Override
cassandra git commit: make inner SplittingCompactionTask static
Repository: cassandra Updated Branches: refs/heads/trunk 2bf60356c - 868457de2 make inner SplittingCompactionTask static Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/868457de Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/868457de Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/868457de Branch: refs/heads/trunk Commit: 868457de21388f224f7c0e871f1fa4aa7a9f7146 Parents: 2bf6035 Author: Dave Brosius dbros...@mebigfatguy.com Authored: Fri Apr 3 00:30:56 2015 -0400 Committer: Dave Brosius dbros...@mebigfatguy.com Committed: Fri Apr 3 00:30:56 2015 -0400 -- .../cassandra/db/compaction/SizeTieredCompactionStrategy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/868457de/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java -- diff --git a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java index 7113c65..288133b 100644 --- a/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java +++ b/src/java/org/apache/cassandra/db/compaction/SizeTieredCompactionStrategy.java @@ -336,7 +336,7 @@ public class SizeTieredCompactionStrategy extends AbstractCompactionStrategy cfs.getMaximumCompactionThreshold()); } -private class SplittingCompactionTask extends CompactionTask +private static class SplittingCompactionTask extends CompactionTask { public SplittingCompactionTask(ColumnFamilyStore cfs, IterableSSTableReader sstables, int gcBefore, boolean offline) {
[jira] [Commented] (CASSANDRA-7557) User permissions for UDFs
[ https://issues.apache.org/jira/browse/CASSANDRA-7557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14393190#comment-14393190 ] Sam Tunnicliffe commented on CASSANDRA-7557: I've pushed a preliminary version [here|https://github.com/beobal/cassandra/tree/7557] which depends on CASSANDRA-9037 (and so transitively on https://datastax-oss.atlassian.net/browse/JAVA-700). These changes touch a lot of classes, but in most cases they're rather trivial. Aside from the basic machinery around the {{IResource}} hierarchy and granting/revoking of permissions, the bulk of the changes pertain to two things: * Identifying all of the functions involved in the execution of a CQL statement * Passing some context information into the preparation step which transforms raw terms into their prepared equivalents The former is to enable us to check at execution time that the logged in user has sufficient permissions to execute a given statement. As there are many places in the class hierarchy of {{SelectStatement}} and {{ModificationStatement}} where a {{FunctionCall}} might be, I added a method {{IterableFunction getFunctions()}} to a number of classes interfaces. The result is that at the top level, in {{checkAccess()}}, we can extract a list of all the functions involved in the execution and check the user's permissions on each of them. I took guidance from the existing {{usesFunction}} method, which determines prepared statements that need to be removed from cache when a function is dropped. Also, I used the code coverage check to verify that I'd hit all the places where a function might be used, but it is possible that I missed some. Not all functions get evaluated at execution time however. A pure function with only terminal arguments is executed at prepare time, hence the addition of the {{PreparationContext}} argument to {{Term.Raw#prepare}}. This is (currently) just a wrapper around a {{ClientState}} instance which enables us to do the permissions check before executing terminal functions (in {{FunctionCall.Raw#execute}}). The unfortunate effect of this is that it cascades down to every {{Term.Raw}} implementation, most of which currently do nothing with it. The only alternative I could come up with was to defer execution of terminal functions depending on the configured {{IAuthorizer}}, but tbh that seemed worse. h4.Permissions This introduces a new {{EXECUTE}} permission, which is fairly self explanatory. Aside from the obvious though, {{EXECUTE}} is also required on a scalar function when defining it as either the state or final function in an aggregate. So to run {code} CREATE AGGREGATE ks.aggregate_func(int) SFUNC state_func STYPE int FINALFUNCTION final_func INITCOND 0 {code} would require {{EXECUTE}} on both {{state_func}} and {{final_func}}. In addition, any user who actually run a statement using {{aggregate_func}} will require {{EXECUTE}} on {{state_func}}, {{final_func}} and {{aggregate_func}}. The exception to this is that native functions, those in the {{system}} keyspace do not require {{EXECUTE}}. So {{token()}}, {{now()}}, {{uuid}} and {{timeuuid}} functions, plus the various type conversion functions {{Xasblob()}} and {{blobasX()}} remain available by all users. h4.FunctionResource In order to apply permissions to UDFs and Aggregates, I've added a new {{IResource}} implementation, {{FunctionResource}} The hierarchy for {{FunctionResource}} looks like: {code} all functions - root level resource representing all functions defined across every keyspace all functions in ks - keyspace level resource to apply permissions to all functions within a keyspace function ks.function(arg_types) - a specific function, scoped to a specific keyspace {code} The Collection types support {{CREATE}}, {{ALTER}}, {{DROP}}, {{AUTHORIZE}} and {{EXECUTE}} permissions, while individual functions support {{ALTER}}, {{DROP}}, {{AUTHORIZE}} and {{EXECUTE}} (i.e. it doesn't make sense to grant {{CREATE}} on an existing function). The fact that we use a distinct resource hierarchy makes it possible seperate {{CREATE TABLE|INDEX}} privileges from {{CREATE FUNCTION|AGGREGATE}}. In turn, this has a couple of effects. * {{CREATE}} on a keyspace (or {{ALL KEYSPACES}}) is no longer sufficient to create new functions/aggregates. * The perms automatically granted to creators of db objects (CASSANDRA-7216) have been extended to include the new {{FunctionResource}} representing all functions in that keyspace. The upshot is that if you create a keyspace, you have rights to create functions in it (and/or grant those rights to other roles). h4.Syntax {code:title=Grant/Revoke permissions on a specific function} GRANT EXECUTE ON test_ks.some_func(int, int, text) TO my_role REVOKE EXECUTE ON test_ks.some_func(int, int, text) FROM my_role {code}
[jira] [Commented] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392823#comment-14392823 ] Gustav Munkby commented on CASSANDRA-9097: -- Sorry, I'm on Cassandra 2.1.3 Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Yuki Morishita Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9056) Tombstoned SSTables are not removed past max_sstable_age_days when using DTCS
[ https://issues.apache.org/jira/browse/CASSANDRA-9056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jim Plush updated CASSANDRA-9056: - Attachment: Screenshot 2015-04-02 08.23.41.png attaching screenshot, with patch applied to one box of 3 test boxes it immediately cleaned up expired data works! Tombstoned SSTables are not removed past max_sstable_age_days when using DTCS - Key: CASSANDRA-9056 URL: https://issues.apache.org/jira/browse/CASSANDRA-9056 Project: Cassandra Issue Type: Bug Components: Core Reporter: Shawn Kumar Assignee: Marcus Eriksson Labels: compaction, dtcs Fix For: 3.0, 2.0.15, 2.1.5 Attachments: Screenshot 2015-04-02 08.23.41.png When using DTCS, tombstoned sstables past max_sstable_age_days are not removed by minor compactions. I was able to reproduce this manually and also wrote a dtest (currently failing) which reproduces this issue: [dtcs_deletion_test|https://github.com/riptano/cassandra-dtest/blob/master/compaction_test.py#L115] in compaction_test.py. I tried applying the patch in CASSANDRA-8359 but found that the test still fails with the same issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8348) allow takeColumnFamilySnapshot to take a list of ColumnFamilies
[ https://issues.apache.org/jira/browse/CASSANDRA-8348?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sachin Janani updated CASSANDRA-8348: - Attachment: 8348_v2.patch Updated Patch allow takeColumnFamilySnapshot to take a list of ColumnFamilies --- Key: CASSANDRA-8348 URL: https://issues.apache.org/jira/browse/CASSANDRA-8348 Project: Cassandra Issue Type: Improvement Reporter: Peter Halliday Priority: Minor Fix For: 2.1.5 Attachments: 8348_v2.patch, Patch-8348.patch Within StorageServiceMBean.java the function takeSnapshot allows for a list of keyspaces to snapshot. However, the function takeColumnFamilySnapshot only allows for a single ColumnFamily to snapshot. This should allow for multiple ColumnFamilies within the same Keyspace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sergey Maznichenko updated CASSANDRA-9092: -- Description: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space ERROR [HintedHandoff:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[HintedHandoff:1,1,main] java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. was: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space ERROR [HintedHandoff:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[HintedHandoff:1,1,main] java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9099) Validation compaction not working for parallel repair
Yuki Morishita created CASSANDRA-9099: - Summary: Validation compaction not working for parallel repair Key: CASSANDRA-9099 URL: https://issues.apache.org/jira/browse/CASSANDRA-9099 Project: Cassandra Issue Type: Bug Reporter: Yuki Morishita Assignee: Yuki Morishita Fix For: 3.0 Attachments: 0001-Fix-wrong-check-when-validating-in-parallel.patch Because boundary check is inverse, we are validating wrong SSTables. This is only for trunk. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9097: --- Reproduced In: 2.1.3 Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Yuki Morishita Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9098) Anticompactions not visible in nodetool compactionstats
[ https://issues.apache.org/jira/browse/CASSANDRA-9098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392827#comment-14392827 ] Gustav Munkby commented on CASSANDRA-9098: -- This is on Cassandra 2.1.3, by the way. Anticompactions not visible in nodetool compactionstats --- Key: CASSANDRA-9098 URL: https://issues.apache.org/jira/browse/CASSANDRA-9098 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Marcus Eriksson Priority: Minor Fix For: 2.1.5 There seems to be no way to monitor the progress of anticompactions except parsing the logs (which incidentally is quite complicated). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8348) allow takeColumnFamilySnapshot to take a list of ColumnFamilies
[ https://issues.apache.org/jira/browse/CASSANDRA-8348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392834#comment-14392834 ] Sachin Janani commented on CASSANDRA-8348: -- [~nickmbailey] I have created the new patch using latest code from trunk and also removed the redundant calls to *getValidKeySpace*. Also I think the imports should be managed properly and unnecessary imports should be avoided.Do you want me to remove it? Whats your opinion? allow takeColumnFamilySnapshot to take a list of ColumnFamilies --- Key: CASSANDRA-8348 URL: https://issues.apache.org/jira/browse/CASSANDRA-8348 Project: Cassandra Issue Type: Improvement Reporter: Peter Halliday Priority: Minor Fix For: 2.1.5 Attachments: 8348_v2.patch, Patch-8348.patch Within StorageServiceMBean.java the function takeSnapshot allows for a list of keyspaces to snapshot. However, the function takeColumnFamilySnapshot only allows for a single ColumnFamily to snapshot. This should allow for multiple ColumnFamilies within the same Keyspace. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9056) Tombstoned SSTables are not removed past max_sstable_age_days when using DTCS
[ https://issues.apache.org/jira/browse/CASSANDRA-9056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams updated CASSANDRA-9056: Fix Version/s: (was: 2.0.14) (was: 2.1.4) 2.1.5 2.0.15 Tombstoned SSTables are not removed past max_sstable_age_days when using DTCS - Key: CASSANDRA-9056 URL: https://issues.apache.org/jira/browse/CASSANDRA-9056 Project: Cassandra Issue Type: Bug Components: Core Reporter: Shawn Kumar Assignee: Marcus Eriksson Labels: compaction, dtcs Fix For: 3.0, 2.0.15, 2.1.5 When using DTCS, tombstoned sstables past max_sstable_age_days are not removed by minor compactions. I was able to reproduce this manually and also wrote a dtest (currently failing) which reproduces this issue: [dtcs_deletion_test|https://github.com/riptano/cassandra-dtest/blob/master/compaction_test.py#L115] in compaction_test.py. I tried applying the patch in CASSANDRA-8359 but found that the test still fails with the same issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8336) Quarantine nodes after receiving the gossip shutdown message
[ https://issues.apache.org/jira/browse/CASSANDRA-8336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14389207#comment-14389207 ] Brandon Williams edited comment on CASSANDRA-8336 at 4/2/15 1:12 PM: - After wrestling with exceptions for a bit, I came up with a simpler solution. Gossiper's stop() can examine the local state itself, and skip shutdown announcement if it doesn't exist. We still need stopSilently (which I renamed in this patch from stopForLeaving) for cases like decom, where we aren't coming back and don't want to mutate our state on shutdown. was (Author: brandon.williams): After wrestling with exceptions for a bit, I came up with a simpler solution. Gossiper's stop() can examine the local state itself, and skip shutdown announcement if it doesn't exist. We still need stopSilently (which I renamed in this patch from stopForLeaving) for cases like decom, where we aren't coming back and don't wait to mutate our state on shutdown. Quarantine nodes after receiving the gossip shutdown message Key: CASSANDRA-8336 URL: https://issues.apache.org/jira/browse/CASSANDRA-8336 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Assignee: Brandon Williams Fix For: 2.0.15 Attachments: 8336-v2.txt, 8336-v3.txt, 8336-v4.txt, 8336.txt In CASSANDRA-3936 we added a gossip shutdown announcement. The problem here is that this isn't sufficient; you can still get TOEs and have to wait on the FD to figure things out. This happens due to gossip propagation time and variance; if node X shuts down and sends the message to Y, but Z has a greater gossip version than Y for X and has not yet received the message, it can initiate gossip with Y and thus mark X alive again. I propose quarantining to solve this, however I feel it should be a -D parameter you have to specify, so as not to destroy current dev and test practices, since this will mean a node that shuts down will not be able to restart until the quarantine expires. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sergey Maznichenko updated CASSANDRA-9092: -- Description: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space The problem exists only in DC2. We have 1GbE between DC1 and DC2. was: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. The problem exists only in DC2. We have 1GbE between DC1 and DC2. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sergey Maznichenko updated CASSANDRA-9092: -- Description: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. was: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in The problem exists only in DC2. We have 1GbE between DC1 and DC2. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sergey Maznichenko updated CASSANDRA-9092: -- Description: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in The problem exists only in DC2. We have 1GbE between DC1 and DC2. was: Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space The problem exists only in DC2. We have 1GbE between DC1 and DC2. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8979) MerkleTree mismatch for deleted and non-existing rows
[ https://issues.apache.org/jira/browse/CASSANDRA-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Stefan Podkowinski updated CASSANDRA-8979: -- Attachment: 8979-RevertPrecompactedRow-2.0.txt 8979-LazilyCompactedRow-2.0.txt MerkleTree mismatch for deleted and non-existing rows - Key: CASSANDRA-8979 URL: https://issues.apache.org/jira/browse/CASSANDRA-8979 Project: Cassandra Issue Type: Bug Components: Core Reporter: Stefan Podkowinski Assignee: Stefan Podkowinski Fix For: 2.1.5 Attachments: 8979-AvoidBufferAllocation-2.0_patch.txt, 8979-LazilyCompactedRow-2.0.txt, 8979-RevertPrecompactedRow-2.0.txt, cassandra-2.0-8979-lazyrow_patch.txt, cassandra-2.0-8979-validator_patch.txt, cassandra-2.0-8979-validatortest_patch.txt, cassandra-2.1-8979-lazyrow_patch.txt, cassandra-2.1-8979-validator_patch.txt Validation compaction will currently create different hashes for rows that have been deleted compared to nodes that have not seen the rows at all or have already compacted them away. In case this sounds familiar to you, see CASSANDRA-4905 which was supposed to prevent hashing of expired tombstones. This still seems to be in place, but does not address the issue completely. Or there was a change in 2.0 that rendered the patch ineffective. The problem is that rowHash() in the Validator will return a new hash in any case, whether the PrecompactedRow did actually update the digest or not. This will lead to the case that a purged, PrecompactedRow will not change the digest, but we end up with a different tree compared to not having rowHash called at all (such as in case the row already doesn't exist). As an implication, repair jobs will constantly detect mismatches between older sstables containing purgable rows and nodes that have already compacted these rows. After transfering the reported ranges, the newly created sstables will immediately get deleted again during the following compaction. This will happen for each repair run over again until the sstable with the purgable row finally gets compacted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8979) MerkleTree mismatch for deleted and non-existing rows
[ https://issues.apache.org/jira/browse/CASSANDRA-8979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392508#comment-14392508 ] Stefan Podkowinski commented on CASSANDRA-8979: --- Yes, I guess the implications for clusters running mixed versions haven't been really considered. I've added a new patch which makes sure the digest calculation for non-empty rows will stay the same after the patch. Changes in detail: PrecompactedRow Would be reverted to exact same code as before the patch. The issue described in the ticket would still be solved by the patched Validator, which now only creates a new RowHash in case the digest has been updated. The PrecompactRow never updated the digest in case of empty rows. LazilyCompactedRow I've changed the digest update call condition to: nonEmpty || !DeletionTime.LIVE this makes sure that digest update is called in any case for non-empty rows (and will thus be backwards compatible) but still skips update for empty rows with LIVE deletes. As for backwards compatability it still should be clear that after the patch empty/purged rows will now not create a digest in the MT anymore compared to versions before the patch. In this case those rows would still be streamed after repairs. This applies to both Precompacted and Lazy. One node with the new version would create the same mismatch as a node with the old version and a missing row. MerkleTree mismatch for deleted and non-existing rows - Key: CASSANDRA-8979 URL: https://issues.apache.org/jira/browse/CASSANDRA-8979 Project: Cassandra Issue Type: Bug Components: Core Reporter: Stefan Podkowinski Assignee: Stefan Podkowinski Fix For: 2.1.5 Attachments: 8979-AvoidBufferAllocation-2.0_patch.txt, 8979-LazilyCompactedRow-2.0.txt, 8979-RevertPrecompactedRow-2.0.txt, cassandra-2.0-8979-lazyrow_patch.txt, cassandra-2.0-8979-validator_patch.txt, cassandra-2.0-8979-validatortest_patch.txt, cassandra-2.1-8979-lazyrow_patch.txt, cassandra-2.1-8979-validator_patch.txt Validation compaction will currently create different hashes for rows that have been deleted compared to nodes that have not seen the rows at all or have already compacted them away. In case this sounds familiar to you, see CASSANDRA-4905 which was supposed to prevent hashing of expired tombstones. This still seems to be in place, but does not address the issue completely. Or there was a change in 2.0 that rendered the patch ineffective. The problem is that rowHash() in the Validator will return a new hash in any case, whether the PrecompactedRow did actually update the digest or not. This will lead to the case that a purged, PrecompactedRow will not change the digest, but we end up with a different tree compared to not having rowHash called at all (such as in case the row already doesn't exist). As an implication, repair jobs will constantly detect mismatches between older sstables containing purgable rows and nodes that have already compacted these rows. After transfering the reported ranges, the newly created sstables will immediately get deleted again during the following compaction. This will happen for each repair run over again until the sstable with the purgable row finally gets compacted. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
Gustav Munkby created CASSANDRA-9097: Summary: Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Priority: Minor I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9098) Anticompactions not visible in nodetool compactionstats
[ https://issues.apache.org/jira/browse/CASSANDRA-9098?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9098: --- Fix Version/s: 2.1.5 Assignee: Marcus Eriksson Anticompactions not visible in nodetool compactionstats --- Key: CASSANDRA-9098 URL: https://issues.apache.org/jira/browse/CASSANDRA-9098 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Marcus Eriksson Priority: Minor Fix For: 2.1.5 There seems to be no way to monitor the progress of anticompactions except parsing the logs (which incidentally is quite complicated). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392689#comment-14392689 ] Philip Thompson commented on CASSANDRA-9097: What Cassandra version are you using? Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392683#comment-14392683 ] Brandon Williams commented on CASSANDRA-9092: - Define stops because there should be some sort of error message, it won't just exit. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392398#comment-14392398 ] Sergey Maznichenko edited comment on CASSANDRA-9092 at 4/2/15 10:19 AM: Java heap is selected automatically in cassandra-env.sh. I tried to set MAX_HEAP_SIZE=8G, NEW_HEAP_SIZE=800M, but it didn't help. nodetool disableautocompaction - didn't help, compactions continue after restart node. nodetool truncatehints - didn't help, it showed message like 'cannot stop running hint compaction'. One of nodes had ~24000 files in system\hints-..., I stepped node and deleted them, it helps and node is running about 10 hours. Other node has 18154 files in system\hints-... (~1.1TB) and has the same problem, I leave it for experiments. Workload: 20-40 processes on application servers, each one performs loading files in blobs (one big table), size of each file is about 3.5MB, key - UUID. CREATE KEYSPACE filespace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1', 'DC2': '1'} AND durable_writes = true; CREATE TABLE filespace.filestorage ( key text, filename text, value blob, PRIMARY KEY (key, chunk) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (chunk ASC) AND bloom_filter_fp_chance = 0.01 AND caching = '{keys:ALL, rows_per_partition:NONE}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99.0PERCENTILE'; nodetool status filespace Datacenter: DC1 === Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.X.X.12 4.82 TB256 28.0% 25cefe6a-a9b1-4b30-839d-46ed5f4736cc RAC1 UN 10.X.X.13 3.98 TB256 22.9% ef439686-1e8f-4b31-9c42-f49ff7a8b537 RAC1 UN 10.X.X.10 4.52 TB256 26.1% a11f52a6-1bff-4b47-bfa9-628a55a058dc RAC1 UN 10.X.X.11 4.01 TB256 23.1% 0f454fa7-5cdf-45b3-bf2d-729ab7bd9e52 RAC1 Datacenter: DC2 === Status=Up/Down |/ State=Normal/Leaving/Joining/Moving -- Address Load Tokens Owns (effective) Host ID Rack UN 10.X.X.137 4.64 TB256 22.6% e184cc42-7cd9-4e2e-bd0d-55a6a62f69dd RAC1 UN 10.X.X.136 1.25 TB256 27.2% c8360341-83e0-4778-b2d4-3966f083151b RAC1 DN 10.X.X.139 4.81 TB256 25.8% 1f434cfe-6952-4d41-8fc5-780a18e64963 RAC1 UN 10.X.X.138 3.69 TB256 24.4% b7467041-05d9-409f-a59a-438d0a29f6a7 RAC1 I need some workaround to prevent this situation with hints. How we use default values for: hinted_handoff_enabled: 'true' max_hints_delivery_threads: 2 max_hint_window_in_ms: 1080 hinted_handoff_throttle_in_kb: 1024 Should I disable hints or increase number of threads and throughput? For example: hinted_handoff_enabled: 'true' max_hints_delivery_threads: 20 max_hint_window_in_ms: 10800 hinted_handoff_throttle_in_kb: 10240 was (Author: msb): Java heap is selected automatically in cassandra-env.sh. I tried to set MAX_HEAP_SIZE=8G, NEW_HEAP_SIZE=800M, but it didn't help. nodetool disableautocompaction - didn't help, compactions continue after restart node. nodetool truncatehints - didn't help, it showed message like 'cannot stop running hint compaction'. One of nodes had ~24000 files in system\hints-..., I stepped node and deleted them, it helps and node is running about 10 hours. Other node has 18154 files in system\hints-... (~1.1TB) and has the same problem, I leave it for experiments. Workload: 20-40 processes on application servers, each one performs loading files in blobs (one big table), size of each file is about 3.5MB, key - UUID. CREATE KEYSPACE filespace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1', 'DC2': '1'} AND durable_writes = true; CREATE TABLE filespace.filestorage ( key text, filename text, value blob, PRIMARY KEY (key, chunk) ) WITH COMPACT STORAGE AND CLUSTERING ORDER BY (chunk ASC) AND bloom_filter_fp_chance = 0.01 AND caching = '{keys:ALL, rows_per_partition:NONE}' AND comment = '' AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'} AND compression = {'sstable_compression':
[jira] [Commented] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392777#comment-14392777 ] Sergey Maznichenko commented on CASSANDRA-9092: --- The node reproduces this error every time after attempt of compacting system.hints. I tried MAX_HEAP_SIZE=16G, it didn't help. Workaround is manually deleting system.hint files and restart node, but we have a chance to investigate this error in order to fix it in future releases. Any suggestions? Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. Stops, means ERROR [CompactionExecutor:1] 2015-04-01 23:33:44,456 CassandraDaemon.java:153 - Exception in thread Thread[CompactionExecutor:1,1,main] java.lang.OutOfMemoryError: Java heap space Full errors listing attached in cassandra_crash1.txt The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Issue Comment Deleted] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9092: --- Comment: was deleted (was: The error message is attached as a .txt file. It's running out of heap space.) Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-9098) Anticompactions not visible in nodetool compactionstats
Gustav Munkby created CASSANDRA-9098: Summary: Anticompactions not visible in nodetool compactionstats Key: CASSANDRA-9098 URL: https://issues.apache.org/jira/browse/CASSANDRA-9098 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Priority: Minor There seems to be no way to monitor the progress of anticompactions except parsing the logs (which incidentally is quite complicated). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9097: --- Fix Version/s: 2.1.5 Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-9097) Repeated incremental nodetool repair results in failed repairs due to running anticompaction
[ https://issues.apache.org/jira/browse/CASSANDRA-9097?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-9097: --- Assignee: Yuki Morishita Repeated incremental nodetool repair results in failed repairs due to running anticompaction Key: CASSANDRA-9097 URL: https://issues.apache.org/jira/browse/CASSANDRA-9097 Project: Cassandra Issue Type: Bug Reporter: Gustav Munkby Assignee: Yuki Morishita Priority: Minor Fix For: 2.1.5 I'm trying to synchronize incremental repairs over multiple nodes in a Cassandra cluster, and it does not seem to easily achievable. In principle, the process iterates through the nodes of the cluster and performs `nodetool -h $NODE repair --incremental`, but that sometimes fails on subsequent nodes. The reason for failing seems to be that the repair returns as soon as the repair and the _local_ anticompaction has completed, but does not guarantee that remote anticompactions are complete. If I subsequently try to issue another repair command, they fail to start (and terminate with failure after about one minute). It usually isn't a problem, as the local anticompaction typically involves as much (or more) data as the remote ones, but sometimes not. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9092) Nodes in DC2 die during and after huge write workload
[ https://issues.apache.org/jira/browse/CASSANDRA-9092?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392759#comment-14392759 ] Philip Thompson commented on CASSANDRA-9092: The error message is attached as a .txt file. It's running out of heap space. Nodes in DC2 die during and after huge write workload - Key: CASSANDRA-9092 URL: https://issues.apache.org/jira/browse/CASSANDRA-9092 Project: Cassandra Issue Type: Bug Environment: CentOS 6.2 64-bit, Cassandra 2.1.2, java version 1.7.0_71 Java(TM) SE Runtime Environment (build 1.7.0_71-b14) Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode) Reporter: Sergey Maznichenko Fix For: 2.1.5 Attachments: cassandra_crash1.txt Hello, We have Cassandra 2.1.2 with 8 nodes, 4 in DC1 and 4 in DC2. Node is VM 8 CPU, 32GB RAM During significant workload (loading several millions blobs ~3.5MB each), 1 node in DC2 stops and after some time next 2 nodes in DC2 also stops. Now, 2 of nodes in DC2 do not work and stops after 5-10 minutes after start. I see many files in system.hints table and error appears in 2-3 minutes after starting system.hints auto compaction. The problem exists only in DC2. We have 1GbE between DC1 and DC2. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-9088) Don't include tmp files in SSTableOfflineRelevel
[ https://issues.apache.org/jira/browse/CASSANDRA-9088?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14392754#comment-14392754 ] Carl Yeksigian commented on CASSANDRA-9088: --- +1 Don't include tmp files in SSTableOfflineRelevel Key: CASSANDRA-9088 URL: https://issues.apache.org/jira/browse/CASSANDRA-9088 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Marcus Eriksson Fix For: 2.0.15 Attachments: 0001-dont-include-tmp-files-in-offline-relevel.patch Avoid including tmp files in offline relevel -- This message was sent by Atlassian JIRA (v6.3.4#6332)