>> Can you clarify what it means to rename root index trees ?
Replacing 
org.apache.ignite.internal.processors.cache.persistence.IndexStorageImpl.IndexItem,
 changing IndexItem#idxName, but keeping fIndexItem#pageId.

Suggested solution is not suitable for the situation: add index -> drop index 
-> add an index. We can start deleting the last added index.

06.07.2021, 14:00, "Alexei Scherbakov" <alexey.scherbak...@gmail.com>:
> Can you clarify what it means to rename root index trees ?
>
> The simple solution which immediately comes to me is
>
> 1) write logical record on index creation - on reading it create an index
> during logical recovery
> 2) write logical record on index deletion - on reading it delete an index
> during logical recovery and start background clearing task with real root
> pages.
>
> Will it work for you ?
>
> вт, 6 июл. 2021 г. в 12:27, ткаленко кирилл <tkalkir...@yandex.ru>:
>
>>  Hello everyone!
>>
>>  Currently, dropping indexes consists of the following steps (based on
>>  SchemaAbstractDiscoveryMessage's):
>>
>>  Step 1: Removing the index from the SQL engine and starting
>>  DurableBackgroundCleanupIndexTreeTask, which removes the index trees in the
>>  background;
>>      Step 1.1: DurableBackgroundCleanupIndexTreeTask is added to the
>>  metaStorage and removed after successful completion at the next checkpoint.
>>
>>  Step 2: Removing the index from the cache configuration and persist it.
>>
>>  Problems:
>>
>>  1)We add and immediately delete the index, a checkpoint does not happen
>>  and the node crashes, after restarting
>>  DurableBackgroundCleanupIndexTreeTask will not be able to complete and will
>>  periodically restart due to the fact that it saves
>>  DurableBackgroundCleanupIndexTreeTask#rootPages (root pages of index trees)
>>  that have not appeared;
>>
>>  2)After adding a DurableBackgroundCleanupIndexTreeTask node crashes, after
>>  restarting the node, the task will clean the index trees and there will be
>>  errors when using the index;
>>
>>  3)etc.
>>
>>  Suggested solution:
>>
>>  Rename the root index trees and write about this with a logical entry in
>>  the WAL and do this at the first start of
>>  DurableBackgroundCleanupIndexTreeTask.
>>  Thus, if we find the renamed root pages in task 1, we can clear the index
>>  trees to the end, otherwise the task can be completed.
>>  Also, if we find that rename pages are present, and the step 2 has not
>>  been completed, then we can start rebuilding the indexes.
>>
>>  WDYT?
>
> --
>
> Best regards,
> Alexei Scherbakov

Reply via email to