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