Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
None
-
Correctness
-
Critical
-
Normal
-
Code Inspection
-
All
-
None
-
Description
Concurrent writes at the same time that migration starts make it unsafe to read from Accord because txn recovery will not be deterministic in the presences of writes not done through Accord.
Migration to Accord needs to be split into two phases, in the first phase we write through Accord and always respect the consistency level and do synchronous commit. This allows Paxos and non-serial writes to continue while Accord's metadata covers everything needed for future reads. Paxos continues to operate as normal since it has enough metadata to allow key migration in the second phase and we need to stay online so something needs to handle LWTs.
Then repair runs and makes it possible for Accord to read any data written non-transactionally and we can then do key migration and route all updates (conditional or blind) through Accord while Paxos repair runs so we can stop doing key migration.
Attachments
Attachments
Issue Links
- is related to
-
CASSANDRA-19440 Non-serial writes can race with Accord topology changes
- Resolved
-
CASSANDRA-19439 Non-serial reads need to handle racing with Accord topology changes
- Triage Needed
-
CASSANDRA-19441 Blocking read repair needs to handle racing with Accord topology changes
- Triage Needed
- relates to
-
CASSANDRA-19430 Read repair through Accord needs to only route the read repair through Accord if the range is actually migrated/running on Accord
- Resolved
-
CASSANDRA-19431 Mutations need to split Accord/non-Accord mutations based on whether migration is completed
- Triage Needed
- links to