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

Roman Puchkovskiy updated IGNITE-27348:
---------------------------------------
    Description: 
RW transactions started before an index has been created do not see the index, 
so their operations do not write to the index. This means that we must make 
sure that either all such transactions are finished before the index build is 
started, or they must not be committed.

We have a mechanism for waiting for RW transactions started before the index 
creation to finish. We do this wait before we start to build the index. It 
guarantees that no write is missed when the logical topology (LT) is stable, 
but there is an edge case: if a coordinator of a transaction leaves the LT 
before the transaction is finished, its operations can still sneak in.

To protect from this edge case, we have another mechanism that counts in-flight 
operations of RW transactions.

We need a test making sure that the latter mechanism actually protects us from 
having an incomplete index if some tx coordinator leaves the LT.

  was:
RW transactions started before an index has been created do not see the index, 
so their operations do not write to the index. This means that we must make 
sure that either all such transactions are finished before the index build is 
started, or they must not be committed.

We have a mechanism for waiting for RW transactions started before the index 
creation to finish.


> Add a test for protection against incomplete index build
> --------------------------------------------------------
>
>                 Key: IGNITE-27348
>                 URL: https://issues.apache.org/jira/browse/IGNITE-27348
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Assignee: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> RW transactions started before an index has been created do not see the 
> index, so their operations do not write to the index. This means that we must 
> make sure that either all such transactions are finished before the index 
> build is started, or they must not be committed.
> We have a mechanism for waiting for RW transactions started before the index 
> creation to finish. We do this wait before we start to build the index. It 
> guarantees that no write is missed when the logical topology (LT) is stable, 
> but there is an edge case: if a coordinator of a transaction leaves the LT 
> before the transaction is finished, its operations can still sneak in.
> To protect from this edge case, we have another mechanism that counts 
> in-flight operations of RW transactions.
> We need a test making sure that the latter mechanism actually protects us 
> from having an incomplete index if some tx coordinator leaves the LT.



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

Reply via email to