You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Aleksey Yeschenko (JIRA)" <ji...@apache.org> on 2019/01/11 16:31:00 UTC

[jira] [Commented] (CASSANDRA-14958) Counters fail to increment on 2.1/2.2 to 3.X mixed version clusters

    [ https://issues.apache.org/jira/browse/CASSANDRA-14958?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16740541#comment-16740541 ] 

Aleksey Yeschenko commented on CASSANDRA-14958:
-----------------------------------------------

Unfortunately there is indeed an issue.

In a mixed-version 2.1 + 3.0 cluster, when 3.0 coordinates a counter update request, and chooses to forward the counter mutation to a different leader, such update would be lost.

For that to happen you need to have a mixed mode cluster with 3.0 node both coordinating and opting to *not* be a leader itself, which is actually a rather likely scenario. I'm (very) surprised that this upgrade bug hasn't been noticed before (before CASSANDRA-14881 that is).

> Counters fail to increment on 2.1/2.2 to 3.X mixed version clusters
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-14958
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14958
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Feature/Counters
>            Reporter: Ariel Weisberg
>            Assignee: Aleksey Yeschenko
>            Priority: Critical
>             Fix For: 3.0.x, 2.0.x
>
>
> The upgrade test for this is failing
> https://circleci.com/gh/aweisberg/cassandra/2362#tests/containers/1
> I confirmed that this is occurring manually using cqlsh against the cluster constructed by the dtest.
> {noformat}
> cqlsh> describe schema;
> CREATE KEYSPACE ks WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}  AND durable_writes = true;
> CREATE TABLE ks.clicks (
>     userid int,
>     url text,
>     total counter,
>     PRIMARY KEY (userid, url)
> ) WITH COMPACT STORAGE
>     AND CLUSTERING ORDER BY (url ASC)
>     AND bloom_filter_fp_chance = 0.01
>     AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
>     AND comment = ''
>     AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
>     AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
>     AND crc_check_chance = 1.0
>     AND dclocal_read_repair_chance = 0.1
>     AND default_time_to_live = 0
>     AND gc_grace_seconds = 864000
>     AND max_index_interval = 2048
>     AND memtable_flush_period_in_ms = 0
>     AND min_index_interval = 128
>     AND read_repair_chance = 0.0
>     AND speculative_retry = '99PERCENTILE';
> cqlsh> use ks;
> cqlsh:ks> UPDATE clicks SET total = total + 1 WHERE userid = 1 AND url = 'http://foo.com';
> cqlsh:ks> SELECT total FROM clicks WHERE userid = 1 AND url = 'http://foo.com'
>       ... ;
>  total
> -------
>      0
> (1 rows)
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org