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 <vla...@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.rac...@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?
> 

Reply via email to