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