[ https://issues.apache.org/jira/browse/IGNITE-24537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Evgeny Stanilovsky updated IGNITE-24537: ---------------------------------------- Summary: CPCC. Provide implementation for storage replication (was: CPCC. Handle tableId changes) > CPCC. Provide implementation for storage replication > ---------------------------------------------------- > > Key: IGNITE-24537 > URL: https://issues.apache.org/jira/browse/IGNITE-24537 > Project: Ignite > Issue Type: Task > Components: sql > Affects Versions: 3.0 > Reporter: Evgeny Stanilovsky > Priority: Major > Labels: ignite-3 > > This part need to be implemented after [1] > Lets call - the task for already stored rows - storage replicator. > # Wait all tx`s with beginTs < T1, improve implementation > IndexNodeFinishedRwTransactionsChecker or reuse it, need to have a commitTs > timestamp for storage replicator needs. > # Change zone state (time T2) > # Transactions store according to timestamps must meet the following > conditions: > ## tx`s with beginTs < T1 and as follows with commitTs < T2 are directed into > 'old' store\partition > ## tx`s with beginTs >= T1 are directed into both > # Storage replicator. It stars with T3 > T2. It need to copy all rows which > satisfy to predicate: commitTs < T2. Thus transactions with startTs < T1 and > as follows with commitTs < T2 are replicated (seems rows with not resolved > intents need to be filtered too) through store replicator. Rows with T1 <= > startTs < T2 will be copied twice - through store replicator and through > affinity replicator (a bit write amplification here). Rows with startTs >= T2 > will be replicated only through affinity replicator. > # If tx coordinator is failed, tx can become in-flight i.e it`s commit can be > already enlisted into execution queue on primary replica of tx commit > partition, such tx can be commited *after* T2 and it wan`t be copied through > affinity or store replicator. We should not allow to commit an RW transaction > which is started before T1, but which tries to commit after T2, seems the > same logic but for index purposes is described [2] check also [3]. > [1] https://issues.apache.org/jira/browse/IGNITE-24530 > [2] https://issues.apache.org/jira/browse/IGNITE-22990 > [3] schemacompat.SchemaCompatibilityValidator -- This message was sent by Atlassian Jira (v8.20.10#820010)