[
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)