[
https://issues.apache.org/jira/browse/CASSANDRA-7344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14037097#comment-14037097
]
Sylvain Lebresne commented on CASSANDRA-7344:
---------------------------------------------
bq. By getting the last accepted commit and seeing whether it is empty.
But getting it locally is not enough since the point of SERIAL read is to
unsure there is no ongoing update we are not part of. So we'd need one
round-trip to get the last accepted commit, which is not better that doing the
prepare. Besides, the last accepted commit will generally not be empty unless
no update have ever been committed on the partition, so in practice we'd always
have to do the prepare and thus have 2 round-trips in general instead of one.
Or am I misunderstanding what you are suggesting?
> Read at SERIAL can lead to unnecessary contention
> --------------------------------------------------
>
> Key: CASSANDRA-7344
> URL: https://issues.apache.org/jira/browse/CASSANDRA-7344
> Project: Cassandra
> Issue Type: Improvement
> Reporter: sankalp kohli
> Assignee: sankalp kohli
> Priority: Minor
>
> If two clients are doing a read at serial on the same row, it does a full
> prepare step to figure out whether there is any updates or cas in flight or
> uncompleted.
> This can cause contention between then leading to waste of time in retrying.
> One of the request will not get a promise and will need to sleep.
> Instead they can check whether there is anything to finish and if not
> continue.
> If there is something to be done, then they can do the full prepare.
--
This message was sent by Atlassian JIRA
(v6.2#6252)