I'm struggling to understand some problems with respect to materialized

First, I want to understand the example mentioned in
https://issues.apache.org/jira/browse/CASSANDRA-9928 explaining how
multiple non-PK columns in the view PK can lead to unrepairable/orphanized
entries. I understand that only happens if a node dies that pushed an
"intermediate" state (the result of only one of several updates affecting
the same entry) to it's view replica. The case mentioned looks like the
following: initially all nodes have (p=1, a=1, b=1). Then two concurrent
updates are send: a=2 and b=2. One node gets b=2, deletes view (a=1, b=1,
p=1) and inserts (a=1, b=2, p=1), then dies. The others get a=1, when is
why they delete (a=1, b=1, p=1) and insert (a=2, b=1, p=1). Then (a=1, b=2,
p=1) will never be deleted.

What I don't understand is, why that can never happen with a single column.
Consider (p=1, a=1) with two updates a=2 and a=3. One node receives a=2,
deletes view entry (a=1, p=1) and inserts (a=2, p=1), then dies. The others
get a=3, delete (a=1, p=1) and insert (a=3, p=1). Now, how is (a=2, p=1)
removed from the view replica that was connected to the dying node? I don't
get what's different here.

I would really appreciate if someone could share some insight here!


Reply via email to