[ 
https://issues.apache.org/jira/browse/CASSANDRA-21646?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Blake Eggleston updated CASSANDRA-21646:
----------------------------------------
    Test and Documentation Plan: ci
                         Status: Patch Available  (was: Open)

[https://github.com/apache/cassandra/pull/5105]

The change makes the two log domains explicit:
 * Memtables carry the log domain they accept. When a table takes both, the 
memtable splits into one per domain, each with its own bound, and flush writes 
one sstable per domain. Full reconciled data is flushed directly into the 
repaired set.
 * Replay routes a mutation by the log it was read from, rather than by the 
keyspace's current configuration.
 * Compaction keeps tracked sstables that carry coordinator log offsets away 
from those that do not. Merging them produces offsets that no longer describe 
the data, which permanently blocks reconciliation.
 * Offset clearing happens at one point, when an sstable is promoted, instead 
of piecemeal during compaction.
 * Verify no longer marks a corrupt sstable unrepaired on a tracked table, 
which would have created data that can never reconcile.

> CEP-45: Commit log and mutation journal positions conflict with each other
> --------------------------------------------------------------------------
>
>                 Key: CASSANDRA-21646
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-21646
>             Project: Apache Cassandra
>          Issue Type: Bug
>          Components: Consistency/Coordination
>            Reporter: Blake Eggleston
>            Assignee: Blake Eggleston
>            Priority: Normal
>             Fix For: NA
>
>
> Writes to a table go to either the commit log or the mutation journal, 
> depending on their replication type and migration status. Both record their 
> position in the same CommitLogPosition type, but positions from the two logs 
> are not comparable. Memtables and sstables use these positions to decide what 
> has been persisted and what needs replay. Anything holding writes from both 
> logs therefore records a bound that does not describe its contents.
> This is reachable in normal operation. Migrating a keyspace between untracked 
> and tracked replication routes writes to both logs at once, and a commit log 
> can be replayed after that migration has already finished.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to