You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Paolo Ragone <pr...@gmail.com> on 2011/04/01 18:36:34 UTC

Question on conflict handling

Hi all,
I've seen that lately there's been a lot of talks on conflicts, split
brain problems, and related.

My question is a lot simpler: does Conflict only happens at column
level? Or is it at row level?
I ask this because all the examples I've seen imply two clients
writing to the same key-column and then something going wrong.
But say two clients (C1, C2) write on the same key but different
columns ( (k1,c1) and (k1,c2) ) and then something wrong happens (e.g.
C2 wrote to a node that persisted the change locally even tho it
failed the write because it had lost connectivity to the other nodes).

My question then is:
When the node that contains the data for (k1,c2) joins the cluster
again ", what happens?
Will one of the writes be overridden by another because the "conflict"
is at row level, or would they be merged and there's no conflict
ending up in k1 having both c1 and c2?

If the columns are merged, then for a use case where you only add
columns (like logging actions on the row) I would be safe, if not I
need to find a way to manage it on the application side.

Thanks
Paolo

Re: Question on conflict handling

Posted by Peter Schuller <pe...@infidyne.com>.
>> My question is a lot simpler: does Conflict only happens at column
>> level? Or is it at row level?
>
> Individual column level only.

Well, with the special exception of whole-row deletes.

-- 
/ Peter Schuller

Re: Question on conflict handling

Posted by Peter Schuller <pe...@infidyne.com>.
> My question is a lot simpler: does Conflict only happens at column
> level? Or is it at row level?

Individual column level only.

-- 
/ Peter Schuller