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

Roman Puchkovskiy updated IGNITE-21017:
---------------------------------------
    Description: 
 

When creating a secondary index, it's possible to miss some rows while building 
an index concurrently with a write load; as a result we'll get an incomplete 
index.

This can happen due to a race between update operations of RW transactions and 
index build start.

The transaction has not yet seen the new index and therefore will not make 
updates to it. And the index builder simply skipped them. Thus, we will not 
have a consistent index.

To avoid this, we need to start building a secondary index of a specific 
partition only when all update operations of RW transactions have completed 
their operations strictly after the activation time of the index creation event.

In this task, we will add tracking of update operations for RW transactions for 
partition.

  was:
When creating a secondary index, there may be a situation where we do not build 
an index for all records in the table.

This can happen when update operations of the RW transaction are performed at 
the moment the index buildings begins.

The transaction has not yet seen the new index and therefore will not make 
updates to it. And the index builder simply skipped them. Thus, we will not 
have a consistent index.

To avoid this, we need to start building a secondary index of a specific 
partition only when all update operations of RW transactions have completed 
their operations strictly after the activation time of the index creation event.

In this task, we will add tracking of update operations for RW transactions for 
partition.


> Tracking RW transaction update operations
> -----------------------------------------
>
>                 Key: IGNITE-21017
>                 URL: https://issues.apache.org/jira/browse/IGNITE-21017
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Assignee: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
>  
> When creating a secondary index, it's possible to miss some rows while 
> building an index concurrently with a write load; as a result we'll get an 
> incomplete index.
> This can happen due to a race between update operations of RW transactions 
> and index build start.
> The transaction has not yet seen the new index and therefore will not make 
> updates to it. And the index builder simply skipped them. Thus, we will not 
> have a consistent index.
> To avoid this, we need to start building a secondary index of a specific 
> partition only when all update operations of RW transactions have completed 
> their operations strictly after the activation time of the index creation 
> event.
> In this task, we will add tracking of update operations for RW transactions 
> for partition.



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

Reply via email to