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

Roman Puchkovskiy updated IGNITE-21111:
---------------------------------------
    Description: 
The mechanism must enable the following:
 # Waiting for completion of all in-flight operations of RW transactions which 
(transactions) were started on schema versions before the index appearance
 # Fail all such operations after the index has switched to the BACKFILLING 
state

This can be achieved using an in-memory data structure with counters of active 
in-flight operations per Catalog Version and the 
MinAllowableCatalogVersionToStartOperation.

The following would be executed atomically wrt to each other:
 # Raising MinAllowableCatalogVersionToStartOperation when an index in the 
BACKFILLING state appears
 # Conditionally adding a new operation (with its operationTs and the 
corresponding Catalog version) to the structure (actually, increementing the 
corresponding counter) [the increment only happens if the operation Catalog 
version is still allowable wrt MinAllowableCatalogVersionToStartOperation; 
otherwise, failure is indicated by returning false)
 # Notifying a listener that no operations remain on Catalog versions lower 
than target version.

  was:
The mechanism must enable the following:
 # Forbid to new operations to start on schema versions before the index 
appearance
 # Waiting for completion of all in-flight operations that started on schema 
versions before the index appearance
 # Fail all operations that attempt to start on schema versions with the index, 
but which transactions started before the index appearance

This can be achieved using an in-memory data structure with counters of active 
in-flight operations per Catalog Version and the 
MinAllowableCatalogVersionToStartOperation.

The following would be executed atomically wrt to each other:
 # Raising MinAllowableCatalogVersionToStartOperation when an index in the 
BACKFILLING state appears
 # Conditionally adding a new operation (with its operationTs and the 
corresponding Catalog version) to the structure (actually, increementing the 
corresponding counter) [the increment only happens if the operation Catalog 
version is still allowable wrt MinAllowableCatalogVersionToStartOperation; 
otherwise, failure is indicated by returning false)
 # Notifying a listener that no operations remain on Catalog versions lower 
than target version.


> Mechanism to wait for completion of in-flight operations of RW transactions 
> started before index appearance
> -----------------------------------------------------------------------------------------------------------
>
>                 Key: IGNITE-21111
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21111
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Roman Puchkovskiy
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> The mechanism must enable the following:
>  # Waiting for completion of all in-flight operations of RW transactions 
> which (transactions) were started on schema versions before the index 
> appearance
>  # Fail all such operations after the index has switched to the BACKFILLING 
> state
> This can be achieved using an in-memory data structure with counters of 
> active in-flight operations per Catalog Version and the 
> MinAllowableCatalogVersionToStartOperation.
> The following would be executed atomically wrt to each other:
>  # Raising MinAllowableCatalogVersionToStartOperation when an index in the 
> BACKFILLING state appears
>  # Conditionally adding a new operation (with its operationTs and the 
> corresponding Catalog version) to the structure (actually, increementing the 
> corresponding counter) [the increment only happens if the operation Catalog 
> version is still allowable wrt MinAllowableCatalogVersionToStartOperation; 
> otherwise, failure is indicated by returning false)
>  # Notifying a listener that no operations remain on Catalog versions lower 
> than target version.



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

Reply via email to