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

Kirill Tkalenko updated IGNITE-20637:
-------------------------------------
    Description: 
We need to take care of recovery for the distributed index construction 
mechanism:
* For indexes that are *not* available for read-write:
# Make sure that the corresponding keys are present in the metastore: 
*startBuildIndex.<indexId>* and 
*partitionBuildIndex.<indexId>.<partitionId_0>*...*partitionBuildIndex.<indexId>.<partitionId_N>*.
*Notest:*
This is easy to implement, since there is an auxiliary key 
*startBuildIndex.<indexId>*, which, in its absence, will allow you to 
accurately understand that there are no keys for this index in metasore.
# For the build distributed index of a specific partition, delete key 
*partitionBuildIndex.<indexId>.<partitionId>* in the metastore.
*Notest:*
This point is probably the most difficult and requires thought before 
implementation, since it will most likely require raising a replication group 
and rolling up a replication log.
# If there are no keys 
*partitionBuildIndex.<indexId>.<partitionId_0>*...*partitionBuildIndex.<indexId>.<partitionId_N>*
 in the metastore, execute 
*org.apache.ignite.internal.catalog.commands.MakeIndexAvailableCommand*.
* For indexes that are available for read-write:
# Delete key *startBuildIndex.<indexId>* in the metastore if it remains.

  was:
We need to take care of recovery for the distributed index construction 
mechanism:
* For indexes that are not available for read-write:
# Make sure that the corresponding keys are present in the metastore: 
*startBuildIndex.<indexId>* and 
*partitionBuildIndex.<indexId>.<partitionId_0>*...*partitionBuildIndex.<indexId>.<partitionId_N>*.
*Notest:*
This is easy to implement, since there is an auxiliary key 
*startBuildIndex.<indexId>*, which, in its absence, will allow you to 
accurately understand that there are no keys for this index in metasore.
# For the build distributed index of a specific partition, delete key 
*partitionBuildIndex.<indexId>.<partitionId>*.
*Notest:*
This point is probably the most difficult and requires thought before 
implementation, since it will most likely require raising a replication group 
and rolling up a replication log.


> Implement recovery of distributed index building
> ------------------------------------------------
>
>                 Key: IGNITE-20637
>                 URL: https://issues.apache.org/jira/browse/IGNITE-20637
>             Project: Ignite
>          Issue Type: Improvement
>            Reporter: Kirill Tkalenko
>            Priority: Major
>              Labels: ignite-3
>             Fix For: 3.0.0-beta2
>
>
> We need to take care of recovery for the distributed index construction 
> mechanism:
> * For indexes that are *not* available for read-write:
> # Make sure that the corresponding keys are present in the metastore: 
> *startBuildIndex.<indexId>* and 
> *partitionBuildIndex.<indexId>.<partitionId_0>*...*partitionBuildIndex.<indexId>.<partitionId_N>*.
> *Notest:*
> This is easy to implement, since there is an auxiliary key 
> *startBuildIndex.<indexId>*, which, in its absence, will allow you to 
> accurately understand that there are no keys for this index in metasore.
> # For the build distributed index of a specific partition, delete key 
> *partitionBuildIndex.<indexId>.<partitionId>* in the metastore.
> *Notest:*
> This point is probably the most difficult and requires thought before 
> implementation, since it will most likely require raising a replication group 
> and rolling up a replication log.
> # If there are no keys 
> *partitionBuildIndex.<indexId>.<partitionId_0>*...*partitionBuildIndex.<indexId>.<partitionId_N>*
>  in the metastore, execute 
> *org.apache.ignite.internal.catalog.commands.MakeIndexAvailableCommand*.
> * For indexes that are available for read-write:
> # Delete key *startBuildIndex.<indexId>* in the metastore if it remains.



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

Reply via email to