cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-7344) Read at SERIAL can lead to unnecessary contention
Date Thu, 19 Jun 2014 08:06:26 GMT


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:
>             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

View raw message