cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Oskar Kjellin <oskar.kjel...@gmail.com>
Subject Re: Consistency when adding data to collections concurrently?
Date Sat, 12 Nov 2016 11:15:18 GMT
Could you not send both labels in one request? Race conditions should still be handled as Vladimir
suggests. But in this specific case the client could send both as 1 request thus simplifying
the solution. 

/Oskar

> On 12 nov. 2016, at 12:05, Vladimir Yudovin <vladyu@winguzone.com> wrote:
> 
> Hi Ali,
> 
> >What can I do so I end up with [1, 2] instead of either [1] or [2] after both requests
have been processed?
> Use UPDATE, not INSERT. Thus new labels will be added to list, without overwriting old
ones. Also consider usage of SET instead of LIST to avoid duplicates.  
> 
> Best regards, Vladimir Yudovin, 
> Winguzone - Hosted Cloud Cassandra
> Launch your cluster in minutes.
> 
> 
> ---- On Sat, 12 Nov 2016 05:34:24 -0500Ali Akhtar <ali.rac200@gmail.com> wrote
----
> 
> I have a table where each record contains a list<string> of labels.
> 
> I have an endpoint which responds to new labels being added to a record by the user.
> 
> Consider the following scenario:
> 
> - Record X, labels = []
> - User selects 2 labels, clicks a button, and 2 http requests are generated.
> - The server receives request for Label 1 and Label 2 at the same time.
> - Both requests see the labels as empty, add 1 label to the collection, and send it.
> - Record state as label 1 request sees it: [1], as label 2 sees it: [2]
> 
> How will the above conflict be resolved? What can I do so I end up with [1, 2] instead
of either [1] or [2] after both requests have been processed?
> 

Mime
View raw message