[jira] [Updated] (CASSANDRA-11409) set read repair chance to 0 but find read repair process in trace
[ https://issues.apache.org/jira/browse/CASSANDRA-11409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Cameron Zemek updated CASSANDRA-11409: -- Priority: Minor (was: Major) > set read repair chance to 0 but find read repair process in trace > - > > Key: CASSANDRA-11409 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11409 > Project: Cassandra > Issue Type: Bug > Components: CQL, Distributed Metadata > Environment: Cassandra 2.1.13 with centos 7 >Reporter: Ryan Cho >Priority: Minor > Labels: lhf > Attachments: 螢幕快照 2016-03-23 下午2.06.10.png > > > I have set dclocal_read_repair_chance and read_repair_chance to 0.0 for one > month, but I still find "Read-repair DC_LOCAL" and "Initiating read-repair" > activities in system_trace.events, and query was executed in these two days > and long time after set read repair chance to 0.0 -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11409) set read repair chance to 0 but find read repair process in trace
[ https://issues.apache.org/jira/browse/CASSANDRA-11409?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15994312#comment-15994312 ] Cameron Zemek commented on CASSANDRA-11409: --- This is not a bug. Its just the setting name is misleading. dclocal_read_repair_chance and read_repair_chance don't actually control the chance of a read repair; they give a chance for the read executor to involve all/dc_local live replicas in a read which in turn will check consistency across those replicas. A read repair happens in either blocking or background process whenever a digest mismatch occurs. {code:title=StorageProxy.java|borderStyle=solid} private static List fetchRows(List initialCommands, ConsistencyLevel consistencyLevel) throws UnavailableException, ReadTimeoutException { //... catch (DigestMismatchException ex) { Tracing.trace("Digest mismatch: {}", ex); ReadRepairMetrics.repairedBlocking.mark(); // Do a full data read to resolve the correct response (and repair node that need be) RowDataResolver resolver = new RowDataResolver(exec.command.ksName, exec.command.key, exec.command.filter(), exec.command.timestamp); ReadCallbackrepairHandler = new ReadCallback<>(resolver, ConsistencyLevel.ALL, exec.getContactedReplicas().size(), exec.command, Keyspace.open(exec.command.getKeyspace()), exec.handler.endpoints); if (repairCommands == null) { repairCommands = new ArrayList<>(); repairResponseHandlers = new ArrayList<>(); } repairCommands.add(exec.command); repairResponseHandlers.add(repairHandler); MessageOut message = exec.command.createMessage(); for (InetAddress endpoint : exec.getContactedReplicas()) { Tracing.trace("Enqueuing full data read to {}", endpoint); MessagingService.instance().sendRR(message, endpoint, repairHandler); } } {code} {code:title=ReadCallback.java|borderStyle=solid} public void response(MessageIn message) { resolver.preprocess(message); int n = waitingFor(message) ? recievedUpdater.incrementAndGet(this) : received; if (n >= blockfor && resolver.isDataPresent()) { condition.signalAll(); // kick off a background digest comparison if this is a result that (may have) arrived after // the original resolve that get() kicks off as soon as the condition is signaled if (blockfor < endpoints.size() && n == endpoints.size()) { TraceState traceState = Tracing.instance.get(); if (traceState != null) traceState.trace("Initiating read-repair"); StageManager.getStage(Stage.READ_REPAIR).execute(new AsyncRepairRunner(traceState)); } } } {code} So as you can see by ReadCallback it will wait for all replicas to respond in the background and check for digest match and execute read repair if required. The read repair chance just includes more replicas for a read request so is putting more load on the cluster. In addition to a misleading setting name the documentation also states "Additionally, users should run frequent repairs (which streams data in such a way that it does not become comingled), and disable background read repair by setting the table’s read_repair_chance and dclocal_read_repair_chance to 0." Which as I just explain is false. Setting to 0 just makes it less likely for a read repair to occur, it doesn't outright stop it. The only way to avoid read repair is reading at LOCAL_ONE or ONE where no digest mismatch can occur. Therefore my suggestion in regards to this issue is to add better documentation on read repairs. > set read repair chance to 0 but find read repair process in trace > - > > Key: CASSANDRA-11409 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11409 > Project: Cassandra > Issue Type: Bug > Components: CQL, Distributed Metadata >
[jira] [Updated] (CASSANDRA-13486) Upstream Power arch specific code
[ https://issues.apache.org/jira/browse/CASSANDRA-13486?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Amitkumar Ghatwal updated CASSANDRA-13486: -- Attachment: CAPI_RowCache_JIRA_Description.doc Description: Hi All/ [~snazy], [~jasobrown] , [~ReiOdaira] , As was suggested to my previous JIRA ticket : https://issues.apache.org/jira/browse/CASSANDRA-13345 to create a separate development branch ( for power -ppc64le ) by forking github/apache/cassandra . I have created my own development branch : https://github.com/ghatwala/cassandra/tree/ppc64le-CAPI/trunk and pushed in power arch specific features of CAPI ( Row Cache ). Please refer PR :https://github.com/apache/cassandra/pull/108 to see all the code changes for CAPI-Row Cache . Please kindly review the same. Also please refer to the description document on CAPI-Row Cache. Regards, Amit was: Hi All/ [~snazy], [~jasobrown] , [~ReiOdaira] , As was suggested to my previous JIRA ticket : https://issues.apache.org/jira/browse/CASSANDRA-13345 to create a separate development branch ( for power -ppc64le ) by forking github/apache/cassandra . I have created my own development branch : https://github.com/ghatwala/cassandra/tree/ppc64le-CAPI/trunk and pushed in power arch specific features of CAPI ( Row Cache ). Please refer PR :https://github.com/apache/cassandra/pull/108 to see all the code changes for CAPI-Row Cache . Please kindly review the same. Regards, Amit > Upstream Power arch specific code > - > > Key: CASSANDRA-13486 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13486 > Project: Cassandra > Issue Type: Task > Components: Core >Reporter: Amitkumar Ghatwal > Attachments: CAPI_RowCache_JIRA_Description.doc > > > Hi All/ [~snazy], [~jasobrown] , [~ReiOdaira] , > As was suggested to my previous JIRA ticket : > https://issues.apache.org/jira/browse/CASSANDRA-13345 to create a separate > development branch ( for power -ppc64le ) by forking github/apache/cassandra > . > I have created my own development branch : > https://github.com/ghatwala/cassandra/tree/ppc64le-CAPI/trunk and pushed in > power arch specific features of CAPI ( Row Cache ). > Please refer PR :https://github.com/apache/cassandra/pull/108 to see all the > code changes for CAPI-Row Cache . Please kindly review the same. > Also please refer to the description document on CAPI-Row Cache. > Regards, > Amit -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15994171#comment-15994171 ] mck commented on CASSANDRA-11720: - Patch ready. || Branch || Testall || Dtest || | [trunk|https://github.com/michaelsembwever/cassandra/commit/f2344741a560c44538e88fb02cffa87f74445c9d] | [testall|https://circleci.com/gh/michaelsembwever/cassandra/tree/mck%2Ftrunk_11720] | [dtest|https://builds.apache.org/view/A-D/view/Cassandra/job/Cassandra-devbranch-dtest/39/] | (the dtests will take a while, and won't include the new [dtest|https://github.com/michaelsembwever/cassandra-dtest/commit/f5267617cb23b8faa968ca2a11ccf49d0725a81d]) > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15994168#comment-15994168 ] mck commented on CASSANDRA-11720: - [~hnishi], my patch is updated with your modified description. that patch is now at https://github.com/michaelsembwever/cassandra/commit/f2344741a560c44538e88fb02cffa87f74445c9d And the dtest patch is here – https://github.com/michaelsembwever/cassandra-dtest/commit/f5267617cb23b8faa968ca2a11ccf49d0725a81d > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-12922) Bloom filter miss counts are not measured correctly
[ https://issues.apache.org/jira/browse/CASSANDRA-12922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15994157#comment-15994157 ] Cameron Zemek commented on CASSANDRA-12922: --- Is there a patch file? the branch link is dead for me. > Bloom filter miss counts are not measured correctly > --- > > Key: CASSANDRA-12922 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12922 > Project: Cassandra > Issue Type: Bug > Components: Local Write-Read Paths >Reporter: Branimir Lambov >Assignee: Mahdi Mohammadi > Labels: lhf > > Bloom filter hits and misses are evaluated incorrectly in > {{BigTableReader.getPosition}}: we properly record hits, but not misses. In > particular, if we don't find a match for a key in the index, which is where > almost all non-matches will be rejected, [we don't record a bloom filter > false > positive|https://github.com/apache/cassandra/blob/trunk/src/java/org/apache/cassandra/io/sstable/format/big/BigTableReader.java#L228]. > This leads to very misleading output from e.g. {{nodetool tablestats}}. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15994151#comment-15994151 ] Hiroyuki Nishi commented on CASSANDRA-11720: [~michaelsembwever] I'm sorry that you are confused in my English. Thank you for updating the patch. I would like to modify the description of setmaxhintwindow additionally as follows. https://github.com/yhnishi/cassandra/commit/437c659f13ad430c3cff260aa94ea3f706e464f5 Please let me know what you think. > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Created] (CASSANDRA-13488) token distribution in multi-dc
vasu created CASSANDRA-13488: Summary: token distribution in multi-dc Key: CASSANDRA-13488 URL: https://issues.apache.org/jira/browse/CASSANDRA-13488 Project: Cassandra Issue Type: Wish Environment: QA Reporter: vasu Priority: Minor Hi , I have a question regarding token distribution in muti-dc setup. We are having multi-dc (DC1+DC2) setup with V-nodes enabled. How token ranges will be distributed in cluster ? Is complete cluster has completed one token range ? Or each DC has complete token range? -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-13399) UDA fails without input rows
[ https://issues.apache.org/jira/browse/CASSANDRA-13399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Robert Stupp updated CASSANDRA-13399: - Resolution: Fixed Fix Version/s: (was: 3.11.x) 3.11.0 Status: Resolved (was: Ready to Commit) Thanks! Committed as [388c961e4bb8f0a414c6aa700c67cd76eaf01046|https://github.com/apache/cassandra/commit/388c961e4bb8f0a414c6aa700c67cd76eaf01046] to [cassandra-3.11|https://github.com/apache/cassandra/tree/cassandra-3.11] > UDA fails without input rows > > > Key: CASSANDRA-13399 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13399 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: PAF >Assignee: Robert Stupp >Priority: Minor > Fix For: 3.11.0 > > > When creating the following user defined AGGREGATION and FUNCTION: > {code:title=init.cql|borderStyle=solid} > CREATE FUNCTION state_group_and_total(state map, type uuid) > RETURNS NULL ON NULL INPUT > RETURNS map > LANGUAGE java AS ' > Integer count = (Integer) state.get(type); > count = (count == null ? 1 : count + 1); > state.put(type, count); > return state; > '; > CREATE OR REPLACE AGGREGATE group_and_total(uuid) > SFUNC state_group_and_total > STYPE map > INITCOND {}; > {code} > And creating a statement like: > {code} > SELECT group_and_total("id") FROM mytable; > {code} > When mytable is empty, it throws the following null assertion > {code} > ERROR [Native-Transport-Requests-1] 2017-04-03 07:25:09,787 Message.java:623 > - Unexpected exception during request; channel = [id: 0xd7d9159b, > L:/172.19.0.2:9042 - R:/172.19.0.3:43444] > java.lang.AssertionError: null > at > org.apache.cassandra.cql3.functions.UDAggregate$2.compute(UDAggregate.java:189) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.AggregateFunctionSelector.getOutput(AggregateFunctionSelector.java:53) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$SelectionWithProcessing$1.getOutputRow(Selection.java:592) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.getOutputRow(Selection.java:430) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.build(Selection.java:424) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:763) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:400) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:378) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:251) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:79) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:217) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:248) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:233) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:517) > [apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) > [apache-cassandra-3.10.jar:3.10] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:357) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_121] > at >
[2/6] cassandra git commit: UDA fails without input rows
UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/cassandra-3.11 Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert StuppAuthored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map , type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[3/6] cassandra git commit: UDA fails without input rows
UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/trunk Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert StuppAuthored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map , type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[1/6] cassandra git commit: UDA fails without input rows
Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 6c840c0cd -> b77e754a0 refs/heads/cassandra-3.11 ca034eacf -> 388c961e4 refs/heads/trunk d4933a019 -> 675829564 UDA fails without input rows patch by Robert Stupp; reviewed by Benjamin Lerer for CASSANDRA-13399 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/b77e754a Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/b77e754a Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/b77e754a Branch: refs/heads/cassandra-3.0 Commit: b77e754a0cbaa9225d100a4361c3893c2d481611 Parents: 6c840c0 Author: Robert StuppAuthored: Tue May 2 16:12:10 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:10 2017 -0700 -- .../validation/operations/AggregationTest.java | 46 1 file changed, 46 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/b77e754a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java -- diff --git a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java index 485a19b..b5db77e 100644 --- a/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java +++ b/test/unit/org/apache/cassandra/cql3/validation/operations/AggregationTest.java @@ -25,6 +25,7 @@ import java.nio.ByteBuffer; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Calendar; +import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.TimeZone; @@ -929,6 +930,51 @@ public class AggregationTest extends CQLTester } @Test +public void testJavaAggregateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b int)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(a int, b int) " + + "CALLED ON NULL INPUT " + + "RETURNS int " + + "LANGUAGE java " + + "AS 'return Integer.valueOf((a!=null?a.intValue():0) + b.intValue());'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(int) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE int"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(new Object[]{null})); +} + +@Test +public void testJavaAggregateStateEmpty() throws Throwable +{ +createTable("CREATE TABLE %s (a int primary key, b uuid)"); + +String fState = createFunction(KEYSPACE, + "int, int", + "CREATE FUNCTION %s(state map , type uuid) " + + "RETURNS NULL ON NULL INPUT " + + "RETURNS map " + + "LANGUAGE java " + + "AS 'return state;'"); + +String a = createAggregate(KEYSPACE, + "int, int", + "CREATE AGGREGATE %s(uuid) " + + "SFUNC " + shortFunctionName(fState) + " " + + "STYPE map " + + "INITCOND {}"); + +assertRows(execute("SELECT " + a + "(b) FROM %s"), row(Collections.emptyMap())); +} + +@Test public void testJavaAggregateComplex() throws Throwable { createTable("CREATE TABLE %s (a int primary key, b int)"); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/388c961e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/388c961e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/388c961e Branch: refs/heads/cassandra-3.11 Commit: 388c961e4bb8f0a414c6aa700c67cd76eaf01046 Parents: ca034ea b77e754 Author: Robert StuppAuthored: Tue May 2 16:12:45 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:45 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/CHANGES.txt -- diff --cc CHANGES.txt index 1690e31,19cd39c..3844bfa --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,33 -1,4 +1,34 @@@ -3.0.14 +3.11.0 ++ * UDA fails without input rows (CASSANDRA-13399) + * Fix compaction-stress by using daemonInitialization (CASSANDRA-13188) + * V5 protocol flags decoding broken (CASSANDRA-13443) + * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) + * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) + * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) + * Add charset to Analyser input stream (CASSANDRA-13151) + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) + * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417) + * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307) + * Tracing payload not passed from QueryMessage to tracing session (CASSANDRA-12835) +Merged from 3.0: * Fail repair if insufficient responses received (CASSANDRA-13397) * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276) * Avoid name clashes in CassandraIndexTest (CASSANDRA-13427) http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java -- diff --cc src/java/org/apache/cassandra/cql3/functions/UDAggregate.java index 87c955f,96e19de..1a3174c --- a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java @@@ -156,21 -150,18 +156,15 @@@ public class UDAggregate extends Abstra private long stateFunctionCount; private long stateFunctionDuration; -private ByteBuffer state; -{ -reset(); -} +private Object state; +private boolean needsInit = true; -public void addInput(int protocolVersion, List values) throws InvalidRequestException +public void addInput(ProtocolVersion protocolVersion, List values) throws InvalidRequestException { - if (needsInit) - { - state = initcond != null ? UDHelper.deserialize(stateTypeCodec, protocolVersion, initcond.duplicate()) : null; - stateFunctionDuration = 0; - stateFunctionCount = 0; - needsInit = false; -
[6/6] cassandra git commit: Merge branch 'cassandra-3.11' into trunk
Merge branch 'cassandra-3.11' into trunk Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/67582956 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/67582956 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/67582956 Branch: refs/heads/trunk Commit: 6758295648d21cabf2e4f1f4f9f244bf8bd4a8c2 Parents: d4933a0 388c961 Author: Robert StuppAuthored: Tue May 2 16:13:09 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:13:09 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/67582956/CHANGES.txt -- diff --cc CHANGES.txt index 79ecb99,3844bfa..77edb25 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,66 -1,5 +1,67 @@@ +4.0 + * Fix WriteResponseHandlerTest is sensitive to test execution order (CASSANDRA-13421) + * Improve incremental repair logging (CASSANDRA-13468) + * Start compaction when incremental repair finishes (CASSANDRA-13454) + * Add repair streaming preview (CASSANDRA-13257) + * Cleanup isIncremental/repairedAt usage (CASSANDRA-13430) + * Change protocol to allow sending key space independent of query string (CASSANDRA-10145) + * Make gc_log and gc_warn settable at runtime (CASSANDRA-12661) + * Take number of files in L0 in account when estimating remaining compaction tasks (CASSANDRA-13354) + * Skip building views during base table streams on range movements (CASSANDRA-13065) + * Improve error messages for +/- operations on maps and tuples (CASSANDRA-13197) + * Remove deprecated repair JMX APIs (CASSANDRA-11530) + * Fix version check to enable streaming keep-alive (CASSANDRA-12929) + * Make it possible to monitor an ideal consistency level separate from actual consistency level (CASSANDRA-13289) + * Outbound TCP connections ignore internode authenticator (CASSANDRA-13324) + * Upgrade junit from 4.6 to 4.12 (CASSANDRA-13360) + * Cleanup ParentRepairSession after repairs (CASSANDRA-13359) + * Incremental repair not streaming correct sstables (CASSANDRA-13328) + * Upgrade the jna version to 4.3.0 (CASSANDRA-13300) + * Add the currentTimestamp, currentDate, currentTime and currentTimeUUID functions (CASSANDRA-13132) + * Remove config option index_interval (CASSANDRA-10671) + * Reduce lock contention for collection types and serializers (CASSANDRA-13271) + * Make it possible to override MessagingService.Verb ids (CASSANDRA-13283) + * Avoid synchronized on prepareForRepair in ActiveRepairService (CASSANDRA-9292) + * Adds the ability to use uncompressed chunks in compressed files (CASSANDRA-10520) + * Don't flush sstables when streaming for incremental repair (CASSANDRA-13226) + * Remove unused method (CASSANDRA-13227) + * Fix minor bugs related to #9143 (CASSANDRA-13217) + * Output warning if user increases RF (CASSANDRA-13079) + * Remove pre-3.0 streaming compatibility code for 4.0 (CASSANDRA-13081) + * Add support for + and - operations on dates (CASSANDRA-11936) + * Fix consistency of incrementally repaired data (CASSANDRA-9143) + * Increase commitlog version (CASSANDRA-13161) + * Make TableMetadata immutable, optimize Schema (CASSANDRA-9425) + * Refactor ColumnCondition (CASSANDRA-12981) + * Parallelize streaming of different keyspaces (CASSANDRA-4663) + * Improved compactions metrics (CASSANDRA-13015) + * Speed-up start-up sequence by avoiding un-needed flushes (CASSANDRA-13031) + * Use Caffeine (W-TinyLFU) for on-heap caches (CASSANDRA-10855) + * Thrift removal (CASSANDRA-5) + * Remove pre-3.0 compatibility code for 4.0 (CASSANDRA-12716) + * Add column definition kind to dropped columns in schema (CASSANDRA-12705) + * Add (automate) Nodetool Documentation (CASSANDRA-12672) + * Update bundled cqlsh python driver to 3.7.0 (CASSANDRA-12736) + * Reject invalid replication settings when creating or altering a keyspace (CASSANDRA-12681) + * Clean up the SSTableReader#getScanner API wrt removal of RateLimiter (CASSANDRA-12422) + * Use new token allocation for non bootstrap case as well (CASSANDRA-13080) + * Avoid byte-array copy when key cache is disabled (CASSANDRA-13084) + * Require forceful decommission if number of nodes is less than replication factor (CASSANDRA-12510) + * Allow IN restrictions on column families with collections (CASSANDRA-12654) + * Log message size in trace message in OutboundTcpConnection (CASSANDRA-13028) + * Add timeUnit Days for cassandra-stress (CASSANDRA-13029) + * Add mutation size and batch metrics
[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.11
Merge branch 'cassandra-3.0' into cassandra-3.11 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/388c961e Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/388c961e Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/388c961e Branch: refs/heads/trunk Commit: 388c961e4bb8f0a414c6aa700c67cd76eaf01046 Parents: ca034ea b77e754 Author: Robert StuppAuthored: Tue May 2 16:12:45 2017 -0700 Committer: Robert Stupp Committed: Tue May 2 16:12:45 2017 -0700 -- CHANGES.txt | 1 + .../cassandra/cql3/functions/UDAggregate.java | 21 + .../validation/operations/AggregationTest.java | 46 3 files changed, 60 insertions(+), 8 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/CHANGES.txt -- diff --cc CHANGES.txt index 1690e31,19cd39c..3844bfa --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,33 -1,4 +1,34 @@@ -3.0.14 +3.11.0 ++ * UDA fails without input rows (CASSANDRA-13399) + * Fix compaction-stress by using daemonInitialization (CASSANDRA-13188) + * V5 protocol flags decoding broken (CASSANDRA-13443) + * Use write lock not read lock for removing sstables from compaction strategies. (CASSANDRA-13422) + * Use corePoolSize equal to maxPoolSize in JMXEnabledThreadPoolExecutors (CASSANDRA-13329) + * Avoid rebuilding SASI indexes containing no values (CASSANDRA-12962) + * Add charset to Analyser input stream (CASSANDRA-13151) + * Fix testLimitSSTables flake caused by concurrent flush (CASSANDRA-12820) + * cdc column addition strikes again (CASSANDRA-13382) + * Fix static column indexes (CASSANDRA-13277) + * DataOutputBuffer.asNewBuffer broken (CASSANDRA-13298) + * unittest CipherFactoryTest failed on MacOS (CASSANDRA-13370) + * Forbid SELECT restrictions and CREATE INDEX over non-frozen UDT columns (CASSANDRA-13247) + * Default logging we ship will incorrectly print "?:?" for "%F:%L" pattern (CASSANDRA-13317) + * Possible AssertionError in UnfilteredRowIteratorWithLowerBound (CASSANDRA-13366) + * Support unaligned memory access for AArch64 (CASSANDRA-13326) + * Improve SASI range iterator efficiency on intersection with an empty range (CASSANDRA-12915). + * Fix equality comparisons of columns using the duration type (CASSANDRA-13174) + * Obfuscate password in stress-graphs (CASSANDRA-12233) + * Move to FastThreadLocalThread and FastThreadLocal (CASSANDRA-13034) + * nodetool stopdaemon errors out (CASSANDRA-13030) + * Tables in system_distributed should not use gcgs of 0 (CASSANDRA-12954) + * Fix primary index calculation for SASI (CASSANDRA-12910) + * More fixes to the TokenAllocator (CASSANDRA-12990) + * NoReplicationTokenAllocator should work with zero replication factor (CASSANDRA-12983) + * Address message coalescing regression (CASSANDRA-12676) + * Delete illegal character from StandardTokenizerImpl.jflex (CASSANDRA-13417) + * Fix cqlsh automatic protocol downgrade regression (CASSANDRA-13307) + * Tracing payload not passed from QueryMessage to tracing session (CASSANDRA-12835) +Merged from 3.0: * Fail repair if insufficient responses received (CASSANDRA-13397) * Fix SSTableLoader fail when the loaded table contains dropped columns (CASSANDRA-13276) * Avoid name clashes in CassandraIndexTest (CASSANDRA-13427) http://git-wip-us.apache.org/repos/asf/cassandra/blob/388c961e/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java -- diff --cc src/java/org/apache/cassandra/cql3/functions/UDAggregate.java index 87c955f,96e19de..1a3174c --- a/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java +++ b/src/java/org/apache/cassandra/cql3/functions/UDAggregate.java @@@ -156,21 -150,18 +156,15 @@@ public class UDAggregate extends Abstra private long stateFunctionCount; private long stateFunctionDuration; -private ByteBuffer state; -{ -reset(); -} +private Object state; +private boolean needsInit = true; -public void addInput(int protocolVersion, List values) throws InvalidRequestException +public void addInput(ProtocolVersion protocolVersion, List values) throws InvalidRequestException { - if (needsInit) - { - state = initcond != null ? UDHelper.deserialize(stateTypeCodec, protocolVersion, initcond.duplicate()) : null; - stateFunctionDuration = 0; - stateFunctionCount = 0; - needsInit = false; -
[jira] [Updated] (CASSANDRA-13421) WriteResponseHandlerTest is sensitive to test execution order
[ https://issues.apache.org/jira/browse/CASSANDRA-13421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg updated CASSANDRA-13421: --- Status: Ready to Commit (was: Patch Available) > WriteResponseHandlerTest is sensitive to test execution order > - > > Key: CASSANDRA-13421 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13421 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Ariel Weisberg >Assignee: Ariel Weisberg > Fix For: 4.0 > > > One of the tests checks statistics that aren't reset between tests. If the > test doesn't run first then the expected values are incorrect. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-13421) WriteResponseHandlerTest is sensitive to test execution order
[ https://issues.apache.org/jira/browse/CASSANDRA-13421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ariel Weisberg updated CASSANDRA-13421: --- Resolution: Fixed Status: Resolved (was: Ready to Commit) Committed as [d4933a019d8a717029444887f5f8a72d61cedd95|https://github.com/apache/cassandra/commit/d4933a019d8a717029444887f5f8a72d61cedd95] > WriteResponseHandlerTest is sensitive to test execution order > - > > Key: CASSANDRA-13421 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13421 > Project: Cassandra > Issue Type: Bug > Components: Testing >Reporter: Ariel Weisberg >Assignee: Ariel Weisberg > Fix For: 4.0 > > > One of the tests checks statistics that aren't reset between tests. If the > test doesn't run first then the expected values are incorrect. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Fix WriteResponseHandlerTest being sensitive to test execution order.
Repository: cassandra Updated Branches: refs/heads/trunk 4ef0bf886 -> d4933a019 Fix WriteResponseHandlerTest being sensitive to test execution order. Patch by Ariel Weisberg; Reviewed by Jeff Jirsa for CASSANDRA-13421 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/d4933a01 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/d4933a01 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/d4933a01 Branch: refs/heads/trunk Commit: d4933a019d8a717029444887f5f8a72d61cedd95 Parents: 4ef0bf8 Author: Ariel WeisbergAuthored: Thu Apr 6 17:09:37 2017 -0400 Committer: Ariel Weisberg Committed: Tue May 2 17:24:59 2017 -0400 -- CHANGES.txt | 1 + .../service/WriteResponseHandlerTest.java | 46 ++-- 2 files changed, 24 insertions(+), 23 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/d4933a01/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 161eba8..79ecb99 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Fix WriteResponseHandlerTest is sensitive to test execution order (CASSANDRA-13421) * Improve incremental repair logging (CASSANDRA-13468) * Start compaction when incremental repair finishes (CASSANDRA-13454) * Add repair streaming preview (CASSANDRA-13257) http://git-wip-us.apache.org/repos/asf/cassandra/blob/d4933a01/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java -- diff --git a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java index 815dbf6..8172463 100644 --- a/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java +++ b/test/unit/org/apache/cassandra/service/WriteResponseHandlerTest.java @@ -109,7 +109,6 @@ public class WriteResponseHandlerTest InetAddress.getByName("127.2.0.255"), InetAddress.getByName("127.2.0.254"), InetAddress.getByName("127.2.0.253")); } - @Before public void resetCounters() { @@ -117,28 +116,6 @@ public class WriteResponseHandlerTest } /** - * Validate that failing to achieve ideal CL increments the failure counter - * @throws Throwable - */ -@Test -public void failedIdealCLIncrementsStat() throws Throwable -{ -AbstractWriteResponseHandler awr = createWriteResponseHandler(ConsistencyLevel.LOCAL_QUORUM, ConsistencyLevel.EACH_QUORUM); - -//Succeed in local DC -awr.response(createDummyMessage(0)); -awr.response(createDummyMessage(1)); -awr.response(createDummyMessage(2)); - -//Fail in remote DC -awr.expired(); -awr.expired(); -awr.expired(); -assertEquals(1, ks.metric.writeFailedIdealCL.getCount()); -assertEquals(0, ks.metric.idealCLWriteLatency.totalLatency.getCount()); -} - -/** * Validate that a successful write at ideal CL logs latency information. Also validates * DatacenterSyncWriteResponseHandler * @throws Throwable @@ -212,6 +189,29 @@ public class WriteResponseHandlerTest assertEquals(startingCount + 1, ks.metric.idealCLWriteLatency.latency.getCount()); } +/** + * Validate that failing to achieve ideal CL increments the failure counter + * @throws Throwable + */ +@Test +public void failedIdealCLIncrementsStat() throws Throwable +{ + +AbstractWriteResponseHandler awr = createWriteResponseHandler(ConsistencyLevel.LOCAL_QUORUM, ConsistencyLevel.EACH_QUORUM); + +//Succeed in local DC +awr.response(createDummyMessage(0)); +awr.response(createDummyMessage(1)); +awr.response(createDummyMessage(2)); + +//Fail in remote DC +awr.expired(); +awr.expired(); +awr.expired(); +assertEquals(1, ks.metric.writeFailedIdealCL.getCount()); +assertEquals(0, ks.metric.idealCLWriteLatency.totalLatency.getCount()); +} + private static AbstractWriteResponseHandler createWriteResponseHandler(ConsistencyLevel cl, ConsistencyLevel ideal) { return createWriteResponseHandler(cl, ideal, System.nanoTime()); - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15993703#comment-15993703 ] mck commented on CASSANDRA-11720: - {quote} I think that i will implement the above correspondence, how is it?{quote} I'm not sure I understand you [~hnishi]. I've updated your patch, it is here – https://github.com/michaelsembwever/cassandra/commit/b40cb59728112b759b6caa8204152add825829cd I'm looking into adding something in to the existing hints dtest found in [hintedhandoff_test.py|https://github.com/riptano/cassandra-dtest/blob/master/hintedhandoff_test.py] > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Assigned] (CASSANDRA-12937) Default setting (yaml) for SSTable compression
[ https://issues.apache.org/jira/browse/CASSANDRA-12937?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] mck reassigned CASSANDRA-12937: --- Assignee: (was: mck) > Default setting (yaml) for SSTable compression > -- > > Key: CASSANDRA-12937 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12937 > Project: Cassandra > Issue Type: Improvement > Components: Configuration >Reporter: mck >Priority: Minor > Labels: lhf > > In many situations the choice of compression for sstables is more relevant to > the disks attached than to the schema and data. > This issue is to add to cassandra.yaml a default value for sstable > compression that new tables will inherit (instead of the defaults found in > {{CompressionParams.DEFAULT}}. > Examples where this can be relevant are filesystems that do on-the-fly > compression (btrfs, zfs) or specific disk configurations or even specific C* > versions (see CASSANDRA-10995 ). -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-13369) If there are multiple values for a key, CQL grammar choses last value. This should not be silent or should not be allowed.
[ https://issues.apache.org/jira/browse/CASSANDRA-13369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15993589#comment-15993589 ] Ariel Weisberg commented on CASSANDRA-13369: ||Code|utests|dtests|| |[3.11|https://github.com/apache/cassandra/compare/trunk...aweisberg:cassandra-13369-3.11?expand=1]|[utests|https://circleci.com/gh/aweisberg/cassandra/268]|| > If there are multiple values for a key, CQL grammar choses last value. This > should not be silent or should not be allowed. > -- > > Key: CASSANDRA-13369 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13369 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: Nachiket Patil >Assignee: Nachiket Patil >Priority: Minor > Attachments: 3.X.diff, trunk.diff > > > If through CQL, multiple values are specified for a key, grammar parses the > map and last value for the key wins. This behavior is bad. > e.g. > {code} > CREATE KEYSPACE Excalibur WITH REPLICATION = {'class': > 'NetworkTopologyStrategy', 'dc1': 2, 'dc1': 5}; > {code} > Parsing this statement, 'dc1' gets RF = 5. This can be catastrophic, may even > result in loss of data. This behavior should not be silent or not be allowed > at all. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-13399) UDA fails without input rows
[ https://issues.apache.org/jira/browse/CASSANDRA-13399?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15993561#comment-15993561 ] Benjamin Lerer commented on CASSANDRA-13399: Thanks for the patch. It looks good to me. > UDA fails without input rows > > > Key: CASSANDRA-13399 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13399 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: PAF >Assignee: Robert Stupp >Priority: Minor > Fix For: 3.11.x > > > When creating the following user defined AGGREGATION and FUNCTION: > {code:title=init.cql|borderStyle=solid} > CREATE FUNCTION state_group_and_total(state map, type uuid) > RETURNS NULL ON NULL INPUT > RETURNS map > LANGUAGE java AS ' > Integer count = (Integer) state.get(type); > count = (count == null ? 1 : count + 1); > state.put(type, count); > return state; > '; > CREATE OR REPLACE AGGREGATE group_and_total(uuid) > SFUNC state_group_and_total > STYPE map > INITCOND {}; > {code} > And creating a statement like: > {code} > SELECT group_and_total("id") FROM mytable; > {code} > When mytable is empty, it throws the following null assertion > {code} > ERROR [Native-Transport-Requests-1] 2017-04-03 07:25:09,787 Message.java:623 > - Unexpected exception during request; channel = [id: 0xd7d9159b, > L:/172.19.0.2:9042 - R:/172.19.0.3:43444] > java.lang.AssertionError: null > at > org.apache.cassandra.cql3.functions.UDAggregate$2.compute(UDAggregate.java:189) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.AggregateFunctionSelector.getOutput(AggregateFunctionSelector.java:53) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$SelectionWithProcessing$1.getOutputRow(Selection.java:592) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.getOutputRow(Selection.java:430) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.build(Selection.java:424) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:763) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:400) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:378) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:251) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:79) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:217) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:248) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:233) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:517) > [apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) > [apache-cassandra-3.10.jar:3.10] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:357) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_121] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > [apache-cassandra-3.10.jar:3.10] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) > [apache-cassandra-3.10.jar:3.10] > at java.lang.Thread.run(Thread.java:745)
[jira] [Updated] (CASSANDRA-13399) UDA fails without input rows
[ https://issues.apache.org/jira/browse/CASSANDRA-13399?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Benjamin Lerer updated CASSANDRA-13399: --- Status: Ready to Commit (was: Patch Available) > UDA fails without input rows > > > Key: CASSANDRA-13399 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13399 > Project: Cassandra > Issue Type: Bug > Components: CQL >Reporter: PAF >Assignee: Robert Stupp >Priority: Minor > Fix For: 3.11.x > > > When creating the following user defined AGGREGATION and FUNCTION: > {code:title=init.cql|borderStyle=solid} > CREATE FUNCTION state_group_and_total(state map, type uuid) > RETURNS NULL ON NULL INPUT > RETURNS map > LANGUAGE java AS ' > Integer count = (Integer) state.get(type); > count = (count == null ? 1 : count + 1); > state.put(type, count); > return state; > '; > CREATE OR REPLACE AGGREGATE group_and_total(uuid) > SFUNC state_group_and_total > STYPE map > INITCOND {}; > {code} > And creating a statement like: > {code} > SELECT group_and_total("id") FROM mytable; > {code} > When mytable is empty, it throws the following null assertion > {code} > ERROR [Native-Transport-Requests-1] 2017-04-03 07:25:09,787 Message.java:623 > - Unexpected exception during request; channel = [id: 0xd7d9159b, > L:/172.19.0.2:9042 - R:/172.19.0.3:43444] > java.lang.AssertionError: null > at > org.apache.cassandra.cql3.functions.UDAggregate$2.compute(UDAggregate.java:189) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.AggregateFunctionSelector.getOutput(AggregateFunctionSelector.java:53) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$SelectionWithProcessing$1.getOutputRow(Selection.java:592) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.getOutputRow(Selection.java:430) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.selection.Selection$ResultSetBuilder.build(Selection.java:424) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.process(SelectStatement.java:763) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.processResults(SelectStatement.java:400) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:378) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:251) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.statements.SelectStatement.execute(SelectStatement.java:79) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.processStatement(QueryProcessor.java:217) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:248) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.cql3.QueryProcessor.process(QueryProcessor.java:233) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.messages.QueryMessage.execute(QueryMessage.java:116) > ~[apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:517) > [apache-cassandra-3.10.jar:3.10] > at > org.apache.cassandra.transport.Message$Dispatcher.channelRead0(Message.java:410) > [apache-cassandra-3.10.jar:3.10] > at > io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:35) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:357) > [netty-all-4.0.39.Final.jar:4.0.39.Final] > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > [na:1.8.0_121] > at > org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162) > [apache-cassandra-3.10.jar:3.10] > at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109) > [apache-cassandra-3.10.jar:3.10] > at java.lang.Thread.run(Thread.java:745) [na:1.8.0_121] > {code} > Even if my
[jira] [Commented] (CASSANDRA-13419) Relax limit on number of pending endpoints during CAS
[ https://issues.apache.org/jira/browse/CASSANDRA-13419?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15993552#comment-15993552 ] Ariel Weisberg commented on CASSANDRA-13419: [~slebresne] [~pauloricardomg] can I get get some pointers on how to proceed with this? > Relax limit on number of pending endpoints during CAS > - > > Key: CASSANDRA-13419 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13419 > Project: Cassandra > Issue Type: Improvement > Components: Coordination, CQL >Reporter: Ariel Weisberg >Assignee: Ariel Weisberg > > CASSANDRA-8346 avoids stale reads during CAS when checking the condition or > doing serial reads by disallowing more than one pending endpoint. > It seems like it should be possible to allow more than one pending endpoint > by being smarter about who we read from during the QUORUM read or about the > state of pending nodes that are there for host replacement. > Sylvain suggested > bq. Well, I guess things are working as they do for decently good reason > here. That said, thinking about it, it could be that the solution from > CASSANDRA-8346 is a bit of a big hammer: I believe it's enough to ensure that > we read from at least one replica that responded to PREPARE 'in the same > Paxos round' But we have timeouts on the paxos round, so it could be it is > possible to reduce drastically the time we consider a node pending for CAS so > that it's not a real problem in practice. Something like having pending node > move to a "almost there" state before becoming true replica, and staying in > that state for basically the max time of a paxos round, and then Paxos might > be able to replace "pending" nodes by those "almost there" for PREPARE. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra-builds git commit: Allow using git tag reference as build argument
Repository: cassandra-builds Updated Branches: refs/heads/master fc452326e -> 9e7f187a2 Allow using git tag reference as build argument Closes #1 Project: http://git-wip-us.apache.org/repos/asf/cassandra-builds/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra-builds/commit/9e7f187a Tree: http://git-wip-us.apache.org/repos/asf/cassandra-builds/tree/9e7f187a Diff: http://git-wip-us.apache.org/repos/asf/cassandra-builds/diff/9e7f187a Branch: refs/heads/master Commit: 9e7f187a2002a494493a59b5c2d8410eeb656c87 Parents: fc45232 Author: Frank VissingAuthored: Tue May 2 20:13:34 2017 +0200 Committer: Stefan Podkowinski Committed: Tue May 2 20:14:09 2017 +0200 -- docker/build-debs.sh | 2 +- docker/build-rpms.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra-builds/blob/9e7f187a/docker/build-debs.sh -- diff --git a/docker/build-debs.sh b/docker/build-debs.sh index f550a25..9d55deb 100755 --- a/docker/build-debs.sh +++ b/docker/build-debs.sh @@ -10,7 +10,7 @@ CASSANDRA_BRANCH=$1 cd $CASSANDRA_DIR git fetch -git checkout origin/$CASSANDRA_BRANCH +git checkout $CASSANDRA_BRANCH # javadoc target is broken in docker without this mkdir mkdir -p ./build/javadoc ant artifacts -Drelease=true http://git-wip-us.apache.org/repos/asf/cassandra-builds/blob/9e7f187a/docker/build-rpms.sh -- diff --git a/docker/build-rpms.sh b/docker/build-rpms.sh index 1ffcd27..abd875c 100755 --- a/docker/build-rpms.sh +++ b/docker/build-rpms.sh @@ -11,7 +11,7 @@ CASSANDRA_VERSION=$2 cd $CASSANDRA_DIR git fetch -git checkout origin/$CASSANDRA_BRANCH +git checkout $CASSANDRA_BRANCH # javadoc target is broken in docker without this mkdir mkdir -p ./build/javadoc ant artifacts -Drelease=true - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-13468) Improve incremental repair logging
[ https://issues.apache.org/jira/browse/CASSANDRA-13468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Blake Eggleston updated CASSANDRA-13468: Resolution: Fixed Status: Resolved (was: Ready to Commit) Committed as {{4ef0bf8861ee12f5c7e826298c42fe3ddb29c198}} > Improve incremental repair logging > -- > > Key: CASSANDRA-13468 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13468 > Project: Cassandra > Issue Type: Improvement >Reporter: Blake Eggleston >Assignee: Blake Eggleston >Priority: Minor > > The logging for incremental repair should be improved a bit. In it's current > state, it's pretty conservative and doesn't really give much insight into > whats going on. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
cassandra git commit: Improve incremental repair logging
Repository: cassandra Updated Branches: refs/heads/trunk 8b3a60b9a -> 4ef0bf886 Improve incremental repair logging Patch by Blake Eggleston; reviewed by Marcus Eriksson for CASSANDRA-13468 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/4ef0bf88 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/4ef0bf88 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/4ef0bf88 Branch: refs/heads/trunk Commit: 4ef0bf8861ee12f5c7e826298c42fe3ddb29c198 Parents: 8b3a60b Author: Blake EgglestonAuthored: Thu Apr 20 13:24:14 2017 -0700 Committer: Blake Eggleston Committed: Tue May 2 09:19:27 2017 -0700 -- CHANGES.txt | 1 + .../repair/consistent/CoordinatorSession.java | 30 ++- .../repair/consistent/LocalSession.java | 4 +- .../repair/consistent/LocalSessions.java| 55 +++- 4 files changed, 50 insertions(+), 40 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cassandra/blob/4ef0bf88/CHANGES.txt -- diff --git a/CHANGES.txt b/CHANGES.txt index 7ead5ff..161eba8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 4.0 + * Improve incremental repair logging (CASSANDRA-13468) * Start compaction when incremental repair finishes (CASSANDRA-13454) * Add repair streaming preview (CASSANDRA-13257) * Cleanup isIncremental/repairedAt usage (CASSANDRA-13430) http://git-wip-us.apache.org/repos/asf/cassandra/blob/4ef0bf88/src/java/org/apache/cassandra/repair/consistent/CoordinatorSession.java -- diff --git a/src/java/org/apache/cassandra/repair/consistent/CoordinatorSession.java b/src/java/org/apache/cassandra/repair/consistent/CoordinatorSession.java index ef3eacd..cd4844b 100644 --- a/src/java/org/apache/cassandra/repair/consistent/CoordinatorSession.java +++ b/src/java/org/apache/cassandra/repair/consistent/CoordinatorSession.java @@ -88,13 +88,13 @@ public class CoordinatorSession extends ConsistentSession public void setState(State state) { -logger.debug("Setting coordinator state to {} for repair {}", state, sessionID); +logger.trace("Setting coordinator state to {} for repair {}", state, sessionID); super.setState(state); } public synchronized void setParticipantState(InetAddress participant, State state) { -logger.debug("Setting participant {} to state {} for repair {}", participant, state, sessionID); +logger.trace("Setting participant {} to state {} for repair {}", participant, state, sessionID); Preconditions.checkArgument(participantStates.containsKey(participant), "Session %s doesn't include %s", sessionID, participant); @@ -130,6 +130,7 @@ public class CoordinatorSession extends ConsistentSession protected void sendMessage(InetAddress destination, RepairMessage message) { +logger.trace("Sending {} to {}", message, destination); MessageOut messageOut = new MessageOut(MessagingService.Verb.REPAIR_MESSAGE, message, RepairMessage.serializer); MessagingService.instance().sendOneWay(messageOut, destination); } @@ -138,7 +139,7 @@ public class CoordinatorSession extends ConsistentSession { Preconditions.checkArgument(allStates(State.PREPARING)); -logger.debug("Sending PrepareConsistentRequest message to {}", participants); +logger.debug("Beginning prepare phase of incremental repair session {}", sessionID); PrepareConsistentRequest message = new PrepareConsistentRequest(sessionID, coordinator, participants); for (final InetAddress participant : participants) { @@ -151,20 +152,21 @@ public class CoordinatorSession extends ConsistentSession { if (getState() == State.FAILED) { -logger.debug("Consistent repair {} has failed, ignoring prepare response from {}", sessionID, participant); +logger.trace("Incremental repair session {} has failed, ignoring prepare response from {}", sessionID, participant); } else if (!success) { -logger.debug("Failed prepare response received from {} for session {}", participant, sessionID); +logger.debug("{} failed the prepare phase for incremental repair session {}. Aborting session", participant, sessionID); fail(); prepareFuture.set(false); } else { -logger.debug("Successful prepare response received from {} for session {}", participant, sessionID); +
[jira] [Commented] (CASSANDRA-11348) Compaction Filter in Cassandra
[ https://issues.apache.org/jira/browse/CASSANDRA-11348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15993091#comment-15993091 ] Romain Hardouin commented on CASSANDRA-11348: - I have already needed this feature, this is interesting and useful. The concern when purging data (I mean physically delete) is repair (read repair or maintenance repair), we must use tombstones to avoid data resurrection. One of my use case is to purge counters that are older than a specific timestamp. I also imagined a filter that put tombstones on data and produce backup sstables corresponding to tombstone'd data. This would allow easy restore in case of problems. Another use case would be to plug a small filter that just logs keys when a key is greater than a specific size but less than {{compaction_large_partition_warning_threshold_mb}}. It would allow to easily find outliers. > Compaction Filter in Cassandra > -- > > Key: CASSANDRA-11348 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11348 > Project: Cassandra > Issue Type: New Feature > Components: Compaction >Reporter: Dikang Gu >Assignee: Dikang Gu >Priority: Minor > Fix For: 4.x > > > RocksDB has the feature called "Compaction Filter" to allow application to > modify/delete a key-value during the background compaction. > https://github.com/facebook/rocksdb/blob/v4.1/include/rocksdb/options.h#L201-L226 > It could be valuable to implement this feature in C* as well. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Created] (CASSANDRA-13487) Generate snapshot packages through Jenkins
Stefan Podkowinski created CASSANDRA-13487: -- Summary: Generate snapshot packages through Jenkins Key: CASSANDRA-13487 URL: https://issues.apache.org/jira/browse/CASSANDRA-13487 Project: Cassandra Issue Type: New Feature Components: Build Reporter: Stefan Podkowinski Assignee: Stefan Podkowinski Creating packages through the new docker based build scripts now work pretty much independent from any local environment, as long as docker is available, e.g. also on Jenkins. Having daily snapshots available for deb/rpm artifacts would enable us to provide users dev-releases for testing and validating fixes. I've created a branch for the Jenkins integration, which can be found here: https://github.com/spodkowinski/cassandra-builds/tree/jenkins_debrpm The major issue I'm currently struggling with is the handling of the actual version value. We need to find a way to have Jenkins recognize the correct version for the branch being build. Also we must create $version-SNAPSHOT packages, as builds are not official releases and we should not have any packages for versions that aren't published yet. The Debian build process will use the version defined in {{debian/changelog}}. Adding a -SNAPSHOT suffix for the version should work, but this has to be handled manually and care must be taken to change the value back again for a regular release. With RPMs, the version must be set for {{cassandra.spec}}, which is currently done by running {noformat}rpmbuild --define="version ${CASSANDRA_VERSION}" -ba ./redhat/cassandra.spec{noformat}, where the version is passed as a parameter by {{build-scripts/cassandra-rpm-packaging.sh}}. Maybe we could grep the version from build.xml here? So I wonder if there any way we can keep track of the version in a single place, such as build.xml or CHANGES. Afterwards we also need to enable a SNAPSHOT mode, maybe by setting a Jenkins environment value. /cc [~mshuler] -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15992558#comment-15992558 ] Hiroyuki Nishi commented on CASSANDRA-11720: [~michaelsembwever] I am very sorry for the late reply... I think that i will implement the above correspondence, how is it? > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-13486) Upstream Power arch specific code
[ https://issues.apache.org/jira/browse/CASSANDRA-13486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15992556#comment-15992556 ] ASF GitHub Bot commented on CASSANDRA-13486: Github user ghatwala commented on the issue: https://github.com/apache/cassandra/pull/108 The JIRA ticket ID which references this PR : https://issues.apache.org/jira/browse/CASSANDRA-13486 > Upstream Power arch specific code > - > > Key: CASSANDRA-13486 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13486 > Project: Cassandra > Issue Type: Task > Components: Core >Reporter: Amitkumar Ghatwal > > Hi All/ [~snazy], [~jasobrown] , [~ReiOdaira] , > As was suggested to my previous JIRA ticket : > https://issues.apache.org/jira/browse/CASSANDRA-13345 to create a separate > development branch ( for power -ppc64le ) by forking github/apache/cassandra > . > I have created my own development branch : > https://github.com/ghatwala/cassandra/tree/ppc64le-CAPI/trunk and pushed in > power arch specific features of CAPI ( Row Cache ). > Please refer PR :https://github.com/apache/cassandra/pull/108 to see all the > code changes for CAPI-Row Cache . Please kindly review the same. > Regards, > Amit -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Created] (CASSANDRA-13486) Upstream Power arch specific code
Amitkumar Ghatwal created CASSANDRA-13486: - Summary: Upstream Power arch specific code Key: CASSANDRA-13486 URL: https://issues.apache.org/jira/browse/CASSANDRA-13486 Project: Cassandra Issue Type: Task Components: Core Reporter: Amitkumar Ghatwal Hi All/ [~snazy], [~jasobrown] , [~ReiOdaira] , As was suggested to my previous JIRA ticket : https://issues.apache.org/jira/browse/CASSANDRA-13345 to create a separate development branch ( for power -ppc64le ) by forking github/apache/cassandra . I have created my own development branch : https://github.com/ghatwala/cassandra/tree/ppc64le-CAPI/trunk and pushed in power arch specific features of CAPI ( Row Cache ). Please refer PR :https://github.com/apache/cassandra/pull/108 to see all the code changes for CAPI-Row Cache . Please kindly review the same. Regards, Amit -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Updated] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] mck updated CASSANDRA-11720: Status: In Progress (was: Awaiting Feedback) > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15992532#comment-15992532 ] mck commented on CASSANDRA-11720: - thanks [~rha]! i'll update the patch. i'm also looking into adding something to the {{hintedhandoff_test.py}} dtest. > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org
[jira] [Commented] (CASSANDRA-11720) Changing `max_hint_window_in_ms` at runtime
[ https://issues.apache.org/jira/browse/CASSANDRA-11720?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15992489#comment-15992489 ] Romain Hardouin commented on CASSANDRA-11720: - It would be nice to have that in nodetool. I use jmxterm to do that currently: {code} echo "set -b org.apache.cassandra.db:type=StorageProxy MaxHintWindow " | java -jar /path/to/jmxterm.jar -l 127.0.0.1:7199 -u ... -p ... {code} Some comments: In {{SetMaxHintWindow}} it should be {{value_in_ms}}: {code} usage = "" {code} In {{GetMaxHintWindow}} I don't understand "of the given type" here: {code} @Command(name = "getmaxhintwindow", description = "Print the max hint window of the given type in ms") {code} Maybe just {{Print max hint window in ms}}? Thanks > Changing `max_hint_window_in_ms` at runtime > --- > > Key: CASSANDRA-11720 > URL: https://issues.apache.org/jira/browse/CASSANDRA-11720 > Project: Cassandra > Issue Type: Wish > Components: Coordination >Reporter: Jens Rantil >Assignee: Hiroyuki Nishi >Priority: Minor > Labels: lhf > Fix For: 4.x > > Attachments: CASSANDRA-11720-trunk.patch > > > Scenario: A larger node (in terms of data it holds) goes down. You realize > that it will take slightly more than `max_hint_window_in_ms` to fix it. You > have a the disk space to store some additional hints. > Proposal: Support changing `max_hint_window_in_ms` at runtime. The change > doesn't have to be persisted somewhere. I'm thinking similar to changing the > `compactionthroughput` etc. using `nodetool`. > Workaround: Change the value in the configuration file and do a rolling > restart of all the nodes. -- This message was sent by Atlassian JIRA (v6.3.15#6346) - To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org