[jira] [Resolved] (CASSANDRA-7129) Consider allowing clients to make the Paging State available to users
[ https://issues.apache.org/jira/browse/CASSANDRA-7129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sylvain Lebresne resolved CASSANDRA-7129. - Resolution: Invalid As far as the native protocol is concerned, the paging state is some bytes that the driver should return to continue paging as is (you definitively should not try to decode those bytes in one way or another if you don't want trouble for sure). This is not extremely different from say the prepared statement ID in that respect. What the drivers want to do with the paging state is their business and I don't see what more we can do. Consider allowing clients to make the Paging State available to users - Key: CASSANDRA-7129 URL: https://issues.apache.org/jira/browse/CASSANDRA-7129 Project: Cassandra Issue Type: Improvement Components: API Reporter: Michaël Figuière This is a follow up to a ticket that has been opened on the DataStax Java Driver JIRA (https://datastax-oss.atlassian.net/browse/JAVA-323). Currently the Paging State is described as an internal data structure that might change in any upcoming version. As a consequence it isn't safe to make it available to users of the Cassandra Drivers. It would be and interesting feature to work on making Cassandra safe against all the situation that might happen after unleashing paging states in the wild on the client side: they could end up being included in some web cookies, allowing malicious users to forge some, we might also have some compatibility issues as some paging states might come back to Cassandra after an upgrade of the cluster,... If the discussion in this ticket turns out to conclude that the paging state SHOULD NOT be made available to users, at least it will be a clarification of something that was mostly implicit (AFAIK) so far. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8229) Aggregate functions do not return expected values or metadata
[ https://issues.apache.org/jira/browse/CASSANDRA-8229?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-8229: -- Attachment: CASSANDRA-8229-V2.txt Aggregate functions do not return expected values or metadata - Key: CASSANDRA-8229 URL: https://issues.apache.org/jira/browse/CASSANDRA-8229 Project: Cassandra Issue Type: Bug Reporter: Benjamin Lerer Assignee: Benjamin Lerer Fix For: 3.0 Attachments: CASSANDRA-8229-V2.txt, CASSANDRA-8229.txt Aggregrate functions do not behave as expected on the following points: * If no row is selected the resultset returned is empty whereas in the case of aggregates it should returns some default values (e.g. {{SELECT count(*) ...}} should return 0 if no row is returned). * The column name returned for {{max(a)}} when a is an int is {{max(int - int)}} and should be {{max(a)}} if no alias is used. * When used with limit the value returned is not always the expected one. It sometimes include an extra row. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194640#comment-14194640 ] Tupshin Harper commented on CASSANDRA-8225: --- fwiw, i agree wholeheartedly with sylvain. the cqlsh-based approach (executing python code) is a dead end for getting decent performance out of bulk loading. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194654#comment-14194654 ] Aleksey Yeschenko commented on CASSANDRA-8225: -- So is simplistic CVS-loader, even if made fast. It's not where most of the imported data (in huge amounts, where 10x improved 2.1 COPY FROM doesn't cut it) is coming from, and a wrong place to focus our effort. The only reason I'm okay with improving it with using batches+prepared+multiple processes is that this stuff is very LHF. What we *should* go after is data loading directly via JDBC (and from C* itself - to cover CASSANDRA-8234 as well). Maybe an importer for mangodb, too. Something like Sqoop, but tailored for C*, and flexible enough to support denormalization out of the box. Maybe distributed, and based on Spark, maybe not. Writing a faster csvloader in Java IMO is just a waste of our time, compared to that. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[5/5] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Conflicts: src/java/org/apache/cassandra/db/compaction/CompactionManager.java src/java/org/apache/cassandra/db/compaction/Upgrader.java src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java test/unit/org/apache/cassandra/db/compaction/AntiCompactionTest.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/0f59629c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/0f59629c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/0f59629c Branch: refs/heads/trunk Commit: 0f59629ce280ba2a74d65a7719dde7cf79923f05 Parents: e60a06c 5160c91 Author: Marcus Eriksson marc...@apache.org Authored: Mon Nov 3 17:02:10 2014 +0100 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Nov 3 17:02:10 2014 +0100 -- CHANGES.txt | 2 + .../org/apache/cassandra/db/DataTracker.java| 109 ++-- .../db/compaction/CompactionManager.java| 29 +- .../cassandra/db/compaction/CompactionTask.java | 7 +- .../cassandra/db/compaction/Scrubber.java | 12 +- .../cassandra/db/compaction/Upgrader.java | 31 +- .../io/sstable/IndexSummaryManager.java | 2 +- .../cassandra/io/sstable/SSTableRewriter.java | 160 +++--- .../io/sstable/format/SSTableReader.java| 6 + .../db/compaction/AntiCompactionTest.java | 42 +- .../io/sstable/IndexSummaryManagerTest.java | 2 +- .../cassandra/io/sstable/SSTableReaderTest.java | 2 +- .../io/sstable/SSTableRewriterTest.java | 504 +++ 13 files changed, 755 insertions(+), 153 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/CHANGES.txt -- diff --cc CHANGES.txt index 3a8ada2,32083cc..9754110 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,37 -1,6 +1,39 @@@ +3.0 + * Mark sstables as repaired after full repair (CASSANDRA-7586) + * Extend Descriptor to include a format value and refactor reader/writer apis (CASSANDRA-7443) + * Integrate JMH for microbenchmarks (CASSANDRA-8151) + * Keep sstable levels when bootstrapping (CASSANDRA-7460) + * Add Sigar library and perform basic OS settings check on startup (CASSANDRA-7838) + * Support for aggregation functions (CASSANDRA-4914) + * Remove cassandra-cli (CASSANDRA-7920) + * Accept dollar quoted strings in CQL (CASSANDRA-7769) + * Make assassinate a first class command (CASSANDRA-7935) + * Support IN clause on any clustering column (CASSANDRA-4762) + * Improve compaction logging (CASSANDRA-7818) + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917) + * Do anticompaction in groups (CASSANDRA-6851) + * Support pure user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 7781, 7929, + 7924, 7812, 8063) + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416) + * Move sstable RandomAccessReader to nio2, which allows using the + FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050) + * Remove CQL2 (CASSANDRA-5918) + * Add Thrift get_multi_slice call (CASSANDRA-6757) + * Optimize fetching multiple cells by name (CASSANDRA-6933) + * Allow compilation in java 8 (CASSANDRA-7028) + * Make incremental repair default (CASSANDRA-7250) + * Enable code coverage thru JaCoCo (CASSANDRA-7226) + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) + * Shorten SSTable path (CASSANDRA-6962) + * Use unsafe mutations for most unit tests (CASSANDRA-6969) + * Fix race condition during calculation of pending ranges (CASSANDRA-7390) + * Fail on very large batch sizes (CASSANDRA-8011) + * improve concurrency of repair (CASSANDRA-6455) + + 2.1.2 + * Refactor how we track live size (CASSANDRA-7852) + * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) * Fix race in RecoveryManagerTest (CASSANDRA-8176) http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/db/DataTracker.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/db/compaction/CompactionManager.java -- diff --cc src/java/org/apache/cassandra/db/compaction/CompactionManager.java index 3ee36cd,84c3cb5..cccb7f9 --- a/src/java/org/apache/cassandra/db/compaction/CompactionManager.java +++ b/src/java/org/apache/cassandra/db/compaction/CompactionManager.java @@@ -1045,76 -987,63 +1046,78 @@@ public class CompactionManager implemen if (!new
[1/5] git commit: Make sure unfinished compaction files are removed.
Repository: cassandra Updated Branches: refs/heads/trunk e60a06cc8 - 0f59629ce Make sure unfinished compaction files are removed. Patch by marcuse; reviewed by yukim for CASSANDRA-8124 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9c316e78 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9c316e78 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9c316e78 Branch: refs/heads/trunk Commit: 9c316e7858f6dbf9df892aff78431044aa104ed9 Parents: d230922 Author: Marcus Eriksson marc...@apache.org Authored: Fri Oct 17 14:15:46 2014 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Nov 3 16:17:01 2014 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableReader.java | 6 + .../cassandra/io/sstable/SSTableRewriter.java | 90 +++- .../io/sstable/SSTableRewriterTest.java | 473 +++ 4 files changed, 555 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 494fb93..681d616 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) * Fix race in RecoveryManagerTest (CASSANDRA-8176) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 872f7df..40e708d 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -1599,6 +1599,12 @@ public class SSTableReader extends SSTable } } +@VisibleForTesting +int referenceCount() +{ +return references.get(); +} + /** * Release reference to this SSTableReader. * If there is no one referring to this SSTable, and is marked as compacted, http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java index 76677ac..2c9fe7e 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java @@ -25,8 +25,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Functions; +import com.google.common.collect.Lists; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamilyStore; @@ -37,6 +39,7 @@ import org.apache.cassandra.db.compaction.AbstractCompactedRow; import org.apache.cassandra.db.compaction.OperationType; import org.apache.cassandra.utils.CLibrary; import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.Pair; /** * Wraps one or more writers as output for rewriting one or more readers: every sstable_preemptive_open_interval_in_mb @@ -55,8 +58,7 @@ import org.apache.cassandra.utils.FBUtilities; */ public class SSTableRewriter { - -private static final long preemptiveOpenInterval; +private static long preemptiveOpenInterval; static { long interval = DatabaseDescriptor.getSSTablePreempiveOpenIntervalInMB() * (1L 20); @@ -65,6 +67,14 @@ public class SSTableRewriter preemptiveOpenInterval = interval; } +private boolean isFinished = false; + +@VisibleForTesting +static void overrideOpenInterval(long size) +{ +preemptiveOpenInterval = size; +} + private final DataTracker dataTracker; private final ColumnFamilyStore cfs; @@ -77,6 +87,8 @@ public class SSTableRewriter private long currentlyOpenedEarlyAt; // the position (in MB) in the target file we last (re)opened at private final ListSSTableReader finished = new ArrayList(); // the resultant sstables +private final ListSSTableReader finishedOpenedEarly = new ArrayList(); // the 'finished' tmplink sstables +private final ListPairSSTableWriter, SSTableReader finishedWriters = new ArrayList(); private final OperationType rewriteType; // the type
[4/5] Merge branch 'cassandra-2.1' into trunk
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java -- diff --cc src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java index c3062f7,000..7d4b8f3 mode 100644,00..100644 --- a/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/format/SSTableReader.java @@@ -1,1881 -1,0 +1,1887 @@@ +package org.apache.cassandra.io.sstable.format; + +/* + * 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. + */ + +import com.clearspring.analytics.stream.cardinality.CardinalityMergeException; +import com.clearspring.analytics.stream.cardinality.ICardinality; +import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterators; +import com.google.common.collect.Ordering; +import com.google.common.primitives.Longs; +import com.google.common.util.concurrent.RateLimiter; +import org.apache.cassandra.cache.CachingOptions; +import org.apache.cassandra.cache.InstrumentingCache; +import org.apache.cassandra.cache.KeyCacheKey; +import org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor; +import org.apache.cassandra.config.*; +import org.apache.cassandra.db.*; +import org.apache.cassandra.db.columniterator.OnDiskAtomIterator; +import org.apache.cassandra.db.commitlog.ReplayPosition; +import org.apache.cassandra.db.compaction.ICompactionScanner; +import org.apache.cassandra.db.composites.CellName; +import org.apache.cassandra.db.filter.ColumnSlice; +import org.apache.cassandra.db.index.SecondaryIndex; +import org.apache.cassandra.dht.*; +import org.apache.cassandra.io.compress.CompressedRandomAccessReader; +import org.apache.cassandra.io.compress.CompressedThrottledReader; +import org.apache.cassandra.io.compress.CompressionMetadata; +import org.apache.cassandra.io.sstable.*; +import org.apache.cassandra.io.sstable.metadata.*; +import org.apache.cassandra.io.util.*; +import org.apache.cassandra.metrics.RestorableMeter; +import org.apache.cassandra.metrics.StorageMetrics; +import org.apache.cassandra.service.ActiveRepairService; +import org.apache.cassandra.service.CacheService; +import org.apache.cassandra.service.StorageService; +import org.apache.cassandra.utils.*; +import org.apache.cassandra.utils.concurrent.OpOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.nio.ByteBuffer; +import java.util.*; +import java.util.concurrent.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import static org.apache.cassandra.db.Directories.SECONDARY_INDEX_NAME_SEPARATOR; + + +/** + * SSTableReaders are open()ed by Keyspace.onStart; after that they are created by SSTableWriter.renameAndOpen. + * Do not re-call open() on existing SSTable files; use the references kept by ColumnFamilyStore post-start instead. + */ +public abstract class SSTableReader extends SSTable +{ +private static final Logger logger = LoggerFactory.getLogger(SSTableReader.class); + +private static final ScheduledThreadPoolExecutor syncExecutor = new ScheduledThreadPoolExecutor(1); +private static final RateLimiter meterSyncThrottle = RateLimiter.create(100.0); + +public static final ComparatorSSTableReader maxTimestampComparator = new ComparatorSSTableReader() +{ +public int compare(SSTableReader o1, SSTableReader o2) +{ +long ts1 = o1.getMaxTimestamp(); +long ts2 = o2.getMaxTimestamp(); +return (ts1 ts2 ? -1 : (ts1 == ts2 ? 0 : 1)); +} +}; + +public static final ComparatorSSTableReader sstableComparator = new ComparatorSSTableReader() +{ +public int compare(SSTableReader o1, SSTableReader o2) +{ +return o1.first.compareTo(o2.first); +} +}; + +public static final OrderingSSTableReader sstableOrdering = Ordering.from(sstableComparator); + +
[2/2] git commit: Refactor how we track live size
Refactor how we track live size Patch by marcuse; reviewed by yukim for CASSANDRA-7852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5160c916 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5160c916 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5160c916 Branch: refs/heads/cassandra-2.1 Commit: 5160c916c90886f69023ddba0078a624e5cf202d Parents: 9c316e7 Author: Marcus Eriksson marc...@apache.org Authored: Fri Oct 17 14:15:46 2014 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Nov 3 16:39:19 2014 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 109 --- .../db/compaction/CompactionManager.java| 26 ++--- .../cassandra/db/compaction/CompactionTask.java | 7 +- .../cassandra/db/compaction/Scrubber.java | 12 +- .../cassandra/db/compaction/Upgrader.java | 31 +++--- .../io/sstable/IndexSummaryManager.java | 2 +- .../cassandra/io/sstable/SSTableRewriter.java | 90 --- .../db/compaction/AntiCompactionTest.java | 48 +++- .../io/sstable/IndexSummaryManagerTest.java | 2 +- .../cassandra/io/sstable/SSTableReaderTest.java | 2 +- .../io/sstable/SSTableRewriterTest.java | 57 ++ 12 files changed, 219 insertions(+), 168 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 681d616..32083cc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Refactor how we track live size (CASSANDRA-7852) * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/src/java/org/apache/cassandra/db/DataTracker.java -- diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java index 7393323..7df2b75 100644 --- a/src/java/org/apache/cassandra/db/DataTracker.java +++ b/src/java/org/apache/cassandra/db/DataTracker.java @@ -254,33 +254,36 @@ public class DataTracker public void markObsolete(CollectionSSTableReader sstables, OperationType compactionType) { -replace(sstables, Collections.SSTableReaderemptyList()); +removeSSTablesFromTracker(sstables); +releaseReferences(sstables, false); notifySSTablesChanged(sstables, Collections.SSTableReaderemptyList(), compactionType); } +/** + * + * @param oldSSTables + * @param allReplacements + * @param compactionType + */ // note that this DOES NOT insert the replacement sstables, it only removes the old sstables and notifies any listeners // that they have been replaced by the provided sstables, which must have been performed by an earlier replaceReaders() call -public void markCompactedSSTablesReplaced(CollectionSSTableReader sstables, CollectionSSTableReader allReplacements, OperationType compactionType) +public void markCompactedSSTablesReplaced(CollectionSSTableReader oldSSTables, CollectionSSTableReader allReplacements, OperationType compactionType) { -replace(sstables, Collections.SSTableReaderemptyList()); -notifySSTablesChanged(sstables, allReplacements, compactionType); -for (SSTableReader sstable : allReplacements) -{ -long bytesOnDisk = sstable.bytesOnDisk(); -cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk); -cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk); -} +removeSSTablesFromTracker(oldSSTables); +releaseReferences(oldSSTables, false); +notifySSTablesChanged(oldSSTables, allReplacements, compactionType); +addNewSSTablesSize(allReplacements); } public void addInitialSSTables(CollectionSSTableReader sstables) { -replace(Collections.SSTableReaderemptyList(), sstables); +addSSTablesToTracker(sstables); // no notifications or backup necessary } public void addSSTables(CollectionSSTableReader sstables) { -replace(Collections.SSTableReaderemptyList(), sstables); +addSSTablesToTracker(sstables); for (SSTableReader sstable : sstables) { maybeIncrementallyBackup(sstable); @@ -289,6 +292,32 @@ public class DataTracker } /** + * Replaces existing sstables with new instances, makes sure compaction strategies have the correct instance + * +
[3/5] Merge branch 'cassandra-2.1' into trunk
http://git-wip-us.apache.org/repos/asf/cassandra/blob/0f59629c/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java -- diff --cc test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java index 000,4d248bd..58803c3 mode 00,100644..100644 --- a/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java +++ b/test/unit/org/apache/cassandra/io/sstable/SSTableRewriterTest.java @@@ -1,0 -1,490 +1,504 @@@ + /* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.apache.cassandra.io.sstable; + + import java.io.File; + import java.nio.ByteBuffer; + import java.util.Arrays; -import java.util.Collection; + import java.util.HashSet; + import java.util.List; + import java.util.Set; + import com.google.common.collect.Sets; ++import org.junit.After; ++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.ArrayBackedSortedColumns; + 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.AbstractCompactedRow; + import org.apache.cassandra.db.compaction.AbstractCompactionStrategy; + import org.apache.cassandra.db.compaction.CompactionController; + import org.apache.cassandra.db.compaction.ICompactionScanner; + import org.apache.cassandra.db.compaction.LazilyCompactedRow; + import org.apache.cassandra.db.compaction.OperationType; -import org.apache.cassandra.io.sstable.metadata.MetadataCollector; ++import org.apache.cassandra.exceptions.ConfigurationException; ++import org.apache.cassandra.io.sstable.format.SSTableReader; ++import org.apache.cassandra.io.sstable.format.SSTableWriter; ++import org.apache.cassandra.locator.SimpleStrategy; + import org.apache.cassandra.metrics.StorageMetrics; + import org.apache.cassandra.service.StorageService; + import org.apache.cassandra.utils.ByteBufferUtil; + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertFalse; + import static org.junit.Assert.assertTrue; + + public class SSTableRewriterTest extends SchemaLoader + { -private static final String KEYSPACE = Keyspace1; ++private static final String KEYSPACE = SSTableRewriterTest; + private static final String CF = Standard1; ++ ++@BeforeClass ++public static void defineSchema() throws ConfigurationException ++{ ++SchemaLoader.prepareServer(); ++SchemaLoader.createKeyspace(KEYSPACE, ++SimpleStrategy.class, ++KSMetaData.optsWithRF(1), ++SchemaLoader.standardCFMD(KEYSPACE, CF)); ++} ++ ++@After ++public void truncateCF() ++{ ++Keyspace keyspace = Keyspace.open(KEYSPACE); ++ColumnFamilyStore store = keyspace.getColumnFamilyStore(CF); ++store.truncateBlocking(); ++} ++ ++ + @Test + public void basicTest() throws InterruptedException + { + Keyspace keyspace = Keyspace.open(KEYSPACE); + ColumnFamilyStore cfs = keyspace.getColumnFamilyStore(CF); + cfs.truncateBlocking(); + for (int j = 0; j 100; j ++) + { + ByteBuffer key = ByteBufferUtil.bytes(String.valueOf(j)); + Mutation rm = new Mutation(KEYSPACE, key); + rm.add(CF, Util.cellname(0), ByteBufferUtil.EMPTY_BYTE_BUFFER, j); + rm.apply(); + } + cfs.forceBlockingFlush(); + SetSSTableReader sstables = new HashSet(cfs.getSSTables()); + assertEquals(1, sstables.size()); + SSTableRewriter writer = new SSTableRewriter(cfs, sstables, 1000, false); + AbstractCompactionStrategy.ScannerList scanners = cfs.getCompactionStrategy().getScanners(sstables); + ICompactionScanner scanner = scanners.scanners.get(0); + CompactionController controller = new CompactionController(cfs, sstables, cfs.gcBefore(System.currentTimeMillis())); +
[1/2] git commit: Make sure unfinished compaction files are removed.
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 d2309227c - 5160c916c Make sure unfinished compaction files are removed. Patch by marcuse; reviewed by yukim for CASSANDRA-8124 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/9c316e78 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/9c316e78 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/9c316e78 Branch: refs/heads/cassandra-2.1 Commit: 9c316e7858f6dbf9df892aff78431044aa104ed9 Parents: d230922 Author: Marcus Eriksson marc...@apache.org Authored: Fri Oct 17 14:15:46 2014 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Nov 3 16:17:01 2014 +0100 -- CHANGES.txt | 1 + .../cassandra/io/sstable/SSTableReader.java | 6 + .../cassandra/io/sstable/SSTableRewriter.java | 90 +++- .../io/sstable/SSTableRewriterTest.java | 473 +++ 4 files changed, 555 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 494fb93..681d616 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) * Fix race in RecoveryManagerTest (CASSANDRA-8176) http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableReader.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java index 872f7df..40e708d 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableReader.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableReader.java @@ -1599,6 +1599,12 @@ public class SSTableReader extends SSTable } } +@VisibleForTesting +int referenceCount() +{ +return references.get(); +} + /** * Release reference to this SSTableReader. * If there is no one referring to this SSTable, and is marked as compacted, http://git-wip-us.apache.org/repos/asf/cassandra/blob/9c316e78/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java -- diff --git a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java index 76677ac..2c9fe7e 100644 --- a/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java +++ b/src/java/org/apache/cassandra/io/sstable/SSTableRewriter.java @@ -25,8 +25,10 @@ import java.util.List; import java.util.Map; import java.util.Set; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Function; import com.google.common.base.Functions; +import com.google.common.collect.Lists; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.db.ColumnFamilyStore; @@ -37,6 +39,7 @@ import org.apache.cassandra.db.compaction.AbstractCompactedRow; import org.apache.cassandra.db.compaction.OperationType; import org.apache.cassandra.utils.CLibrary; import org.apache.cassandra.utils.FBUtilities; +import org.apache.cassandra.utils.Pair; /** * Wraps one or more writers as output for rewriting one or more readers: every sstable_preemptive_open_interval_in_mb @@ -55,8 +58,7 @@ import org.apache.cassandra.utils.FBUtilities; */ public class SSTableRewriter { - -private static final long preemptiveOpenInterval; +private static long preemptiveOpenInterval; static { long interval = DatabaseDescriptor.getSSTablePreempiveOpenIntervalInMB() * (1L 20); @@ -65,6 +67,14 @@ public class SSTableRewriter preemptiveOpenInterval = interval; } +private boolean isFinished = false; + +@VisibleForTesting +static void overrideOpenInterval(long size) +{ +preemptiveOpenInterval = size; +} + private final DataTracker dataTracker; private final ColumnFamilyStore cfs; @@ -77,6 +87,8 @@ public class SSTableRewriter private long currentlyOpenedEarlyAt; // the position (in MB) in the target file we last (re)opened at private final ListSSTableReader finished = new ArrayList(); // the resultant sstables +private final ListSSTableReader finishedOpenedEarly = new ArrayList(); // the 'finished' tmplink sstables +private final ListPairSSTableWriter, SSTableReader finishedWriters = new ArrayList(); private final OperationType
[2/5] git commit: Refactor how we track live size
Refactor how we track live size Patch by marcuse; reviewed by yukim for CASSANDRA-7852 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5160c916 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5160c916 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5160c916 Branch: refs/heads/trunk Commit: 5160c916c90886f69023ddba0078a624e5cf202d Parents: 9c316e7 Author: Marcus Eriksson marc...@apache.org Authored: Fri Oct 17 14:15:46 2014 +0200 Committer: Marcus Eriksson marc...@apache.org Committed: Mon Nov 3 16:39:19 2014 +0100 -- CHANGES.txt | 1 + .../org/apache/cassandra/db/DataTracker.java| 109 --- .../db/compaction/CompactionManager.java| 26 ++--- .../cassandra/db/compaction/CompactionTask.java | 7 +- .../cassandra/db/compaction/Scrubber.java | 12 +- .../cassandra/db/compaction/Upgrader.java | 31 +++--- .../io/sstable/IndexSummaryManager.java | 2 +- .../cassandra/io/sstable/SSTableRewriter.java | 90 --- .../db/compaction/AntiCompactionTest.java | 48 +++- .../io/sstable/IndexSummaryManagerTest.java | 2 +- .../cassandra/io/sstable/SSTableReaderTest.java | 2 +- .../io/sstable/SSTableRewriterTest.java | 57 ++ 12 files changed, 219 insertions(+), 168 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 681d616..32083cc 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Refactor how we track live size (CASSANDRA-7852) * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) http://git-wip-us.apache.org/repos/asf/cassandra/blob/5160c916/src/java/org/apache/cassandra/db/DataTracker.java -- diff --git a/src/java/org/apache/cassandra/db/DataTracker.java b/src/java/org/apache/cassandra/db/DataTracker.java index 7393323..7df2b75 100644 --- a/src/java/org/apache/cassandra/db/DataTracker.java +++ b/src/java/org/apache/cassandra/db/DataTracker.java @@ -254,33 +254,36 @@ public class DataTracker public void markObsolete(CollectionSSTableReader sstables, OperationType compactionType) { -replace(sstables, Collections.SSTableReaderemptyList()); +removeSSTablesFromTracker(sstables); +releaseReferences(sstables, false); notifySSTablesChanged(sstables, Collections.SSTableReaderemptyList(), compactionType); } +/** + * + * @param oldSSTables + * @param allReplacements + * @param compactionType + */ // note that this DOES NOT insert the replacement sstables, it only removes the old sstables and notifies any listeners // that they have been replaced by the provided sstables, which must have been performed by an earlier replaceReaders() call -public void markCompactedSSTablesReplaced(CollectionSSTableReader sstables, CollectionSSTableReader allReplacements, OperationType compactionType) +public void markCompactedSSTablesReplaced(CollectionSSTableReader oldSSTables, CollectionSSTableReader allReplacements, OperationType compactionType) { -replace(sstables, Collections.SSTableReaderemptyList()); -notifySSTablesChanged(sstables, allReplacements, compactionType); -for (SSTableReader sstable : allReplacements) -{ -long bytesOnDisk = sstable.bytesOnDisk(); -cfstore.metric.totalDiskSpaceUsed.inc(bytesOnDisk); -cfstore.metric.liveDiskSpaceUsed.inc(bytesOnDisk); -} +removeSSTablesFromTracker(oldSSTables); +releaseReferences(oldSSTables, false); +notifySSTablesChanged(oldSSTables, allReplacements, compactionType); +addNewSSTablesSize(allReplacements); } public void addInitialSSTables(CollectionSSTableReader sstables) { -replace(Collections.SSTableReaderemptyList(), sstables); +addSSTablesToTracker(sstables); // no notifications or backup necessary } public void addSSTables(CollectionSSTableReader sstables) { -replace(Collections.SSTableReaderemptyList(), sstables); +addSSTablesToTracker(sstables); for (SSTableReader sstable : sstables) { maybeIncrementallyBackup(sstable); @@ -289,6 +292,32 @@ public class DataTracker } /** + * Replaces existing sstables with new instances, makes sure compaction strategies have the correct instance + * + * @param
[jira] [Commented] (CASSANDRA-6246) EPaxos
[ https://issues.apache.org/jira/browse/CASSANDRA-6246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194659#comment-14194659 ] Blake Eggleston commented on CASSANDRA-6246: I have an initial implementation here: https://github.com/bdeggleston/cassandra/compare/CASSANDRA-6246?expand=1 It’s still pretty rough, I just wanted to get it to a point where we could get a feel for the performance advantages and decide if the additional complexity was worth it. There’s also none of the instance gc / optimized failure recovery we’ve been talking about. I did some performance comparisons over the weekend. The tldr is that epaxos is 10% to 11.5x faster than classic paxos, depending on the workload. To test, I used a cluster of 3 m3.xlarge instances in us-east, and a 4th instance executing queries against the cluster. Each C* node was in a different az. Commit log and data directories were on different disks. There were 2 tests, each running 10k queries against the cluster. The first test measured throughput using queries that wouldn’t contend with each other. Each query inserted a row for a different partition. The second test measured performance under contention, where every query contended for the same partition. Each test was run with 1, 5, 10 concurrent client requests. With the uncontended workload, epaxos request time is 10-14% faster than the current implementation on average. See: https://docs.google.com/spreadsheets/d/1olMYCepsE_02bMyfzV0Hke5UKuqoCNNjSIjR9yNs5iI/edit?pli=1#gid=0 With the contended workload, epaxos request time is 4.5x-11.5x faster than the current implementation on average. See: https://docs.google.com/spreadsheets/d/1olMYCepsE_02bMyfzV0Hke5UKuqoCNNjSIjR9yNs5iI/edit?pli=1#gid=1327463955 There are 2 epaxos sections, regular, and cached. With higher contended request concurrency, the execution algorithm has to visit a lot of unexecuted instances to build it’s dependency graph. Reading the dependency data and instances out of their tables and deserializing them for each visit slows down epaxos to a point where it’s over twice as slow as classic paxos. By using a guava cache for the instance and dependency data objects, and keeping them around for a few minutes, epaxos is ~30x faster in higher contention/concurrency situations. Some notes on the concurrent contended tests: * The median query time for epaxos is a little slower than classic paxos for 5 concurrent contended requests. This is because epaxos is now doing an accept phase on a lot of the queries, and because classic paxos doesn’t send commit messages out if the predicate doesn’t apply to the query. * With concurrent contending queries, 1-2.5% of the classic paxos queries timeout and fail. At this level, there are no failing epaxos queries. * Variance in query times is also much lower with epaxos. With 10 concurrent contending requests, the 95th %ile request time for classic paxos is 23x the median, epaxos is 1.8x. EPaxos -- Key: CASSANDRA-6246 URL: https://issues.apache.org/jira/browse/CASSANDRA-6246 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Jonathan Ellis Assignee: Blake Eggleston Priority: Minor One reason we haven't optimized our Paxos implementation with Multi-paxos is that Multi-paxos requires leader election and hence, a period of unavailability when the leader dies. EPaxos is a Paxos variant that requires (1) less messages than multi-paxos, (2) is particularly useful across multiple datacenters, and (3) allows any node to act as coordinator: http://sigops.org/sosp/sosp13/papers/p358-moraru.pdf However, there is substantial additional complexity involved if we choose to implement it. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7852) Refactor/document how we track live size
[ https://issues.apache.org/jira/browse/CASSANDRA-7852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194657#comment-14194657 ] Marcus Eriksson commented on CASSANDRA-7852: commited! Refactor/document how we track live size Key: CASSANDRA-7852 URL: https://issues.apache.org/jira/browse/CASSANDRA-7852 Project: Cassandra Issue Type: Improvement Reporter: Marcus Eriksson Assignee: Marcus Eriksson Priority: Minor Fix For: 2.1.2 The way we track live size of sstables etc is a bit confusing after we introduced SSTableRewriter, we should probably try to refactor or atleast document this -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194662#comment-14194662 ] Aleksey Yeschenko commented on CASSANDRA-8225: -- It can even have a csv-file input format, for all I care, afterwards. But what's proposed here is close to pointless. If there is a lot of data to bulk load, then you want it distributed, anyway. If there isn't, then 10x faster COPY FROM is still good enough. Again, I 100% agree that we need to improve our bulk loading game. Yet I'm certain that what we really need is not Production-capable COPY FROM but Production-capable something-to-bulk-load-thats-not-necesserily-csvloader, and the current issue title/description mention COPY FROM for the single reason that it's the only simple thing we've ever had. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194683#comment-14194683 ] Jonathan Ellis commented on CASSANDRA-8225: --- As baffling as it may be, my impression is that people really do want to bulk load large datasets from a single machine, but I'm happy to be corrected. /cc [~cgilmore] [~rssvihla] [~schumacr] Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194686#comment-14194686 ] Jeremiah Jordan commented on CASSANDRA-8225: bq. Again, I 100% agree that we need to improve our bulk loading game. Yet I'm certain that what we really need is not Production-capable COPY FROM but Production-capable something-to-bulk-load-thats-not-necesserily-csvloader, and the current issue title/description mention COPY FROM for the single reason that it's the only simple thing we've ever had. Agreed. I don't think COPY FROM csv is the way to go here. Do people really have multi GB cvs files sitting around to load places? I would assume these CSV files come from some other database? Would it not be better to have some tool that could also possibly cut out the middle man and just read JDBC and then push into Cassandra? So +1 for Production-capable something-to-bulk-load-thats-not-necesserily-csvloader Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194689#comment-14194689 ] Aleksey Yeschenko commented on CASSANDRA-8225: -- (If they do, it's still an orthogonal question to whether or not those large datasets are coming from CSV, originally) Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194692#comment-14194692 ] Ryan Svihla commented on CASSANDRA-8225: Equally baffling, but it's a frequent request with the pushback being barrier to entry when getting started. These are businesses that don't already have Hadoop or Spark and are using something sql server to do analytics on. Now I'm happy to continue to explain to them, at scale, this cannot possibly work in any way shape or form. However, I do get the desire to do something good enough and export their giant file to their SAN, and then limp along while they let the rest of the org catch up with best practices for analytics on large data sets. I view a better COPY FROM as a bridge to a better world, and another good way to get Cassandra into places that are new to the distributed world. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194692#comment-14194692 ] Ryan Svihla edited comment on CASSANDRA-8225 at 11/3/14 4:27 PM: - Equally baffling, but it's a frequent request with the pushback being barrier to entry when getting started. These are businesses that don't already have Hadoop or Spark and are using something relational to do analytics on. Now I'm happy to continue to explain to them, at scale, this cannot possibly work in any way shape or form. However, I do get the desire to do something good enough and export their giant file to their SAN, and then limp along while they let the rest of the org catch up with best practices for analytics on large data sets. I view a better COPY FROM as a bridge to a better world, and another good way to get Cassandra into places that are new to the distributed world. was (Author: rssvihla): Equally baffling, but it's a frequent request with the pushback being barrier to entry when getting started. These are businesses that don't already have Hadoop or Spark and are using something sql server to do analytics on. Now I'm happy to continue to explain to them, at scale, this cannot possibly work in any way shape or form. However, I do get the desire to do something good enough and export their giant file to their SAN, and then limp along while they let the rest of the org catch up with best practices for analytics on large data sets. I view a better COPY FROM as a bridge to a better world, and another good way to get Cassandra into places that are new to the distributed world. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8225) Production-capable COPY FROM
[ https://issues.apache.org/jira/browse/CASSANDRA-8225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194698#comment-14194698 ] Aleksey Yeschenko commented on CASSANDRA-8225: -- FWIW, it's implied here that we'll be using Spark bundled with Cassandra then, which is planned, so nobody will have to have to mess with Hadoop or Spark on their own with the new tooling. Not to have to mess at all in the case of loading from single machine. Production-capable COPY FROM Key: CASSANDRA-8225 URL: https://issues.apache.org/jira/browse/CASSANDRA-8225 Project: Cassandra Issue Type: New Feature Components: Tools Reporter: Jonathan Ellis Fix For: 2.1.2 Via [~schumacr], bq. I pulled down a sourceforge data generator and created a moc file of 500,000 rows that had an incrementing sequence number, date, and SSN. I then used our COPY command and MySQL's LOAD DATA INFILE to load the file on my Mac. Results were: {noformat} mysql load data infile '/Users/robin/dev/datagen3.txt' into table p_test fields terminated by ','; Query OK, 50 rows affected (2.18 sec) {noformat} C* 2.1.0 (pre-CASSANDRA-7405) {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; 50 rows imported in 16 minutes and 45.485 seconds. {noformat} Cassandra 2.1.1: {noformat} cqlsh:dev copy p_test from '/Users/robin/dev/datagen3.txt' with delimiter=','; Processed 50 rows; Write: 4037.46 rows/s 50 rows imported in 2 minutes and 3.058 seconds. {noformat} [jbellis] 7405 gets us almost an order of magnitude improvement. Unfortunately we're still almost 2 orders slower than mysql. I don't think we can continue to tell people, use sstableloader instead. The number of users sophisticated enough to use the sstable writers is small and (relatively) decreasing as our user base expands. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-8208) Inconsistent failure handling with repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita reassigned CASSANDRA-8208: - Assignee: Yuki Morishita Inconsistent failure handling with repair - Key: CASSANDRA-8208 URL: https://issues.apache.org/jira/browse/CASSANDRA-8208 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Yuki Morishita Fix For: 3.0 I think we introduced this with CASSANDRA-6455, problem is that we now treat all repair futures as a single unit (Futures.allAsList(..)) which makes the whole thing fail if one sub-future fails. Also, when one of those fail, we notify nodetool that we failed and we stop the executor with shutdownNow() which throws out any pending RepairJobs. [~yukim] I think we used to be able to proceed with the other RepairSessions even if one fails, right? If not, we should probably call cancel on the RepairJob runnables which are in queue for the executor after calling shutdownNow() in repairComplete() in StorageService. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194704#comment-14194704 ] Michael Shuler commented on CASSANDRA-8245: --- What are the hardware specs of your nodes and the memory-related configurations? Nodes that die due to heap exhaustion aren't really a datacenter issue, but a more basic node-level setup problem that should be addressed with larger machines and configuration tuning, typically. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Critical We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler updated CASSANDRA-8245: -- Priority: Minor (was: Critical) Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194711#comment-14194711 ] Michael Shuler commented on CASSANDRA-8245: --- I asked the devs about this ticket, and a thread dump to see what's blocking gossip would be very helpful with troubleshooting this. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194715#comment-14194715 ] Michael Shuler commented on CASSANDRA-8245: --- Additionally, those dates go from 2014-08-12 to 2014-10-06 - are the datacenters communicating properly at all? Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7392) Abort in-progress queries that time out
[ https://issues.apache.org/jira/browse/CASSANDRA-7392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Joshua McKenzie updated CASSANDRA-7392: --- Assignee: Joshua McKenzie Abort in-progress queries that time out --- Key: CASSANDRA-7392 URL: https://issues.apache.org/jira/browse/CASSANDRA-7392 Project: Cassandra Issue Type: New Feature Components: Core Reporter: Jonathan Ellis Assignee: Joshua McKenzie Priority: Minor Fix For: 3.0 Currently we drop queries that time out before we get to them (because node is overloaded) but not queries that time out while being processed. (Particularly common for index queries on data that shouldn't be indexed.) Adding the latter and logging when we have to interrupt one gets us a poor man's slow query log for free. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194724#comment-14194724 ] Oleg Poleshuk commented on CASSANDRA-8245: -- Processors = 8 Memory = 15.58 GB processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 15 model name : Intel(R) Xeon(R) CPU E5-2665 0 @ 2.40GHz stepping: 1 cpu MHz : 2400.000 cache size : 20480 KB Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194725#comment-14194725 ] Oleg Poleshuk commented on CASSANDRA-8245: -- I will provide a thread dump when it dies next time. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194726#comment-14194726 ] Oleg Poleshuk commented on CASSANDRA-8245: -- Why did it go to Minor? Datacenter dies periodically because of Gossiper memory leaks, this is not Minor as to me... Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194729#comment-14194729 ] Oleg Poleshuk commented on CASSANDRA-8245: -- Dates go from August because it went down several times. Probably, I grepped previous event. Datacenters communicate properly. In any case, isn't it supposed to survive DC link failure?.. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[6/6] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/632ebc5c Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/632ebc5c Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/632ebc5c Branch: refs/heads/trunk Commit: 632ebc5c57e10b1fcf8b4b1ab31368202e851c0c Parents: 0f59629 623aa6f Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 11:00:06 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 11:00:44 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java | 10 +- 2 files changed, 6 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/632ebc5c/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/632ebc5c/src/java/org/apache/cassandra/service/StorageService.java -- diff --cc src/java/org/apache/cassandra/service/StorageService.java index ea21f3d,84a6c14..1cbf2b7 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@@ -1610,9 -1659,21 +1610,14 @@@ public class StorageService extends Not if (tokenMetadata.isMoving(endpoint)) // if endpoint was moving to a new token { tokenMetadata.removeFromMoving(endpoint); - -if (!isClientMode) -{ -for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) -subscriber.onMove(endpoint); -} +for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) +subscriber.onMove(endpoint); } + else + { -if (!isClientMode) -{ -for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) -subscriber.onJoinCluster(endpoint); -} ++for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) ++subscriber.onJoinCluster(endpoint); + } PendingRangeCalculatorService.instance.update(); }
[2/6] git commit: Improve client notification that nodes are ready for requests
Improve client notification that nodes are ready for requests Patch by Brandon Williams, reviewed by thobbs for CASSANDRA-7510 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5548bf45 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5548bf45 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5548bf45 Branch: refs/heads/cassandra-2.1 Commit: 5548bf45e9b2cc61cbc131022b3df10924d88a95 Parents: ef14f51 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 10:59:07 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 10:59:07 2014 -0600 -- CHANGES.txt| 1 + .../org/apache/cassandra/service/StorageService.java | 13 - 2 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4387d81..0ec3ff1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) * Throw ConfigurationException when hsha is used with the default http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 4973e40..1f831b9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1616,6 +1616,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE subscriber.onMove(endpoint); } } +else +{ +if (!isClientMode) +{ +for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) +subscriber.onJoinCluster(endpoint); +} +} PendingRangeCalculatorService.instance.update(); } @@ -1982,11 +1990,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) subscriber.onUp(endpoint); } -else -{ -for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) -subscriber.onJoinCluster(endpoint); -} } public void onRemove(InetAddress endpoint)
[5/6] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/623aa6fe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/623aa6fe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/623aa6fe Branch: refs/heads/cassandra-2.1 Commit: 623aa6fe76af358391f9c7f185fb7f28376a6c7e Parents: 5160c91 5548bf4 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 10:59:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 10:59:56 2014 -0600 -- CHANGES.txt| 1 + .../org/apache/cassandra/service/StorageService.java | 13 - 2 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/623aa6fe/CHANGES.txt -- diff --cc CHANGES.txt index 32083cc,0ec3ff1..b9b92fb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ -2.0.12: +2.1.2 + * Refactor how we track live size (CASSANDRA-7852) + * Make sure unfinished compaction files are removed (CASSANDRA-8124) + * Fix shutdown when run as Windows service (CASSANDRA-8136) + * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) + * Fix race in RecoveryManagerTest (CASSANDRA-8176) + * Avoid IllegalArgumentException while sorting sstables in + IndexSummaryManager (CASSANDRA-8182) + * Shutdown JVM on file descriptor exhaustion (CASSANDRA-7579) + * Add 'die' policy for commit log and disk failure (CASSANDRA-7927) + * Fix installing as service on Windows (CASSANDRA-8115) + * Fix CREATE TABLE for CQL2 (CASSANDRA-8144) + * Avoid boxing in ColumnStats min/max trackers (CASSANDRA-8109) +Merged from 2.0: + * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) * Throw ConfigurationException when hsha is used with the default http://git-wip-us.apache.org/repos/asf/cassandra/blob/623aa6fe/src/java/org/apache/cassandra/service/StorageService.java --
[1/6] git commit: Improve client notification that nodes are ready for requests
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 ef14f5165 - 5548bf45e refs/heads/cassandra-2.1 5160c916c - 623aa6fe7 refs/heads/trunk 0f59629ce - 632ebc5c5 Improve client notification that nodes are ready for requests Patch by Brandon Williams, reviewed by thobbs for CASSANDRA-7510 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5548bf45 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5548bf45 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5548bf45 Branch: refs/heads/cassandra-2.0 Commit: 5548bf45e9b2cc61cbc131022b3df10924d88a95 Parents: ef14f51 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 10:59:07 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 10:59:07 2014 -0600 -- CHANGES.txt| 1 + .../org/apache/cassandra/service/StorageService.java | 13 - 2 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4387d81..0ec3ff1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) * Throw ConfigurationException when hsha is used with the default http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 4973e40..1f831b9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1616,6 +1616,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE subscriber.onMove(endpoint); } } +else +{ +if (!isClientMode) +{ +for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) +subscriber.onJoinCluster(endpoint); +} +} PendingRangeCalculatorService.instance.update(); } @@ -1982,11 +1990,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) subscriber.onUp(endpoint); } -else -{ -for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) -subscriber.onJoinCluster(endpoint); -} } public void onRemove(InetAddress endpoint)
[3/6] git commit: Improve client notification that nodes are ready for requests
Improve client notification that nodes are ready for requests Patch by Brandon Williams, reviewed by thobbs for CASSANDRA-7510 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5548bf45 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5548bf45 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5548bf45 Branch: refs/heads/trunk Commit: 5548bf45e9b2cc61cbc131022b3df10924d88a95 Parents: ef14f51 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 10:59:07 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 10:59:07 2014 -0600 -- CHANGES.txt| 1 + .../org/apache/cassandra/service/StorageService.java | 13 - 2 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 4387d81..0ec3ff1 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) * Throw ConfigurationException when hsha is used with the default http://git-wip-us.apache.org/repos/asf/cassandra/blob/5548bf45/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 4973e40..1f831b9 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -1616,6 +1616,14 @@ public class StorageService extends NotificationBroadcasterSupport implements IE subscriber.onMove(endpoint); } } +else +{ +if (!isClientMode) +{ +for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) +subscriber.onJoinCluster(endpoint); +} +} PendingRangeCalculatorService.instance.update(); } @@ -1982,11 +1990,6 @@ public class StorageService extends NotificationBroadcasterSupport implements IE for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) subscriber.onUp(endpoint); } -else -{ -for (IEndpointLifecycleSubscriber subscriber : lifecycleSubscribers) -subscriber.onJoinCluster(endpoint); -} } public void onRemove(InetAddress endpoint)
[4/6] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Conflicts: CHANGES.txt Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/623aa6fe Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/623aa6fe Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/623aa6fe Branch: refs/heads/trunk Commit: 623aa6fe76af358391f9c7f185fb7f28376a6c7e Parents: 5160c91 5548bf4 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 10:59:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 10:59:56 2014 -0600 -- CHANGES.txt| 1 + .../org/apache/cassandra/service/StorageService.java | 13 - 2 files changed, 9 insertions(+), 5 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/623aa6fe/CHANGES.txt -- diff --cc CHANGES.txt index 32083cc,0ec3ff1..b9b92fb --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,17 -1,5 +1,18 @@@ -2.0.12: +2.1.2 + * Refactor how we track live size (CASSANDRA-7852) + * Make sure unfinished compaction files are removed (CASSANDRA-8124) + * Fix shutdown when run as Windows service (CASSANDRA-8136) + * Fix DESCRIBE TABLE with custom indexes (CASSANDRA-8031) + * Fix race in RecoveryManagerTest (CASSANDRA-8176) + * Avoid IllegalArgumentException while sorting sstables in + IndexSummaryManager (CASSANDRA-8182) + * Shutdown JVM on file descriptor exhaustion (CASSANDRA-7579) + * Add 'die' policy for commit log and disk failure (CASSANDRA-7927) + * Fix installing as service on Windows (CASSANDRA-8115) + * Fix CREATE TABLE for CQL2 (CASSANDRA-8144) + * Avoid boxing in ColumnStats min/max trackers (CASSANDRA-8109) +Merged from 2.0: + * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) * Throw ConfigurationException when hsha is used with the default http://git-wip-us.apache.org/repos/asf/cassandra/blob/623aa6fe/src/java/org/apache/cassandra/service/StorageService.java --
[jira] [Commented] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194735#comment-14194735 ] Michael Shuler commented on CASSANDRA-8245: --- To me, this appears to be symptomatic of something more basic to cluster/node configuration, thus minor. Critical would indicate a reproducible but causing something like data loss. Provide the steps to reproduce, along with verifiable data loss, and we can talk about the severity :) It's just a setting that can be changed to prioritize bugs for developer eyes. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Comment Edited] (CASSANDRA-8245) Cassandra nodes periodically die in 2-DC configuration
[ https://issues.apache.org/jira/browse/CASSANDRA-8245?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194735#comment-14194735 ] Michael Shuler edited comment on CASSANDRA-8245 at 11/3/14 5:04 PM: To me, this appears to be symptomatic of something more basic to cluster/node configuration, thus minor. Critical would indicate a reproducible bug causing something like data loss. Provide the steps to reproduce, along with verifiable data loss, and we can talk about the severity :) It's just a setting that can be changed to prioritize bugs for developer eyes. was (Author: mshuler): To me, this appears to be symptomatic of something more basic to cluster/node configuration, thus minor. Critical would indicate a reproducible but causing something like data loss. Provide the steps to reproduce, along with verifiable data loss, and we can talk about the severity :) It's just a setting that can be changed to prioritize bugs for developer eyes. Cassandra nodes periodically die in 2-DC configuration -- Key: CASSANDRA-8245 URL: https://issues.apache.org/jira/browse/CASSANDRA-8245 Project: Cassandra Issue Type: Bug Components: Core Environment: Scientific Linux release 6.5 java version 1.7.0_51 Cassandra 2.0.9 Reporter: Oleg Poleshuk Priority: Minor We have 2 DCs with 3 nodes in each. Second DC periodically has 1-2 nodes down. Looks like it looses connectivity with another nodes and then Gossiper starts to accumulate tasks until Cassandra dies with OOM. WARN [MemoryMeter:1] 2014-08-12 14:34:59,803 Memtable.java (line 470) setting live ratio to maximum of 64.0 instead of Infinity WARN [GossipTasks:1] 2014-08-12 14:44:34,866 Gossiper.java (line 637) Gossip stage has 1 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:35,968 Gossiper.java (line 637) Gossip stage has 4 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:37,070 Gossiper.java (line 637) Gossip stage has 8 pending tasks; skipping status check (no nodes will be marked down) WARN [GossipTasks:1] 2014-08-12 14:44:38,171 Gossiper.java (line 637) Gossip stage has 11 pending tasks; skipping status check (no nodes will be marked down) ... WARN [GossipTasks:1] 2014-10-06 21:42:51,575 Gossiper.java (line 637) Gossip stage has 1014764 pending tasks; skipping status check (no nodes will be marked down) WARN [New I/O worker #13] 2014-10-06 21:54:27,010 Slf4JLogger.java (line 76) Unexpected exception in the selector loop. java.lang.OutOfMemoryError: Java heap space Also those lines but not sure it is relevant: DEBUG [GossipStage:1] 2014-08-12 11:33:18,801 FailureDetector.java (line 338) Ignoring interval time of 2085963047 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7964) cassandra-stress over schema should support multiple simultaneous inserts over the same seed
[ https://issues.apache.org/jira/browse/CASSANDRA-7964?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis updated CASSANDRA-7964: -- Reviewer: Robert Stupp cassandra-stress over schema should support multiple simultaneous inserts over the same seed Key: CASSANDRA-7964 URL: https://issues.apache.org/jira/browse/CASSANDRA-7964 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Benedict Assignee: Benedict Priority: Minor This constraint makes testing contention essentially impossible -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7964) cassandra-stress over schema should support multiple simultaneous inserts over the same seed
[ https://issues.apache.org/jira/browse/CASSANDRA-7964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194740#comment-14194740 ] Jonathan Ellis commented on CASSANDRA-7964: --- Can you review, [~snazy]? cassandra-stress over schema should support multiple simultaneous inserts over the same seed Key: CASSANDRA-7964 URL: https://issues.apache.org/jira/browse/CASSANDRA-7964 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Benedict Assignee: Benedict Priority: Minor This constraint makes testing contention essentially impossible -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7872) ensure compacted obsolete sstables are not open on node restart and nodetool refresh, even on sstable reference miscounting or deletion tasks are failed.
[ https://issues.apache.org/jira/browse/CASSANDRA-7872?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Oleg Anastasyev updated CASSANDRA-7872: --- Attachment: 7872-v2.0-robustness.txt 7872-v2.0-bugdetector.txt 7872-v2.0-NoPhQ.txt OK, split it to 3 patches. They could be applied in order: 7872-v2.0-NoPhQ.txt - is all with no Phantom Queues. I.e. it has Compacted marker and removal of obsolete sstables on startup and nodetool refresh. 7872-v2.0-bugdetector.txt - has Phantom Queue to detect bugs in refcount (and whatever else) sstable tracking algorithm. I added additional 10 seconds pause before checking file existence on disk and alerting about bug found in refcount algorithm. 7872-v2.0-robustness.txt - I left the original sstable removal code here. I'd rather not call resilient action on the known detected failure papering out of a bug, so this one could be of use for ppl who want stuck sstable files removed from disk with no restart neccessary. This could be applied on top of *-bugdetector.txt ensure compacted obsolete sstables are not open on node restart and nodetool refresh, even on sstable reference miscounting or deletion tasks are failed. - Key: CASSANDRA-7872 URL: https://issues.apache.org/jira/browse/CASSANDRA-7872 Project: Cassandra Issue Type: Bug Components: Core Reporter: Oleg Anastasyev Assignee: Oleg Anastasyev Fix For: 2.0.12 Attachments: 7872-v2.0-NoPhQ.txt, 7872-v2.0-bugdetector.txt, 7872-v2.0-robustness.txt, EnsureNoObsoleteSSTables-7872-v2.0.txt Since CASSANDRA-4436 compacted sstables are no more marked with COMPACTED_MARKER file. Instead after they are compacted, DataTracker calls SSTableReader.markObsolete(), but the actual deletion is happening later on SSTableReader.releaseReference(). This reference counting is very fragile, it is very easy to introduce a hard-to-catch and rare bug, so this reference count never reaches 0 ( like CASSANDRA-6503 for example ) This means, that very rarely obsolete sstable files are not removed from disk (but are not used anymore by cassandra to read data). If more than gc grace time has passed since sstable file was not removed from disk and operator issues either nodetool refresh or just reboots a node, these obsolete files are being discovered and open for read by a node. So deleted data is resurrected, being quickly spread by RR to whole cluster. Because consequences are very serious (even a single not removed obsolete sstable file could render your data useless) this patch makes sure no obsolete sstable file can be open for read by: 1. Removing sstables on CFS init analyzing sstable generations (sstable is removed, if there are another sstable, listing this as ancestor) 2. Reimplementing COMPACTED_MARKER file for sstable. This marker is created as soon as markObsolete is called. This is neccessary b/c generation info can be lost (when sstables compact to none) 3. To remove sstables sooner then restart - reimplemented the good old GC phantom reference queue as well. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Resolved] (CASSANDRA-8232) Cassandra missing from Apache.org
[ https://issues.apache.org/jira/browse/CASSANDRA-8232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis resolved CASSANDRA-8232. --- Resolution: Duplicate INFRA-8558 Cassandra missing from Apache.org - Key: CASSANDRA-8232 URL: https://issues.apache.org/jira/browse/CASSANDRA-8232 Project: Cassandra Issue Type: Bug Reporter: Seth Rosenblum Not sure if this is the right place to report this, but Cassandra is missing from one of the www.apache.org hosts (specifically 140.211.11.131). It should be here: http://140.211.11.131/dist/cassandra/ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7979) Acceptable time skew for C*
[ https://issues.apache.org/jira/browse/CASSANDRA-7979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194805#comment-14194805 ] Joshua McKenzie commented on CASSANDRA-7979: [~kohlisankalp]: since new features are targeted at 2.1 or trunk and 2.0 is more or less feature-frozen, could you modify the 2.0 patch to be disabled by default and require a -D param to the JVM to enable it? I'd be comfortable committing to 2.0 w/that change. Acceptable time skew for C* --- Key: CASSANDRA-7979 URL: https://issues.apache.org/jira/browse/CASSANDRA-7979 Project: Cassandra Issue Type: Improvement Reporter: sankalp kohli Assignee: sankalp kohli Priority: Minor Attachments: 2.0_7979.diff, 2.0_7979_v2.txt, 2.1_7979_v2.txt, trunk_7979.diff, trunk_7979_v2.txt It is very hard to know the bounds on clock skew required for C* to work properly. Since the resolution is based on time and is at thrift column level, it depends on the application. How fast is the application updating the same column. If you update a column say after 5 millisecond and the clock skew is more than that, you might not see the updates in correct order. In this JIRA, I am proposing a change which will answer this question: How much clock skew is acceptable for a given application. This will help answer the question whether the system needs some alternate NTP algorithms to keep time in sync. If we measure the time difference between two updates to the same column, we will be able to answer the question on clock skew. We can implement this in memtable(AtomicSortedColumns.addColumn). If we find that a column is updated within say 100 millisecond, add the diff to a histogram. Since this might have performance issues, we might want to have some throttling like randomization or only enable it for a small time via nodetool. With this histogram, we will know what is an acceptable clock skew. Also apart from column resolution, is there any other area which will be affected by clock skew? Note: For the sake of argument, I am not talking about back date deletes or application modified timestamps. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (CASSANDRA-8235) nodetool repair leaves behind empty snapshot directories
[ https://issues.apache.org/jira/browse/CASSANDRA-8235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jonathan Ellis reassigned CASSANDRA-8235: - Assignee: Yuki Morishita nodetool repair leaves behind empty snapshot directories Key: CASSANDRA-8235 URL: https://issues.apache.org/jira/browse/CASSANDRA-8235 Project: Cassandra Issue Type: Improvement Components: Core Environment: Issue seen in Cassandra v2.0.9.61 Reporter: Thanh Assignee: Yuki Morishita Priority: Minor nodetool repair leaves behind empty snapshot directories You can see this by doing a nodetool clearsnapshot before doing a nodetool repair. The nodetool repair creates snapshots that it removes when repair is completed, but it leaves behind the empty snapshots directories. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8231) Wrong size of cached prepared statements
[ https://issues.apache.org/jira/browse/CASSANDRA-8231?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194840#comment-14194840 ] Jonathan Ellis commented on CASSANDRA-8231: --- JAMM provides something similar with ObjectSizes. Wrong size of cached prepared statements Key: CASSANDRA-8231 URL: https://issues.apache.org/jira/browse/CASSANDRA-8231 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: Benjamin Lerer Attachments: 8231-notes.txt, Unsafes.java Cassandra counts memory footprint of prepared statements for caching purposes. It seems, that there is problem with some statements, ie SelectStatement. Even simple selects is counted as 100KB object, updates, deletes etc have few hundreds or thousands bytes. Result is that cache - QueryProcessor.preparedStatements - holds just fraction of statements.. I dig a little into the code, and it seems that problem is in jamm in class MemoryMeter. It seems that if instance contains reference to class, it counts size of whole class too. SelectStatement references EnumSet through ResultSet.Metadata and EnumSet holds reference to Enum class... -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7979) Acceptable time skew for C*
[ https://issues.apache.org/jira/browse/CASSANDRA-7979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194850#comment-14194850 ] sankalp kohli commented on CASSANDRA-7979: -- Sure. Let me give you that patch. If you like, you can commit the other 2.1 and trunk patches. Acceptable time skew for C* --- Key: CASSANDRA-7979 URL: https://issues.apache.org/jira/browse/CASSANDRA-7979 Project: Cassandra Issue Type: Improvement Reporter: sankalp kohli Assignee: sankalp kohli Priority: Minor Attachments: 2.0_7979.diff, 2.0_7979_v2.txt, 2.1_7979_v2.txt, trunk_7979.diff, trunk_7979_v2.txt It is very hard to know the bounds on clock skew required for C* to work properly. Since the resolution is based on time and is at thrift column level, it depends on the application. How fast is the application updating the same column. If you update a column say after 5 millisecond and the clock skew is more than that, you might not see the updates in correct order. In this JIRA, I am proposing a change which will answer this question: How much clock skew is acceptable for a given application. This will help answer the question whether the system needs some alternate NTP algorithms to keep time in sync. If we measure the time difference between two updates to the same column, we will be able to answer the question on clock skew. We can implement this in memtable(AtomicSortedColumns.addColumn). If we find that a column is updated within say 100 millisecond, add the diff to a histogram. Since this might have performance issues, we might want to have some throttling like randomization or only enable it for a small time via nodetool. With this histogram, we will know what is an acceptable clock skew. Also apart from column resolution, is there any other area which will be affected by clock skew? Note: For the sake of argument, I am not talking about back date deletes or application modified timestamps. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194855#comment-14194855 ] Jonathan Ellis commented on CASSANDRA-8209: --- Thanks, guys. Can close this? Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194866#comment-14194866 ] Dave Brosius commented on CASSANDRA-8209: - Need to update c*'s jamm dependency to 0.2.8 Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8241) Use javac instead of javassist
[ https://issues.apache.org/jira/browse/CASSANDRA-8241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194868#comment-14194868 ] Jonathan Ellis commented on CASSANDRA-8241: --- This may still be a good idea, but doesn't this mean users need to deploy a JDK (which has stricter license requirements) and not just a JRE? Use javac instead of javassist -- Key: CASSANDRA-8241 URL: https://issues.apache.org/jira/browse/CASSANDRA-8241 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Robert Stupp Assignee: Robert Stupp Labels: udf Fix For: 3.0 Attachments: udf-java-javac.txt Using JDK's built-in Java-Compiler API has some advantages over javassist. Although compilation feels a bit slower, Java compiler API has some advantages: * boxing + unboxing works * generics work * compiler error messages are better (or at least known) and have line/column numbers The implementation does not use any temp files. Everything's in memory. Patch attached to this issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7979) Acceptable time skew for C*
[ https://issues.apache.org/jira/browse/CASSANDRA-7979?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] sankalp kohli updated CASSANDRA-7979: - Attachment: 2.0_7979_v3.txt Acceptable time skew for C* --- Key: CASSANDRA-7979 URL: https://issues.apache.org/jira/browse/CASSANDRA-7979 Project: Cassandra Issue Type: Improvement Reporter: sankalp kohli Assignee: sankalp kohli Priority: Minor Attachments: 2.0_7979.diff, 2.0_7979_v2.txt, 2.0_7979_v3.txt, 2.1_7979_v2.txt, trunk_7979.diff, trunk_7979_v2.txt It is very hard to know the bounds on clock skew required for C* to work properly. Since the resolution is based on time and is at thrift column level, it depends on the application. How fast is the application updating the same column. If you update a column say after 5 millisecond and the clock skew is more than that, you might not see the updates in correct order. In this JIRA, I am proposing a change which will answer this question: How much clock skew is acceptable for a given application. This will help answer the question whether the system needs some alternate NTP algorithms to keep time in sync. If we measure the time difference between two updates to the same column, we will be able to answer the question on clock skew. We can implement this in memtable(AtomicSortedColumns.addColumn). If we find that a column is updated within say 100 millisecond, add the diff to a histogram. Since this might have performance issues, we might want to have some throttling like randomization or only enable it for a small time via nodetool. With this histogram, we will know what is an acceptable clock skew. Also apart from column resolution, is there any other area which will be affected by clock skew? Note: For the sake of argument, I am not talking about back date deletes or application modified timestamps. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7979) Acceptable time skew for C*
[ https://issues.apache.org/jira/browse/CASSANDRA-7979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194878#comment-14194878 ] sankalp kohli commented on CASSANDRA-7979: -- Attached patch for 2.0 which makes it off by default. The histogram will not have any values since it will always return Long.MAX. Acceptable time skew for C* --- Key: CASSANDRA-7979 URL: https://issues.apache.org/jira/browse/CASSANDRA-7979 Project: Cassandra Issue Type: Improvement Reporter: sankalp kohli Assignee: sankalp kohli Priority: Minor Attachments: 2.0_7979.diff, 2.0_7979_v2.txt, 2.0_7979_v3.txt, 2.1_7979_v2.txt, trunk_7979.diff, trunk_7979_v2.txt It is very hard to know the bounds on clock skew required for C* to work properly. Since the resolution is based on time and is at thrift column level, it depends on the application. How fast is the application updating the same column. If you update a column say after 5 millisecond and the clock skew is more than that, you might not see the updates in correct order. In this JIRA, I am proposing a change which will answer this question: How much clock skew is acceptable for a given application. This will help answer the question whether the system needs some alternate NTP algorithms to keep time in sync. If we measure the time difference between two updates to the same column, we will be able to answer the question on clock skew. We can implement this in memtable(AtomicSortedColumns.addColumn). If we find that a column is updated within say 100 millisecond, add the diff to a histogram. Since this might have performance issues, we might want to have some throttling like randomization or only enable it for a small time via nodetool. With this histogram, we will know what is an acceptable clock skew. Also apart from column resolution, is there any other area which will be affected by clock skew? Note: For the sake of argument, I am not talking about back date deletes or application modified timestamps. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-8246) Default timestamp for QueryOptions should be Long.MIN_VALUE
Sam Tunnicliffe created CASSANDRA-8246: -- Summary: Default timestamp for QueryOptions should be Long.MIN_VALUE Key: CASSANDRA-8246 URL: https://issues.apache.org/jira/browse/CASSANDRA-8246 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Fix For: 2.1.2 CASSANDRA-8139 adds proper handling for negative timestamps, but one case was missed in the merge to cassandra-2.1. {{QueryOptions.SpecificOptions.DEFAULT}} is still created with a timestamp of -1, so statements which do not come in via the native protocol will retain this timestamp and not be assigned a server-side timestamp at execution time.{{QueryOptions.Codec}} does the right thing, so statements that do come via the protocol are unaffected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8246) Default timestamp for QueryOptions should be Long.MIN_VALUE
[ https://issues.apache.org/jira/browse/CASSANDRA-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-8246: --- Attachment: 8246.txt Attached patch is a one liner to fix the default value, plus a unit test using {{QueryProcessor.instance.process}} to illustrate the problem (the test may be overkill). Default timestamp for QueryOptions should be Long.MIN_VALUE --- Key: CASSANDRA-8246 URL: https://issues.apache.org/jira/browse/CASSANDRA-8246 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Fix For: 2.1.2 Attachments: 8246.txt CASSANDRA-8139 adds proper handling for negative timestamps, but one case was missed in the merge to cassandra-2.1. {{QueryOptions.SpecificOptions.DEFAULT}} is still created with a timestamp of -1, so statements which do not come in via the native protocol will retain this timestamp and not be assigned a server-side timestamp at execution time.{{QueryOptions.Codec}} does the right thing, so statements that do come via the protocol are unaffected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8246) Default timestamp for QueryOptions should be Long.MIN_VALUE
[ https://issues.apache.org/jira/browse/CASSANDRA-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Sam Tunnicliffe updated CASSANDRA-8246: --- Reviewer: Sylvain Lebresne Default timestamp for QueryOptions should be Long.MIN_VALUE --- Key: CASSANDRA-8246 URL: https://issues.apache.org/jira/browse/CASSANDRA-8246 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Fix For: 2.1.2 Attachments: 8246.txt CASSANDRA-8139 adds proper handling for negative timestamps, but one case was missed in the merge to cassandra-2.1. {{QueryOptions.SpecificOptions.DEFAULT}} is still created with a timestamp of -1, so statements which do not come in via the native protocol will retain this timestamp and not be assigned a server-side timestamp at execution time.{{QueryOptions.Codec}} does the right thing, so statements that do come via the protocol are unaffected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[1/2] Clean up generics in dht package
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 623aa6fe7 - ad84e4d7e http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java -- diff --git a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java index 90501ab..09a1d65 100644 --- a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java +++ b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java @@ -20,7 +20,7 @@ package org.apache.cassandra.dht; * */ -public class RandomPartitionerTest extends PartitionerTestCaseBigIntegerToken +public class RandomPartitionerTest extends PartitionerTestCase { public void initPartitioner() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/test/unit/org/apache/cassandra/dht/RangeTest.java -- diff --git a/test/unit/org/apache/cassandra/dht/RangeTest.java b/test/unit/org/apache/cassandra/dht/RangeTest.java index aa35c0a..906396c 100644 --- a/test/unit/org/apache/cassandra/dht/RangeTest.java +++ b/test/unit/org/apache/cassandra/dht/RangeTest.java @@ -179,7 +179,7 @@ public class RangeTest assert not.intersects(twowrap); } -static T extends RingPosition void assertIntersection(Range one, Range two, RangeT ... ranges) +static T extends RingPositionT void assertIntersection(Range one, Range two, RangeT ... ranges) { SetRangeT correct = Range.rangeSet(ranges); SetRange result1 = one.intersectionWith(two); @@ -466,7 +466,7 @@ public class RangeTest checkDifference(oldRange, newTokens6, expected6); } -private T extends RingPosition void assertNormalize(ListRangeT input, ListRangeT expected) +private T extends RingPositionT void assertNormalize(ListRangeT input, ListRangeT expected) { ListRangeT result = Range.normalize(input); assert result.equals(expected) : Expecting + expected + but got + result;
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Conflicts: src/java/org/apache/cassandra/cql/QueryProcessor.java src/java/org/apache/cassandra/io/sstable/format/big/BigTableWriter.java Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/49768fea Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/49768fea Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/49768fea Branch: refs/heads/trunk Commit: 49768fea0071bd2f084c70c9b87468e2f48eb2a5 Parents: 632ebc5 ad84e4d Author: Joshua McKenzie jmcken...@apache.org Authored: Mon Nov 3 13:06:25 2014 -0600 Committer: Joshua McKenzie jmcken...@apache.org Committed: Mon Nov 3 13:06:25 2014 -0600 -- .../org/apache/cassandra/client/RingCache.java | 8 +- .../cassandra/config/DatabaseDescriptor.java| 6 +- .../cql3/statements/SelectStatement.java| 4 +- .../apache/cassandra/db/BatchlogManager.java| 2 +- .../cassandra/db/HintedHandOffManager.java | 2 +- .../db/marshal/LocalByPartionerType.java| 7 +- .../apache/cassandra/dht/AbstractBounds.java| 4 +- .../dht/AbstractByteOrderedPartitioner.java | 20 +- .../cassandra/dht/AbstractPartitioner.java | 5 +- .../org/apache/cassandra/dht/AbstractToken.java | 53 + .../apache/cassandra/dht/BigIntegerToken.java | 6 +- src/java/org/apache/cassandra/dht/Bounds.java | 6 +- .../cassandra/dht/ByteOrderedPartitioner.java | 4 +- .../org/apache/cassandra/dht/BytesToken.java| 5 +- .../apache/cassandra/dht/ExcludingBounds.java | 4 +- .../org/apache/cassandra/dht/IPartitioner.java | 12 +- .../cassandra/dht/IncludingExcludingBounds.java | 6 +- .../apache/cassandra/dht/LocalPartitioner.java | 6 +- .../org/apache/cassandra/dht/LocalToken.java| 6 +- .../org/apache/cassandra/dht/LongToken.java | 6 +- .../cassandra/dht/Murmur3Partitioner.java | 25 +- .../dht/OrderPreservingPartitioner.java | 20 +- .../apache/cassandra/dht/RandomPartitioner.java | 18 +- src/java/org/apache/cassandra/dht/Range.java| 39 ++-- .../org/apache/cassandra/dht/RangeStreamer.java | 2 +- .../org/apache/cassandra/dht/RingPosition.java | 2 +- .../org/apache/cassandra/dht/StringToken.java | 6 +- src/java/org/apache/cassandra/dht/Token.java| 52 + .../apache/cassandra/gms/TokenSerializer.java | 2 +- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/thrift/CassandraServer.java | 4 +- .../apache/cassandra/tools/SSTableExport.java | 2 +- .../apache/cassandra/tools/SSTableImport.java | 6 +- .../cassandra/db/ColumnFamilyStoreTest.java | 2 +- .../apache/cassandra/db/KeyCollisionTest.java | 230 --- .../apache/cassandra/dht/BootStrapperTest.java | 2 +- .../dht/ByteOrderedPartitionerTest.java | 2 +- .../apache/cassandra/dht/KeyCollisionTest.java | 230 +++ .../cassandra/dht/Murmur3PartitionerTest.java | 4 +- .../dht/OrderPreservingPartitionerTest.java | 2 +- .../cassandra/dht/PartitionerTestCase.java | 12 +- .../cassandra/dht/RandomPartitionerTest.java| 2 +- .../org/apache/cassandra/dht/RangeTest.java | 4 +- 43 files changed, 441 insertions(+), 401 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/config/DatabaseDescriptor.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/cql3/statements/SelectStatement.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/db/BatchlogManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/dht/BytesToken.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/dht/RangeStreamer.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/service/StorageProxy.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/49768fea/src/java/org/apache/cassandra/thrift/CassandraServer.java
[2/3] git commit: Clean up generics in dht package
Clean up generics in dht package Patch by blambov, reviewed by jmckenzie for CASSANDRA-8171 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ad84e4d7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ad84e4d7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ad84e4d7 Branch: refs/heads/trunk Commit: ad84e4d7ee02f2ae5f45d5d5d2cb50c6b10f3836 Parents: 623aa6f Author: Branimir Lambov branimir.lam...@datastax.com Authored: Mon Nov 3 13:04:37 2014 -0600 Committer: Joshua McKenzie jmcken...@apache.org Committed: Mon Nov 3 13:04:37 2014 -0600 -- .../org/apache/cassandra/client/RingCache.java | 8 +- .../cassandra/config/DatabaseDescriptor.java| 6 +- .../apache/cassandra/cql/QueryProcessor.java| 2 +- .../cql3/statements/SelectStatement.java| 4 +- .../apache/cassandra/db/BatchlogManager.java| 2 +- .../cassandra/db/HintedHandOffManager.java | 2 +- .../db/marshal/LocalByPartionerType.java| 7 +- .../apache/cassandra/dht/AbstractBounds.java| 4 +- .../dht/AbstractByteOrderedPartitioner.java | 20 +- .../cassandra/dht/AbstractPartitioner.java | 5 +- .../org/apache/cassandra/dht/AbstractToken.java | 53 + .../apache/cassandra/dht/BigIntegerToken.java | 6 +- src/java/org/apache/cassandra/dht/Bounds.java | 6 +- .../cassandra/dht/ByteOrderedPartitioner.java | 4 +- .../org/apache/cassandra/dht/BytesToken.java| 5 +- .../apache/cassandra/dht/ExcludingBounds.java | 4 +- .../org/apache/cassandra/dht/IPartitioner.java | 12 +- .../cassandra/dht/IncludingExcludingBounds.java | 6 +- .../apache/cassandra/dht/LocalPartitioner.java | 6 +- .../org/apache/cassandra/dht/LocalToken.java| 6 +- .../org/apache/cassandra/dht/LongToken.java | 6 +- .../cassandra/dht/Murmur3Partitioner.java | 25 ++- .../dht/OrderPreservingPartitioner.java | 20 +- .../apache/cassandra/dht/RandomPartitioner.java | 18 +- src/java/org/apache/cassandra/dht/Range.java| 39 ++-- .../org/apache/cassandra/dht/RangeStreamer.java | 2 +- .../org/apache/cassandra/dht/RingPosition.java | 2 +- .../org/apache/cassandra/dht/StringToken.java | 6 +- src/java/org/apache/cassandra/dht/Token.java| 52 + .../apache/cassandra/gms/TokenSerializer.java | 2 +- .../cassandra/io/sstable/SSTableWriter.java | 2 +- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/thrift/CassandraServer.java | 4 +- .../apache/cassandra/tools/SSTableExport.java | 2 +- .../apache/cassandra/tools/SSTableImport.java | 6 +- .../cassandra/db/ColumnFamilyStoreTest.java | 2 +- .../apache/cassandra/db/KeyCollisionTest.java | 217 --- .../apache/cassandra/dht/BootStrapperTest.java | 2 +- .../dht/ByteOrderedPartitionerTest.java | 2 +- .../apache/cassandra/dht/KeyCollisionTest.java | 217 +++ .../cassandra/dht/Murmur3PartitionerTest.java | 4 +- .../dht/OrderPreservingPartitionerTest.java | 2 +- .../cassandra/dht/PartitionerTestCase.java | 12 +- .../cassandra/dht/RandomPartitionerTest.java| 2 +- .../org/apache/cassandra/dht/RangeTest.java | 4 +- 45 files changed, 430 insertions(+), 390 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/src/java/org/apache/cassandra/client/RingCache.java -- diff --git a/src/java/org/apache/cassandra/client/RingCache.java b/src/java/org/apache/cassandra/client/RingCache.java index c3dbda5..d58d5d9 100644 --- a/src/java/org/apache/cassandra/client/RingCache.java +++ b/src/java/org/apache/cassandra/client/RingCache.java @@ -47,7 +47,7 @@ public class RingCache { final private static Logger logger = LoggerFactory.getLogger(RingCache.class); -private final IPartitioner? partitioner; +private final IPartitioner partitioner; private final Configuration conf; private MultimapRangeToken, InetAddress rangeMap; @@ -73,8 +73,8 @@ public class RingCache for (TokenRange range : ring) { -Token? left = partitioner.getTokenFactory().fromString(range.start_token); -Token? right = partitioner.getTokenFactory().fromString(range.end_token); +Token left = partitioner.getTokenFactory().fromString(range.start_token); +Token right = partitioner.getTokenFactory().fromString(range.end_token); RangeToken r = new RangeToken(left, right, partitioner); for (String host : range.endpoints) { @@ -112,7 +112,7 @@ public class RingCache public RangeToken getRange(ByteBuffer key) { // TODO:
[1/3] Clean up generics in dht package
Repository: cassandra Updated Branches: refs/heads/trunk 632ebc5c5 - 49768fea0 http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java -- diff --git a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java index 90501ab..09a1d65 100644 --- a/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java +++ b/test/unit/org/apache/cassandra/dht/RandomPartitionerTest.java @@ -20,7 +20,7 @@ package org.apache.cassandra.dht; * */ -public class RandomPartitionerTest extends PartitionerTestCaseBigIntegerToken +public class RandomPartitionerTest extends PartitionerTestCase { public void initPartitioner() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/test/unit/org/apache/cassandra/dht/RangeTest.java -- diff --git a/test/unit/org/apache/cassandra/dht/RangeTest.java b/test/unit/org/apache/cassandra/dht/RangeTest.java index aa35c0a..906396c 100644 --- a/test/unit/org/apache/cassandra/dht/RangeTest.java +++ b/test/unit/org/apache/cassandra/dht/RangeTest.java @@ -179,7 +179,7 @@ public class RangeTest assert not.intersects(twowrap); } -static T extends RingPosition void assertIntersection(Range one, Range two, RangeT ... ranges) +static T extends RingPositionT void assertIntersection(Range one, Range two, RangeT ... ranges) { SetRangeT correct = Range.rangeSet(ranges); SetRange result1 = one.intersectionWith(two); @@ -466,7 +466,7 @@ public class RangeTest checkDifference(oldRange, newTokens6, expected6); } -private T extends RingPosition void assertNormalize(ListRangeT input, ListRangeT expected) +private T extends RingPositionT void assertNormalize(ListRangeT input, ListRangeT expected) { ListRangeT result = Range.normalize(input); assert result.equals(expected) : Expecting + expected + but got + result;
[2/2] git commit: Clean up generics in dht package
Clean up generics in dht package Patch by blambov, reviewed by jmckenzie for CASSANDRA-8171 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ad84e4d7 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ad84e4d7 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ad84e4d7 Branch: refs/heads/cassandra-2.1 Commit: ad84e4d7ee02f2ae5f45d5d5d2cb50c6b10f3836 Parents: 623aa6f Author: Branimir Lambov branimir.lam...@datastax.com Authored: Mon Nov 3 13:04:37 2014 -0600 Committer: Joshua McKenzie jmcken...@apache.org Committed: Mon Nov 3 13:04:37 2014 -0600 -- .../org/apache/cassandra/client/RingCache.java | 8 +- .../cassandra/config/DatabaseDescriptor.java| 6 +- .../apache/cassandra/cql/QueryProcessor.java| 2 +- .../cql3/statements/SelectStatement.java| 4 +- .../apache/cassandra/db/BatchlogManager.java| 2 +- .../cassandra/db/HintedHandOffManager.java | 2 +- .../db/marshal/LocalByPartionerType.java| 7 +- .../apache/cassandra/dht/AbstractBounds.java| 4 +- .../dht/AbstractByteOrderedPartitioner.java | 20 +- .../cassandra/dht/AbstractPartitioner.java | 5 +- .../org/apache/cassandra/dht/AbstractToken.java | 53 + .../apache/cassandra/dht/BigIntegerToken.java | 6 +- src/java/org/apache/cassandra/dht/Bounds.java | 6 +- .../cassandra/dht/ByteOrderedPartitioner.java | 4 +- .../org/apache/cassandra/dht/BytesToken.java| 5 +- .../apache/cassandra/dht/ExcludingBounds.java | 4 +- .../org/apache/cassandra/dht/IPartitioner.java | 12 +- .../cassandra/dht/IncludingExcludingBounds.java | 6 +- .../apache/cassandra/dht/LocalPartitioner.java | 6 +- .../org/apache/cassandra/dht/LocalToken.java| 6 +- .../org/apache/cassandra/dht/LongToken.java | 6 +- .../cassandra/dht/Murmur3Partitioner.java | 25 ++- .../dht/OrderPreservingPartitioner.java | 20 +- .../apache/cassandra/dht/RandomPartitioner.java | 18 +- src/java/org/apache/cassandra/dht/Range.java| 39 ++-- .../org/apache/cassandra/dht/RangeStreamer.java | 2 +- .../org/apache/cassandra/dht/RingPosition.java | 2 +- .../org/apache/cassandra/dht/StringToken.java | 6 +- src/java/org/apache/cassandra/dht/Token.java| 52 + .../apache/cassandra/gms/TokenSerializer.java | 2 +- .../cassandra/io/sstable/SSTableWriter.java | 2 +- .../apache/cassandra/service/StorageProxy.java | 2 +- .../cassandra/thrift/CassandraServer.java | 4 +- .../apache/cassandra/tools/SSTableExport.java | 2 +- .../apache/cassandra/tools/SSTableImport.java | 6 +- .../cassandra/db/ColumnFamilyStoreTest.java | 2 +- .../apache/cassandra/db/KeyCollisionTest.java | 217 --- .../apache/cassandra/dht/BootStrapperTest.java | 2 +- .../dht/ByteOrderedPartitionerTest.java | 2 +- .../apache/cassandra/dht/KeyCollisionTest.java | 217 +++ .../cassandra/dht/Murmur3PartitionerTest.java | 4 +- .../dht/OrderPreservingPartitionerTest.java | 2 +- .../cassandra/dht/PartitionerTestCase.java | 12 +- .../cassandra/dht/RandomPartitionerTest.java| 2 +- .../org/apache/cassandra/dht/RangeTest.java | 4 +- 45 files changed, 430 insertions(+), 390 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/ad84e4d7/src/java/org/apache/cassandra/client/RingCache.java -- diff --git a/src/java/org/apache/cassandra/client/RingCache.java b/src/java/org/apache/cassandra/client/RingCache.java index c3dbda5..d58d5d9 100644 --- a/src/java/org/apache/cassandra/client/RingCache.java +++ b/src/java/org/apache/cassandra/client/RingCache.java @@ -47,7 +47,7 @@ public class RingCache { final private static Logger logger = LoggerFactory.getLogger(RingCache.class); -private final IPartitioner? partitioner; +private final IPartitioner partitioner; private final Configuration conf; private MultimapRangeToken, InetAddress rangeMap; @@ -73,8 +73,8 @@ public class RingCache for (TokenRange range : ring) { -Token? left = partitioner.getTokenFactory().fromString(range.start_token); -Token? right = partitioner.getTokenFactory().fromString(range.end_token); +Token left = partitioner.getTokenFactory().fromString(range.start_token); +Token right = partitioner.getTokenFactory().fromString(range.end_token); RangeToken r = new RangeToken(left, right, partitioner); for (String host : range.endpoints) { @@ -112,7 +112,7 @@ public class RingCache public RangeToken getRange(ByteBuffer key) { //
[jira] [Updated] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler updated CASSANDRA-8209: -- Attachment: 8209_2.1.txt cassandra-2.1 branch jamm-0.2.6-jamm-0.2.8 patch attached - does not include the jar, so that will need to replaced in lib/. Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt, 8209_2.1.txt It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler updated CASSANDRA-8209: -- Attachment: jamm-0.2.8.jar Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt, 8209_2.1.txt, jamm-0.2.8.jar It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194972#comment-14194972 ] Michael Shuler commented on CASSANDRA-8209: --- I checked out cassandra-2.1 + jamm-0.2.8 with Oracle JDK 1.7.0_72 for regression - no problem. I tested cassandra-2.1 + jamm-0.2.8 with OpenJDK 1.8.0_40-internal (debian testing package) and stress read still fails for me with: {noformat} Warming up READ with 5 iterations... INFO 19:31:44 Using data-center name 'datacenter1' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor) Connected to cluster: Test Cluster Datatacenter: datacenter1; Host: localhost/127.0.0.1; Rack: rack1 INFO 19:31:44 New Cassandra host localhost/127.0.0.1:9042 added com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server side on localhost/127.0.0.1:9042: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at com.datastax.driver.core.exceptions.DriverInternalError.copy(DriverInternalError.java:42) at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:256) at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:79) at org.apache.cassandra.stress.util.JavaDriverClient.prepare(JavaDriverClient.java:77) at org.apache.cassandra.stress.operations.predefined.CqlOperation$JavaDriverWrapper.createPreparedStatement(CqlOperation.java:337) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:75) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:107) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:281) at org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:320) Caused by: com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server side on localhost/127.0.0.1:9042: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at com.datastax.driver.core.Responses$Error.asException(Responses.java:86) at com.datastax.driver.core.SessionManager$1.apply(SessionManager.java:156) at com.datastax.driver.core.SessionManager$1.apply(SessionManager.java:131) at com.google.common.util.concurrent.Futures$1.apply(Futures.java:713) at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:861) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ... {noformat} Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt, 8209_2.1.txt, jamm-0.2.8.jar It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439)
[jira] [Comment Edited] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14194972#comment-14194972 ] Michael Shuler edited comment on CASSANDRA-8209 at 11/3/14 7:49 PM: I checked out cassandra-2.1 + jamm-0.2.8 with Oracle JDK 1.7.0_72 for regression - no problem. I tested cassandra-2.1 + jamm-0.2.8 with OpenJDK 1.8.0_40-internal (debian testing package) and stress read still fails for me with: {noformat} Warming up READ with 5 iterations... INFO 19:31:44 Using data-center name 'datacenter1' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor) Connected to cluster: Test Cluster Datatacenter: datacenter1; Host: localhost/127.0.0.1; Rack: rack1 INFO 19:31:44 New Cassandra host localhost/127.0.0.1:9042 added com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server side on localhost/127.0.0.1:9042: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at com.datastax.driver.core.exceptions.DriverInternalError.copy(DriverInternalError.java:42) at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:256) at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:79) at org.apache.cassandra.stress.util.JavaDriverClient.prepare(JavaDriverClient.java:77) at org.apache.cassandra.stress.operations.predefined.CqlOperation$JavaDriverWrapper.createPreparedStatement(CqlOperation.java:337) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:75) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:107) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:281) at org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:320) Caused by: com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server side on localhost/127.0.0.1:9042: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at com.datastax.driver.core.Responses$Error.asException(Responses.java:86) at com.datastax.driver.core.SessionManager$1.apply(SessionManager.java:156) at com.datastax.driver.core.SessionManager$1.apply(SessionManager.java:131) at com.google.common.util.concurrent.Futures$1.apply(Futures.java:713) at com.google.common.util.concurrent.Futures$ChainingListenableFuture.run(Futures.java:861) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) ... {noformat} Same error on Oracle's Early Access JDK release 1.8.0_40-ea-b12 was (Author: mshuler): I checked out cassandra-2.1 + jamm-0.2.8 with Oracle JDK 1.7.0_72 for regression - no problem. I tested cassandra-2.1 + jamm-0.2.8 with OpenJDK 1.8.0_40-internal (debian testing package) and stress read still fails for me with: {noformat} Warming up READ with 5 iterations... INFO 19:31:44 Using data-center name 'datacenter1' for DCAwareRoundRobinPolicy (if this is incorrect, please provide the correct datacenter name with DCAwareRoundRobinPolicy constructor) Connected to cluster: Test Cluster Datatacenter: datacenter1; Host: localhost/127.0.0.1; Rack: rack1 INFO 19:31:44 New Cassandra host localhost/127.0.0.1:9042 added com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server side on localhost/127.0.0.1:9042: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at com.datastax.driver.core.exceptions.DriverInternalError.copy(DriverInternalError.java:42) at com.datastax.driver.core.DefaultResultSetFuture.extractCauseFromExecutionException(DefaultResultSetFuture.java:256) at com.datastax.driver.core.AbstractSession.prepare(AbstractSession.java:79) at org.apache.cassandra.stress.util.JavaDriverClient.prepare(JavaDriverClient.java:77) at org.apache.cassandra.stress.operations.predefined.CqlOperation$JavaDriverWrapper.createPreparedStatement(CqlOperation.java:337) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:75) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:107) at org.apache.cassandra.stress.operations.predefined.CqlOperation.run(CqlOperation.java:281) at org.apache.cassandra.stress.StressAction$Consumer.run(StressAction.java:320) Caused by: com.datastax.driver.core.exceptions.DriverInternalError: An unexpected error occurred server
[jira] [Updated] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler updated CASSANDRA-8209: -- Attachment: 8209_2.1_oraclejdk8u40+jamm-0.2.8_system.log.txt Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt, 8209_2.1.txt, 8209_2.1_oraclejdk8u40+jamm-0.2.8_system.log.txt, jamm-0.2.8.jar It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8209) Cassandra crashes when running on JDK8 update 40
[ https://issues.apache.org/jira/browse/CASSANDRA-8209?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Michael Shuler updated CASSANDRA-8209: -- Tester: Michael Shuler Cassandra crashes when running on JDK8 update 40 Key: CASSANDRA-8209 URL: https://issues.apache.org/jira/browse/CASSANDRA-8209 Project: Cassandra Issue Type: Bug Components: Core Reporter: Jaroslav Kamenik Assignee: T Jake Luciani Priority: Critical Fix For: 2.1.2 Attachments: 8209.txt, 8209_2.1.txt, 8209_2.1_oraclejdk8u40+jamm-0.2.8_system.log.txt, jamm-0.2.8.jar It seems that problem is change made in update 40 - https://bugs.openjdk.java.net/browse/JDK-6642881 result is: java.lang.SecurityException: Cannot make java.lang.Class.classLoader accessible at java.lang.reflect.AccessibleObject.setAccessible0(AccessibleObject.java:147) ~[na:1.8.0_40-ea] at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:129) ~[na:1.8.0_40-ea] at org.github.jamm.MemoryMeter.addFieldChildren(MemoryMeter.java:204) ~[jamm-0.2.6.jar:na] at org.github.jamm.MemoryMeter.measureDeep(MemoryMeter.java:158) ~[jamm-0.2.6.jar:na] at org.apache.cassandra.cql3.statements.SelectStatement.measureForPreparedCache(SelectStatement.java:166) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.measure(QueryProcessor.java:546) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.storePreparedStatement(QueryProcessor.java:441) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:404) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.cql3.QueryProcessor.prepare(QueryProcessor.java:388) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.messages.PrepareMessage.execute(PrepareMessage.java:77) ~[apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:439) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:335) [apache-cassandra-2.1.1.jar:2.1.1] 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) [netty-all-4.0.23.Final.jar:4.0.23.Final] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_40-ea] at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) [apache-cassandra-2.1.1.jar:2.1.1] at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.1.jar:2.1.1] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_40-ea] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8246) Default timestamp for QueryOptions should be Long.MIN_VALUE
[ https://issues.apache.org/jira/browse/CASSANDRA-8246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195019#comment-14195019 ] Sylvain Lebresne commented on CASSANDRA-8246: - +1 Default timestamp for QueryOptions should be Long.MIN_VALUE --- Key: CASSANDRA-8246 URL: https://issues.apache.org/jira/browse/CASSANDRA-8246 Project: Cassandra Issue Type: Bug Components: Core Reporter: Sam Tunnicliffe Assignee: Sam Tunnicliffe Fix For: 2.1.2 Attachments: 8246.txt CASSANDRA-8139 adds proper handling for negative timestamps, but one case was missed in the merge to cassandra-2.1. {{QueryOptions.SpecificOptions.DEFAULT}} is still created with a timestamp of -1, so statements which do not come in via the native protocol will retain this timestamp and not be assigned a server-side timestamp at execution time.{{QueryOptions.Codec}} does the right thing, so statements that do come via the protocol are unaffected. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-2356) make the debian package never start by default
[ https://issues.apache.org/jira/browse/CASSANDRA-2356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195028#comment-14195028 ] Dave Cunningham commented on CASSANDRA-2356: As a new user this confused the hell out of me. Not auto-starting in Debian is a good start. It would also be good if Cassandra gave more useful error messages when nodes come together after being started on their own. make the debian package never start by default -- Key: CASSANDRA-2356 URL: https://issues.apache.org/jira/browse/CASSANDRA-2356 Project: Cassandra Issue Type: Improvement Components: Packaging Reporter: Jeremy Hanna Assignee: Michael Shuler Priority: Minor Labels: debian, packaging Fix For: 3.0 Attachments: 2356.txt Currently the debian package that installs cassandra starts cassandra by default. It sounds like that is a standard debian packaging convention. However, if you want to bootstrap a new node and want to configure it before it creates any sort of state information, it's a pain. I would think that the common use case would be to have it install all of the init scripts and such but *not* have it start up by default. That way an admin can configure cassandra with seed, token, host, etc. information and then start it. That makes it easier to programmatically do this as well - have chef/puppet install cassandra, do some configuration, then do the service start. With the current setup, it sounds like cassandra creates state on startup that has to be cleaned before a new configuration can take effect. So the process of installing turns into: * install debian package * shutdown cassandra * clean out state (data/log dirs) * configure cassandra * start cassandra That seems suboptimal for the default case, especially when trying to automate new nodes being bootstrapped. Another case might be when a downed node comes back up and starts by default and tries to claim a token that has already been claimed by another newly bootstrapped node. Rob is more familiar with that case so I'll let him explain it in the comments. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-7874) Validate functionality of different JSR-223 providers in UDFs
[ https://issues.apache.org/jira/browse/CASSANDRA-7874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Mikhail Stepura updated CASSANDRA-7874: --- Fix Version/s: 3.0 Validate functionality of different JSR-223 providers in UDFs - Key: CASSANDRA-7874 URL: https://issues.apache.org/jira/browse/CASSANDRA-7874 Project: Cassandra Issue Type: Task Components: Core Reporter: Robert Stupp Assignee: Robert Stupp Labels: udf Fix For: 3.0 Attachments: 7874.txt, 7874v2.txt, 7874v3.txt, 7874v4.txt CASSANDRA-7526 introduces ability to support optional JSR-223 providers like Clojure, Jython, Groovy or JRuby. This ticket is about to test functionality with these providers but not to include them in C* distribution. Expected result is a how to document, wiki page or similar. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8208) Inconsistent failure handling with repair
[ https://issues.apache.org/jira/browse/CASSANDRA-8208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Yuki Morishita updated CASSANDRA-8208: -- Attachment: 8208.txt Also https://github.com/yukim/cassandra/tree/8208 Changed from allAsList to successfulAsList so that repair does not fail immediately. Also switched to addListener since successfulAsList does not fail. Inconsistent failure handling with repair - Key: CASSANDRA-8208 URL: https://issues.apache.org/jira/browse/CASSANDRA-8208 Project: Cassandra Issue Type: Bug Reporter: Marcus Eriksson Assignee: Yuki Morishita Fix For: 3.0 Attachments: 8208.txt I think we introduced this with CASSANDRA-6455, problem is that we now treat all repair futures as a single unit (Futures.allAsList(..)) which makes the whole thing fail if one sub-future fails. Also, when one of those fail, we notify nodetool that we failed and we stop the executor with shutdownNow() which throws out any pending RepairJobs. [~yukim] I think we used to be able to proceed with the other RepairSessions even if one fails, right? If not, we should probably call cancel on the RepairJob runnables which are in queue for the executor after calling shutdownNow() in repairComplete() in StorageService. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (CASSANDRA-8247) HHOM creates repeated 'No files to compact for user defined compaction' messages
Brandon Williams created CASSANDRA-8247: --- Summary: HHOM creates repeated 'No files to compact for user defined compaction' messages Key: CASSANDRA-8247 URL: https://issues.apache.org/jira/browse/CASSANDRA-8247 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Priority: Minor Fix For: 2.1.2 HH is a guess because it's every 10m, but it seems likely: {noformat} INFO 19:16:39 No files to compact for user defined compaction INFO 19:26:39 No files to compact for user defined compaction INFO 19:36:39 No files to compact for user defined compaction INFO 19:46:39 No files to compact for user defined compaction INFO 19:56:39 No files to compact for user defined compaction {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[2/3] git commit: Set socket timeout when reading remote version
Set socket timeout when reading remote version Patch by wy96f, reviewed by Brandon Williams for CASSANDRA-8188 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/399a4ecf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/399a4ecf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/399a4ecf Branch: refs/heads/trunk Commit: 399a4ecf9e0974488bc5a60fcff90c7f84e5b044 Parents: ad84e4d Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:42:03 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:42:03 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 2 ++ src/java/org/apache/cassandra/net/OutboundTcpConnection.java | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b9b92fb..50a540f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Set socket timeout when reading remote version (CASSANDRA-8188) * Refactor how we track live size (CASSANDRA-7852) * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index c6b0098..05b449c 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -918,6 +918,7 @@ public final class MessagingService implements MessagingServiceMBean } socket.setKeepAlive(true); +socket.setSoTimeout(2 * OutboundTcpConnection.WAIT_FOR_VERSION_MAX_TIME); // determine the connection type to decide whether to buffer DataInputStream in = new DataInputStream(socket.getInputStream()); MessagingService.validateMagic(in.readInt()); @@ -925,6 +926,7 @@ public final class MessagingService implements MessagingServiceMBean boolean isStream = MessagingService.getBits(header, 3, 1) == 1; int version = MessagingService.getBits(header, 15, 8); logger.debug(Connection version {} from {}, version, socket.getInetAddress()); +socket.setSoTimeout(0); Thread thread = isStream ? new IncomingStreamingConnection(version, socket) http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/src/java/org/apache/cassandra/net/OutboundTcpConnection.java -- diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java index 996e606..a0ad011 100644 --- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java @@ -65,7 +65,7 @@ public class OutboundTcpConnection extends Thread private volatile boolean isStopped = false; private static final int OPEN_RETRY_DELAY = 100; // ms between retries -private static final int WAIT_FOR_VERSION_MAX_TIME = 5000; +public static final int WAIT_FOR_VERSION_MAX_TIME = 5000; private static final int NO_VERSION = Integer.MIN_VALUE; static final int LZ4_HASH_SEED = 0x9747b28c;
[1/3] git commit: Set socket timeout when reading remote version
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 ad84e4d7e - 399a4ecf9 refs/heads/trunk 49768fea0 - 57b5fb64c Set socket timeout when reading remote version Patch by wy96f, reviewed by Brandon Williams for CASSANDRA-8188 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/399a4ecf Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/399a4ecf Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/399a4ecf Branch: refs/heads/cassandra-2.1 Commit: 399a4ecf9e0974488bc5a60fcff90c7f84e5b044 Parents: ad84e4d Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:42:03 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:42:03 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 2 ++ src/java/org/apache/cassandra/net/OutboundTcpConnection.java | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index b9b92fb..50a540f 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.1.2 + * Set socket timeout when reading remote version (CASSANDRA-8188) * Refactor how we track live size (CASSANDRA-7852) * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/src/java/org/apache/cassandra/net/MessagingService.java -- diff --git a/src/java/org/apache/cassandra/net/MessagingService.java b/src/java/org/apache/cassandra/net/MessagingService.java index c6b0098..05b449c 100644 --- a/src/java/org/apache/cassandra/net/MessagingService.java +++ b/src/java/org/apache/cassandra/net/MessagingService.java @@ -918,6 +918,7 @@ public final class MessagingService implements MessagingServiceMBean } socket.setKeepAlive(true); +socket.setSoTimeout(2 * OutboundTcpConnection.WAIT_FOR_VERSION_MAX_TIME); // determine the connection type to decide whether to buffer DataInputStream in = new DataInputStream(socket.getInputStream()); MessagingService.validateMagic(in.readInt()); @@ -925,6 +926,7 @@ public final class MessagingService implements MessagingServiceMBean boolean isStream = MessagingService.getBits(header, 3, 1) == 1; int version = MessagingService.getBits(header, 15, 8); logger.debug(Connection version {} from {}, version, socket.getInetAddress()); +socket.setSoTimeout(0); Thread thread = isStream ? new IncomingStreamingConnection(version, socket) http://git-wip-us.apache.org/repos/asf/cassandra/blob/399a4ecf/src/java/org/apache/cassandra/net/OutboundTcpConnection.java -- diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java index 996e606..a0ad011 100644 --- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java @@ -65,7 +65,7 @@ public class OutboundTcpConnection extends Thread private volatile boolean isStopped = false; private static final int OPEN_RETRY_DELAY = 100; // ms between retries -private static final int WAIT_FOR_VERSION_MAX_TIME = 5000; +public static final int WAIT_FOR_VERSION_MAX_TIME = 5000; private static final int NO_VERSION = Integer.MIN_VALUE; static final int LZ4_HASH_SEED = 0x9747b28c;
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/57b5fb64 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/57b5fb64 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/57b5fb64 Branch: refs/heads/trunk Commit: 57b5fb64cb624d23a8026dda13e275ff59e50699 Parents: 49768fe 399a4ec Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:42:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:42:56 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/net/MessagingService.java | 2 ++ src/java/org/apache/cassandra/net/OutboundTcpConnection.java | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/57b5fb64/CHANGES.txt -- diff --cc CHANGES.txt index c87fa8d,50a540f..6f42f8c --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,37 -1,5 +1,38 @@@ +3.0 + * Mark sstables as repaired after full repair (CASSANDRA-7586) + * Extend Descriptor to include a format value and refactor reader/writer apis (CASSANDRA-7443) + * Integrate JMH for microbenchmarks (CASSANDRA-8151) + * Keep sstable levels when bootstrapping (CASSANDRA-7460) + * Add Sigar library and perform basic OS settings check on startup (CASSANDRA-7838) + * Support for aggregation functions (CASSANDRA-4914) + * Remove cassandra-cli (CASSANDRA-7920) + * Accept dollar quoted strings in CQL (CASSANDRA-7769) + * Make assassinate a first class command (CASSANDRA-7935) + * Support IN clause on any clustering column (CASSANDRA-4762) + * Improve compaction logging (CASSANDRA-7818) + * Remove YamlFileNetworkTopologySnitch (CASSANDRA-7917) + * Do anticompaction in groups (CASSANDRA-6851) + * Support pure user-defined functions (CASSANDRA-7395, 7526, 7562, 7740, 7781, 7929, + 7924, 7812, 8063) + * Permit configurable timestamps with cassandra-stress (CASSANDRA-7416) + * Move sstable RandomAccessReader to nio2, which allows using the + FILE_SHARE_DELETE flag on Windows (CASSANDRA-4050) + * Remove CQL2 (CASSANDRA-5918) + * Add Thrift get_multi_slice call (CASSANDRA-6757) + * Optimize fetching multiple cells by name (CASSANDRA-6933) + * Allow compilation in java 8 (CASSANDRA-7028) + * Make incremental repair default (CASSANDRA-7250) + * Enable code coverage thru JaCoCo (CASSANDRA-7226) + * Switch external naming of 'column families' to 'tables' (CASSANDRA-4369) + * Shorten SSTable path (CASSANDRA-6962) + * Use unsafe mutations for most unit tests (CASSANDRA-6969) + * Fix race condition during calculation of pending ranges (CASSANDRA-7390) + * Fail on very large batch sizes (CASSANDRA-8011) + * improve concurrency of repair (CASSANDRA-6455) + + 2.1.2 + * Set socket timeout when reading remote version (CASSANDRA-8188) * Refactor how we track live size (CASSANDRA-7852) * Make sure unfinished compaction files are removed (CASSANDRA-8124) * Fix shutdown when run as Windows service (CASSANDRA-8136) http://git-wip-us.apache.org/repos/asf/cassandra/blob/57b5fb64/src/java/org/apache/cassandra/net/MessagingService.java --
[jira] [Commented] (CASSANDRA-2356) make the debian package never start by default
[ https://issues.apache.org/jira/browse/CASSANDRA-2356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195068#comment-14195068 ] Michael Shuler commented on CASSANDRA-2356: --- [~sparkprime] with regards to node join messages, please open a new ticket for that request, including the actions you performed, the existing messages, and desired additions or changes. This ticket is only about not starting deb installs by default. :) make the debian package never start by default -- Key: CASSANDRA-2356 URL: https://issues.apache.org/jira/browse/CASSANDRA-2356 Project: Cassandra Issue Type: Improvement Components: Packaging Reporter: Jeremy Hanna Assignee: Michael Shuler Priority: Minor Labels: debian, packaging Fix For: 3.0 Attachments: 2356.txt Currently the debian package that installs cassandra starts cassandra by default. It sounds like that is a standard debian packaging convention. However, if you want to bootstrap a new node and want to configure it before it creates any sort of state information, it's a pain. I would think that the common use case would be to have it install all of the init scripts and such but *not* have it start up by default. That way an admin can configure cassandra with seed, token, host, etc. information and then start it. That makes it easier to programmatically do this as well - have chef/puppet install cassandra, do some configuration, then do the service start. With the current setup, it sounds like cassandra creates state on startup that has to be cleaned before a new configuration can take effect. So the process of installing turns into: * install debian package * shutdown cassandra * clean out state (data/log dirs) * configure cassandra * start cassandra That seems suboptimal for the default case, especially when trying to automate new nodes being bootstrapped. Another case might be when a downed node comes back up and starts by default and tries to claim a token that has already been claimed by another newly bootstrapped node. Rob is more familiar with that case so I'll let him explain it in the comments. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7874) Validate functionality of different JSR-223 providers in UDFs
[ https://issues.apache.org/jira/browse/CASSANDRA-7874?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195072#comment-14195072 ] Mikhail Stepura commented on CASSANDRA-7874: [~snazy] I've verified all the instructions and they are correct, thanks! But you need to port your changes to windows .bat/.ps1 files as well. Validate functionality of different JSR-223 providers in UDFs - Key: CASSANDRA-7874 URL: https://issues.apache.org/jira/browse/CASSANDRA-7874 Project: Cassandra Issue Type: Task Components: Core Reporter: Robert Stupp Assignee: Robert Stupp Labels: udf Fix For: 3.0 Attachments: 7874.txt, 7874v2.txt, 7874v3.txt, 7874v4.txt CASSANDRA-7526 introduces ability to support optional JSR-223 providers like Clojure, Jython, Groovy or JRuby. This ticket is about to test functionality with these providers but not to include them in C* distribution. Expected result is a how to document, wiki page or similar. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (CASSANDRA-8247) HHOM creates repeated 'No files to compact for user defined compaction' messages
[ https://issues.apache.org/jira/browse/CASSANDRA-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Carl Yeksigian updated CASSANDRA-8247: -- Attachment: 8247-2.1.txt There is a missing check for when there are no hints written. Adding a check before calling the compaction manager. HHOM creates repeated 'No files to compact for user defined compaction' messages Key: CASSANDRA-8247 URL: https://issues.apache.org/jira/browse/CASSANDRA-8247 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Priority: Minor Fix For: 2.1.2 Attachments: 8247-2.1.txt HH is a guess because it's every 10m, but it seems likely: {noformat} INFO 19:16:39 No files to compact for user defined compaction INFO 19:26:39 No files to compact for user defined compaction INFO 19:36:39 No files to compact for user defined compaction INFO 19:46:39 No files to compact for user defined compaction INFO 19:56:39 No files to compact for user defined compaction {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[4/8] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/02fa2fd4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/02fa2fd4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/02fa2fd4 Branch: refs/heads/cassandra-2.1 Commit: 02fa2fd42bb93a3cc0e6ac7d7af7e7bdc6a09a7b Parents: 399a4ec 83d4762 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:59:00 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:59:00 2014 -0600 -- --
[1/8] git commit: Add 'nodetool statusgossip'
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 5548bf45e - 83d4762a6 refs/heads/cassandra-2.1 399a4ecf9 - fe8e92f8f refs/heads/trunk 57b5fb64c - 931a51869 Add 'nodetool statusgossip' Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83d4762a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83d4762a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83d4762a Branch: refs/heads/cassandra-2.0 Commit: 83d4762a6d6c28c792fadc1d7f228600097d924f Parents: 5548bf4 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:58:04 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:58:04 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java| 6 ++ .../org/apache/cassandra/service/StorageServiceMBean.java| 3 +++ src/java/org/apache/cassandra/tools/NodeCmd.java | 8 src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml | 3 +++ 6 files changed, 26 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ec3ff1..97fb94a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 1f831b9..066544a 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -293,6 +293,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE } } +//should only be called via JMX +public boolean isGossipRunning() +{ +return Gossiper.instance.isEnabled(); +} + // should only be called via JMX public void startRPCServer() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 6308aa5..0e2f55d 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -392,6 +392,9 @@ public interface StorageServiceMBean extends NotificationEmitter // allows a user to recover a forcibly 'killed' node public void startGossiping(); +// allows a user to see whether gossip is running or not +public boolean isGossipRunning(); + // allows a user to forcibly completely stop cassandra public void stopDaemon(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index d9f3607..a397244 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -27,6 +27,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; + import javax.management.openmbean.TabularData; import com.google.common.base.Joiner; @@ -171,6 +172,7 @@ public class NodeCmd SNAPSHOT, STATUS, STATUSBINARY, +STATUSGOSSIP, STATUSTHRIFT, STOP, STOPDAEMON, @@ -1246,6 +1248,7 @@ public class NodeCmd case STATUSBINARY: nodeCmd.printIsNativeTransportRunning(System.out); break; case DISABLEGOSSIP : probe.stopGossiping(); break; case ENABLEGOSSIP: probe.startGossiping(); break; +case STATUSGOSSIP: nodeCmd.printIsGossipRunning(System.out); break; case DISABLEHANDOFF :
[6/8] git commit: Add 'nodetool statusgossip'
Add 'nodetool statusgossip' Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fe8e92f8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fe8e92f8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fe8e92f8 Branch: refs/heads/trunk Commit: fe8e92f8f1ff3adec119c8eb219e024886561196 Parents: 02fa2fd Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:59:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:59:56 2014 -0600 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/StorageService.java | 6 ++ .../apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java| 5 + src/java/org/apache/cassandra/tools/NodeTool.java | 14 ++ 5 files changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 50a540f..b1a8439 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -13,6 +13,7 @@ * Fix CREATE TABLE for CQL2 (CASSANDRA-8144) * Avoid boxing in ColumnStats min/max trackers (CASSANDRA-8109) Merged from 2.0: + * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 84a6c14..a49dfc3 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -306,6 +306,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE } // should only be called via JMX +public boolean isGossipRunning() +{ +return Gossiper.instance.isEnabled(); +} + +// should only be called via JMX public void startRPCServer() { if (daemon == null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 8bb13ae..8ae44ff 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -398,6 +398,9 @@ public interface StorageServiceMBean extends NotificationEmitter // allows a user to recover a forcibly 'killed' node public void startGossiping(); +// allows a user to see whether gossip is running or not +public boolean isGossipRunning(); + // allows a user to forcibly completely stop cassandra public void stopDaemon(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/tools/NodeProbe.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 7faec72..d495786 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -829,6 +829,11 @@ public class NodeProbe implements AutoCloseable ssProxy.startGossiping(); } +public boolean isGossipRunning() +{ +return ssProxy.isGossipRunning(); +} + public void stopThriftServer() { ssProxy.stopRPCServer(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/tools/NodeTool.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java index d5180f0..39bc4fd 100644 --- a/src/java/org/apache/cassandra/tools/NodeTool.java +++ b/src/java/org/apache/cassandra/tools/NodeTool.java @@ -127,6 +127,7 @@ public class NodeTool ListSnapshots.class, Status.class, StatusBinary.class, +StatusGossip.class, StatusThrift.class, Stop.class,
[7/8] git commit: Add 'nodetool statusgossip'
Add 'nodetool statusgossip' Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/fe8e92f8 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/fe8e92f8 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/fe8e92f8 Branch: refs/heads/cassandra-2.1 Commit: fe8e92f8f1ff3adec119c8eb219e024886561196 Parents: 02fa2fd Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:59:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:59:56 2014 -0600 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/StorageService.java | 6 ++ .../apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java| 5 + src/java/org/apache/cassandra/tools/NodeTool.java | 14 ++ 5 files changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 50a540f..b1a8439 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -13,6 +13,7 @@ * Fix CREATE TABLE for CQL2 (CASSANDRA-8144) * Avoid boxing in ColumnStats min/max trackers (CASSANDRA-8109) Merged from 2.0: + * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 84a6c14..a49dfc3 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -306,6 +306,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE } // should only be called via JMX +public boolean isGossipRunning() +{ +return Gossiper.instance.isEnabled(); +} + +// should only be called via JMX public void startRPCServer() { if (daemon == null) http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 8bb13ae..8ae44ff 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -398,6 +398,9 @@ public interface StorageServiceMBean extends NotificationEmitter // allows a user to recover a forcibly 'killed' node public void startGossiping(); +// allows a user to see whether gossip is running or not +public boolean isGossipRunning(); + // allows a user to forcibly completely stop cassandra public void stopDaemon(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/tools/NodeProbe.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java index 7faec72..d495786 100644 --- a/src/java/org/apache/cassandra/tools/NodeProbe.java +++ b/src/java/org/apache/cassandra/tools/NodeProbe.java @@ -829,6 +829,11 @@ public class NodeProbe implements AutoCloseable ssProxy.startGossiping(); } +public boolean isGossipRunning() +{ +return ssProxy.isGossipRunning(); +} + public void stopThriftServer() { ssProxy.stopRPCServer(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/fe8e92f8/src/java/org/apache/cassandra/tools/NodeTool.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeTool.java b/src/java/org/apache/cassandra/tools/NodeTool.java index d5180f0..39bc4fd 100644 --- a/src/java/org/apache/cassandra/tools/NodeTool.java +++ b/src/java/org/apache/cassandra/tools/NodeTool.java @@ -127,6 +127,7 @@ public class NodeTool ListSnapshots.class, Status.class, StatusBinary.class, +StatusGossip.class, StatusThrift.class,
[5/8] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/02fa2fd4 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/02fa2fd4 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/02fa2fd4 Branch: refs/heads/trunk Commit: 02fa2fd42bb93a3cc0e6ac7d7af7e7bdc6a09a7b Parents: 399a4ec 83d4762 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:59:00 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:59:00 2014 -0600 -- --
[8/8] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/931a5186 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/931a5186 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/931a5186 Branch: refs/heads/trunk Commit: 931a51869cda16f69e9b1ed4e4575c1dcbfb4dd0 Parents: 57b5fb6 fe8e92f Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:00:33 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:00:33 2014 -0600 -- CHANGES.txt | 1 + .../org/apache/cassandra/service/StorageService.java | 6 ++ .../apache/cassandra/service/StorageServiceMBean.java | 3 +++ src/java/org/apache/cassandra/tools/NodeProbe.java| 5 + src/java/org/apache/cassandra/tools/NodeTool.java | 14 ++ 5 files changed, 29 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/931a5186/CHANGES.txt -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/931a5186/src/java/org/apache/cassandra/service/StorageService.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/931a5186/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/931a5186/src/java/org/apache/cassandra/tools/NodeProbe.java -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/931a5186/src/java/org/apache/cassandra/tools/NodeTool.java --
[2/8] git commit: Add 'nodetool statusgossip'
Add 'nodetool statusgossip' Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83d4762a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83d4762a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83d4762a Branch: refs/heads/cassandra-2.1 Commit: 83d4762a6d6c28c792fadc1d7f228600097d924f Parents: 5548bf4 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:58:04 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:58:04 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java| 6 ++ .../org/apache/cassandra/service/StorageServiceMBean.java| 3 +++ src/java/org/apache/cassandra/tools/NodeCmd.java | 8 src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml | 3 +++ 6 files changed, 26 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ec3ff1..97fb94a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 1f831b9..066544a 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -293,6 +293,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE } } +//should only be called via JMX +public boolean isGossipRunning() +{ +return Gossiper.instance.isEnabled(); +} + // should only be called via JMX public void startRPCServer() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 6308aa5..0e2f55d 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -392,6 +392,9 @@ public interface StorageServiceMBean extends NotificationEmitter // allows a user to recover a forcibly 'killed' node public void startGossiping(); +// allows a user to see whether gossip is running or not +public boolean isGossipRunning(); + // allows a user to forcibly completely stop cassandra public void stopDaemon(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index d9f3607..a397244 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -27,6 +27,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; + import javax.management.openmbean.TabularData; import com.google.common.base.Joiner; @@ -171,6 +172,7 @@ public class NodeCmd SNAPSHOT, STATUS, STATUSBINARY, +STATUSGOSSIP, STATUSTHRIFT, STOP, STOPDAEMON, @@ -1246,6 +1248,7 @@ public class NodeCmd case STATUSBINARY: nodeCmd.printIsNativeTransportRunning(System.out); break; case DISABLEGOSSIP : probe.stopGossiping(); break; case ENABLEGOSSIP: probe.startGossiping(); break; +case STATUSGOSSIP: nodeCmd.printIsGossipRunning(System.out); break; case DISABLEHANDOFF : probe.disableHintedHandoff(); break; case ENABLEHANDOFF : if (arguments.length 0) { probe.enableHintedHandoff(arguments[0]); } @@ -1494,6 +1497,11 @@
[3/8] git commit: Add 'nodetool statusgossip'
Add 'nodetool statusgossip' Patch by Jan Karlsson, reviewed by Brandon Williams for CASSANDRA-8125 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/83d4762a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/83d4762a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/83d4762a Branch: refs/heads/trunk Commit: 83d4762a6d6c28c792fadc1d7f228600097d924f Parents: 5548bf4 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 14:58:04 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 14:58:04 2014 -0600 -- CHANGES.txt | 1 + src/java/org/apache/cassandra/service/StorageService.java| 6 ++ .../org/apache/cassandra/service/StorageServiceMBean.java| 3 +++ src/java/org/apache/cassandra/tools/NodeCmd.java | 8 src/java/org/apache/cassandra/tools/NodeProbe.java | 5 + src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml | 3 +++ 6 files changed, 26 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 0ec3ff1..97fb94a 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 2.0.12: + * Add 'nodetool statusgossip' (CASSANDRA-8125) * Improve client notification that nodes are ready for requests (CASSANDRA-7510) * Handle negative timestamp in writetime method (CASSANDRA-8139) * Pig: Remove errant LIMIT clause in CqlNativeStorage (CASSANDRA-8166) http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageService.java -- diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java index 1f831b9..066544a 100644 --- a/src/java/org/apache/cassandra/service/StorageService.java +++ b/src/java/org/apache/cassandra/service/StorageService.java @@ -293,6 +293,12 @@ public class StorageService extends NotificationBroadcasterSupport implements IE } } +//should only be called via JMX +public boolean isGossipRunning() +{ +return Gossiper.instance.isEnabled(); +} + // should only be called via JMX public void startRPCServer() { http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/service/StorageServiceMBean.java -- diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java index 6308aa5..0e2f55d 100644 --- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java +++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java @@ -392,6 +392,9 @@ public interface StorageServiceMBean extends NotificationEmitter // allows a user to recover a forcibly 'killed' node public void startGossiping(); +// allows a user to see whether gossip is running or not +public boolean isGossipRunning(); + // allows a user to forcibly completely stop cassandra public void stopDaemon(); http://git-wip-us.apache.org/repos/asf/cassandra/blob/83d4762a/src/java/org/apache/cassandra/tools/NodeCmd.java -- diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java index d9f3607..a397244 100644 --- a/src/java/org/apache/cassandra/tools/NodeCmd.java +++ b/src/java/org/apache/cassandra/tools/NodeCmd.java @@ -27,6 +27,7 @@ import java.text.SimpleDateFormat; import java.util.*; import java.util.Map.Entry; import java.util.concurrent.ExecutionException; + import javax.management.openmbean.TabularData; import com.google.common.base.Joiner; @@ -171,6 +172,7 @@ public class NodeCmd SNAPSHOT, STATUS, STATUSBINARY, +STATUSGOSSIP, STATUSTHRIFT, STOP, STOPDAEMON, @@ -1246,6 +1248,7 @@ public class NodeCmd case STATUSBINARY: nodeCmd.printIsNativeTransportRunning(System.out); break; case DISABLEGOSSIP : probe.stopGossiping(); break; case ENABLEGOSSIP: probe.startGossiping(); break; +case STATUSGOSSIP: nodeCmd.printIsGossipRunning(System.out); break; case DISABLEHANDOFF : probe.disableHintedHandoff(); break; case ENABLEHANDOFF : if (arguments.length 0) { probe.enableHintedHandoff(arguments[0]); } @@ -1494,6 +1497,11 @@ public
[1/3] git commit: Fix repeating message when there are no hints to compact
Repository: cassandra Updated Branches: refs/heads/cassandra-2.1 fe8e92f8f - 827d93e22 refs/heads/trunk 931a51869 - 156e278ed Fix repeating message when there are no hints to compact Patch by carlyeks, reviewed by brandonwilliams for CASSANDRA-8247 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/827d93e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/827d93e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/827d93e2 Branch: refs/heads/cassandra-2.1 Commit: 827d93e22fed93d5701b8b69a4818d0cc955dcce Parents: fe8e92f Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:06:55 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:06:55 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/827d93e2/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index a1920ae..0e68a71 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -260,6 +260,9 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean for (SSTable sstable : hintStore.getDataTracker().getUncompactingSSTables()) descriptors.add(sstable.descriptor); +if (descriptors.isEmpty()) +return; + try { CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) (System.currentTimeMillis() / 1000)).get();
[3/3] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/156e278e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/156e278e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/156e278e Branch: refs/heads/trunk Commit: 156e278ed841e5adf5172d3480af6143d844ab2f Parents: 931a518 827d93e Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:07:39 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:07:39 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/156e278e/src/java/org/apache/cassandra/db/HintedHandOffManager.java --
[2/3] git commit: Fix repeating message when there are no hints to compact
Fix repeating message when there are no hints to compact Patch by carlyeks, reviewed by brandonwilliams for CASSANDRA-8247 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/827d93e2 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/827d93e2 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/827d93e2 Branch: refs/heads/trunk Commit: 827d93e22fed93d5701b8b69a4818d0cc955dcce Parents: fe8e92f Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:06:55 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:06:55 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/827d93e2/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index a1920ae..0e68a71 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -260,6 +260,9 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean for (SSTable sstable : hintStore.getDataTracker().getUncompactingSSTables()) descriptors.add(sstable.descriptor); +if (descriptors.isEmpty()) +return; + try { CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) (System.currentTimeMillis() / 1000)).get();
[jira] [Updated] (CASSANDRA-7985) stress tool doesn't support auth
[ https://issues.apache.org/jira/browse/CASSANDRA-7985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremiah Jordan updated CASSANDRA-7985: --- Since Version: 2.1.0 stress tool doesn't support auth Key: CASSANDRA-7985 URL: https://issues.apache.org/jira/browse/CASSANDRA-7985 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Ashic Mahtab stress tool in 2.1 doesn't seem to support username / password authentication (like cqlsh). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8087) Multiple non-DISTINCT rows returned when page_size set
[ https://issues.apache.org/jira/browse/CASSANDRA-8087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195137#comment-14195137 ] Philip Thompson commented on CASSANDRA-8087: I can reproduce locally and on Jenkins on 2.0-HEAD that the test is failing with multiple rows being returned. Multiple non-DISTINCT rows returned when page_size set -- Key: CASSANDRA-8087 URL: https://issues.apache.org/jira/browse/CASSANDRA-8087 Project: Cassandra Issue Type: Bug Components: Core Reporter: Adam Holmberg Assignee: Tyler Hobbs Priority: Minor Fix For: 2.0.11 Using the following statements to reproduce: {code} CREATE TABLE test ( k int, p int, s int static, PRIMARY KEY (k, p) ); INSERT INTO test (k, p) VALUES (1, 1); INSERT INTO test (k, p) VALUES (1, 2); SELECT DISTINCT k, s FROM test ; {code} Native clients that set result_page_size in the query message receive multiple non-distinct rows back (one per clustered value p in row k). This is only reproduced on 2.0.10. Does not appear in 2.1.0 It does not appear in cqlsh for 2.0.10 because thrift. See https://datastax-oss.atlassian.net/browse/PYTHON-164 for background -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8247) HHOM creates repeated 'No files to compact for user defined compaction' messages
[ https://issues.apache.org/jira/browse/CASSANDRA-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195148#comment-14195148 ] Aleksey Yeschenko commented on CASSANDRA-8247: -- I know it's a Minor, but you might want to back port it to 2.0 as well. HHOM creates repeated 'No files to compact for user defined compaction' messages Key: CASSANDRA-8247 URL: https://issues.apache.org/jira/browse/CASSANDRA-8247 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Assignee: Carl Yeksigian Priority: Minor Fix For: 2.1.2 Attachments: 8247-2.1.txt HH is a guess because it's every 10m, but it seems likely: {noformat} INFO 19:16:39 No files to compact for user defined compaction INFO 19:26:39 No files to compact for user defined compaction INFO 19:36:39 No files to compact for user defined compaction INFO 19:46:39 No files to compact for user defined compaction INFO 19:56:39 No files to compact for user defined compaction {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-7964) cassandra-stress over schema should support multiple simultaneous inserts over the same seed
[ https://issues.apache.org/jira/browse/CASSANDRA-7964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195151#comment-14195151 ] Robert Stupp commented on CASSANDRA-7964: - Yes :) cassandra-stress over schema should support multiple simultaneous inserts over the same seed Key: CASSANDRA-7964 URL: https://issues.apache.org/jira/browse/CASSANDRA-7964 Project: Cassandra Issue Type: Improvement Components: Tools Reporter: Benedict Assignee: Benedict Priority: Minor This constraint makes testing contention essentially impossible -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[5/6] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/25be4649 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/25be4649 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/25be4649 Branch: refs/heads/cassandra-2.1 Commit: 25be46497a8df46f05ffa102bc645bfd684ea48a Parents: 827d93e e88bcfe Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:47 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:47 2014 -0600 -- --
[6/6] git commit: Merge branch 'cassandra-2.1' into trunk
Merge branch 'cassandra-2.1' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/c93cbb29 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/c93cbb29 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/c93cbb29 Branch: refs/heads/trunk Commit: c93cbb2959ce02d961a2e6c0fd1f103b70600dce Parents: 156e278 25be464 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:56 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:56 2014 -0600 -- --
[4/6] git commit: Merge branch 'cassandra-2.0' into cassandra-2.1
Merge branch 'cassandra-2.0' into cassandra-2.1 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/25be4649 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/25be4649 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/25be4649 Branch: refs/heads/trunk Commit: 25be46497a8df46f05ffa102bc645bfd684ea48a Parents: 827d93e e88bcfe Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:47 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:47 2014 -0600 -- --
[2/6] git commit: Fix repeated message when there are no hints to compact
Fix repeated message when there are no hints to compact Patch by carlyeks, reviwed by brandonwilliams for CASSANDRA-8247 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e88bcfeb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e88bcfeb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e88bcfeb Branch: refs/heads/cassandra-2.1 Commit: e88bcfeb15266756c7543beb97aad6c1be74dabe Parents: 83d4762 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:02 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:02 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88bcfeb/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index a6b6d4c..c2e4d0d 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -257,6 +257,9 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean for (SSTable sstable : hintStore.getDataTracker().getUncompactingSSTables()) descriptors.add(sstable.descriptor); +if (descriptors.isEmpty()) +return; + try { CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) (System.currentTimeMillis() / 1000)).get();
[1/6] git commit: Fix repeated message when there are no hints to compact
Repository: cassandra Updated Branches: refs/heads/cassandra-2.0 83d4762a6 - e88bcfeb1 refs/heads/cassandra-2.1 827d93e22 - 25be46497 refs/heads/trunk 156e278ed - c93cbb295 Fix repeated message when there are no hints to compact Patch by carlyeks, reviwed by brandonwilliams for CASSANDRA-8247 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e88bcfeb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e88bcfeb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e88bcfeb Branch: refs/heads/cassandra-2.0 Commit: e88bcfeb15266756c7543beb97aad6c1be74dabe Parents: 83d4762 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:02 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:02 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88bcfeb/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index a6b6d4c..c2e4d0d 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -257,6 +257,9 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean for (SSTable sstable : hintStore.getDataTracker().getUncompactingSSTables()) descriptors.add(sstable.descriptor); +if (descriptors.isEmpty()) +return; + try { CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) (System.currentTimeMillis() / 1000)).get();
[jira] [Updated] (CASSANDRA-8247) HHOM creates repeated 'No files to compact for user defined compaction' messages
[ https://issues.apache.org/jira/browse/CASSANDRA-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Brandon Williams updated CASSANDRA-8247: Fix Version/s: 2.0.12 HHOM creates repeated 'No files to compact for user defined compaction' messages Key: CASSANDRA-8247 URL: https://issues.apache.org/jira/browse/CASSANDRA-8247 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Assignee: Carl Yeksigian Priority: Minor Fix For: 2.0.12, 2.1.2 Attachments: 8247-2.1.txt HH is a guess because it's every 10m, but it seems likely: {noformat} INFO 19:16:39 No files to compact for user defined compaction INFO 19:26:39 No files to compact for user defined compaction INFO 19:36:39 No files to compact for user defined compaction INFO 19:46:39 No files to compact for user defined compaction INFO 19:56:39 No files to compact for user defined compaction {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CASSANDRA-8247) HHOM creates repeated 'No files to compact for user defined compaction' messages
[ https://issues.apache.org/jira/browse/CASSANDRA-8247?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195166#comment-14195166 ] Brandon Williams commented on CASSANDRA-8247: - Backported to 2.0 HHOM creates repeated 'No files to compact for user defined compaction' messages Key: CASSANDRA-8247 URL: https://issues.apache.org/jira/browse/CASSANDRA-8247 Project: Cassandra Issue Type: Bug Components: Core Reporter: Brandon Williams Assignee: Carl Yeksigian Priority: Minor Fix For: 2.0.12, 2.1.2 Attachments: 8247-2.1.txt HH is a guess because it's every 10m, but it seems likely: {noformat} INFO 19:16:39 No files to compact for user defined compaction INFO 19:26:39 No files to compact for user defined compaction INFO 19:36:39 No files to compact for user defined compaction INFO 19:46:39 No files to compact for user defined compaction INFO 19:56:39 No files to compact for user defined compaction {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[3/6] git commit: Fix repeated message when there are no hints to compact
Fix repeated message when there are no hints to compact Patch by carlyeks, reviwed by brandonwilliams for CASSANDRA-8247 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/e88bcfeb Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/e88bcfeb Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/e88bcfeb Branch: refs/heads/trunk Commit: e88bcfeb15266756c7543beb97aad6c1be74dabe Parents: 83d4762 Author: Brandon Williams brandonwilli...@apache.org Authored: Mon Nov 3 15:47:02 2014 -0600 Committer: Brandon Williams brandonwilli...@apache.org Committed: Mon Nov 3 15:47:02 2014 -0600 -- src/java/org/apache/cassandra/db/HintedHandOffManager.java | 3 +++ 1 file changed, 3 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/e88bcfeb/src/java/org/apache/cassandra/db/HintedHandOffManager.java -- diff --git a/src/java/org/apache/cassandra/db/HintedHandOffManager.java b/src/java/org/apache/cassandra/db/HintedHandOffManager.java index a6b6d4c..c2e4d0d 100644 --- a/src/java/org/apache/cassandra/db/HintedHandOffManager.java +++ b/src/java/org/apache/cassandra/db/HintedHandOffManager.java @@ -257,6 +257,9 @@ public class HintedHandOffManager implements HintedHandOffManagerMBean for (SSTable sstable : hintStore.getDataTracker().getUncompactingSSTables()) descriptors.add(sstable.descriptor); +if (descriptors.isEmpty()) +return; + try { CompactionManager.instance.submitUserDefined(hintStore, descriptors, (int) (System.currentTimeMillis() / 1000)).get();
[jira] [Commented] (CASSANDRA-8241) Use javac instead of javassist
[ https://issues.apache.org/jira/browse/CASSANDRA-8241?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14195181#comment-14195181 ] Robert Stupp commented on CASSANDRA-8241: - bq. users need to deploy a JDK Yes - tools.jar is required so the stricter license requirements apply. Not sure what these stricter license requirements exactly mean - my knowledge is about that is quite old - as far as I remember the stricter license forbids redistribution of a bundled JDK. JDK requirement itself seems similar to what JEE containers require e.g. for JSPs. Tomcat uses the Eclipse compiler - which could be another option. I'm pretty much in favor of using either tools.jar or Eclipse compiler to support known Java language features which are missing in javassist. Will dig a bit more into the license foo and check the Eclipse compiler. Use javac instead of javassist -- Key: CASSANDRA-8241 URL: https://issues.apache.org/jira/browse/CASSANDRA-8241 Project: Cassandra Issue Type: Improvement Components: Core Reporter: Robert Stupp Assignee: Robert Stupp Labels: udf Fix For: 3.0 Attachments: udf-java-javac.txt Using JDK's built-in Java-Compiler API has some advantages over javassist. Although compilation feels a bit slower, Java compiler API has some advantages: * boxing + unboxing works * generics work * compiler error messages are better (or at least known) and have line/column numbers The implementation does not use any temp files. Everything's in memory. Patch attached to this issue. -- This message was sent by Atlassian JIRA (v6.3.4#6332)