You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Yifan Cai (Jira)" <ji...@apache.org> on 2019/11/04 22:30:00 UTC

[jira] [Comment Edited] (CASSANDRA-15350) Add CAS “uncertainty” and “contention" messages that are currently propagated as a WriteTimeoutException.

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

Yifan Cai edited comment on CASSANDRA-15350 at 11/4/19 10:29 PM:
-----------------------------------------------------------------

 
||Branch||Diff||Tests||PR||
|[cas-exception-changes|https://github.com/yifan-c/cassandra/tree/cas-exception-changes]|[diff|https://github.com/apache/cassandra/compare/trunk...yifan-c:cas-exception-changes]|[tests|https://circleci.com/workflow-run/67f7d98f-5c2b-4b2c-9fd7-120862e554e7]|[PR|https://github.com/apache/cassandra/pull/379]|

 Changes:
 # Added {{CasWriteTimeoutException}} and {{CasWriteUncertaintyException}}
 # Added {{encode}}/{{decode}}/{{encodeSize}} for the new exceptions. Test cases added in ErrorMessageTest
 # Modified {{MessageFilters}} in dtest to support constructing CAS scenario.
 # Added CasWriteTest.
 # Minor changes
 ** Calculate the exact UTF-8 string byte size in CBUtil to reduce unnecessary memory allocation, (over-estimating with utf8MaxBytes)
 ** Corrected {{assertRows}} parameters sequence
 ** Moved {{DatabaseDescriptor}} initialization for dtest to test base class.


was (Author: yifanc):
 
||Branch||Diff||Tests||
|[cas-exception-changes|https://github.com/yifan-c/cassandra/tree/cas-exception-changes]|[diff|https://github.com/apache/cassandra/compare/trunk...yifan-c:cas-exception-changes]|[tests|https://circleci.com/workflow-run/67f7d98f-5c2b-4b2c-9fd7-120862e554e7]|

 Changes:
 # Added {{CasWriteTimeoutException}} and {{CasWriteUncertaintyException}}
 # Added {{encode}}/{{decode}}/{{encodeSize}} for the new exceptions. Test cases added in ErrorMessageTest
 # Modified {{MessageFilters}} in dtest to support constructing CAS scenario.
 # Added CasWriteTest.
 # Minor changes
 ** Calculate the exact UTF-8 string byte size in CBUtil to reduce unnecessary memory allocation, (over-estimating with utf8MaxBytes)
 ** Corrected {{assertRows}} parameters sequence
 ** Moved {{DatabaseDescriptor}} initialization for dtest to test base class.

> Add CAS “uncertainty” and “contention" messages that are currently propagated as a WriteTimeoutException.
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-15350
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15350
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Feature/Lightweight Transactions
>            Reporter: Alex Petrov
>            Assignee: Yifan Cai
>            Priority: Normal
>              Labels: client-impacting, protocolv5, pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Right now, CAS uncertainty introduced in https://issues.apache.org/jira/browse/CASSANDRA-6013 is propagating as WriteTimeout. One of this conditions it manifests is when there’s at least one acceptor that has accepted the value, which means that this value _may_ still get accepted during the later round, despite the proposer failure. Similar problem happens with CAS contention, which is also indistinguishable from the “regular” timeout, even though it is visible in metrics correctly.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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