You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Roman Puchkovskiy (Jira)" <ji...@apache.org> on 2022/11/21 06:28:00 UTC

[jira] [Created] (IGNITE-18203) Redesign table/index creation to avoid dependency cycles

Roman Puchkovskiy created IGNITE-18203:
------------------------------------------

             Summary: Redesign table/index creation to avoid dependency cycles
                 Key: IGNITE-18203
                 URL: https://issues.apache.org/jira/browse/IGNITE-18203
             Project: Ignite
          Issue Type: Improvement
            Reporter: Roman Puchkovskiy
            Assignee: Alexander Lapin
             Fix For: 3.0.0-beta2


Currently, index depends on a table, while table depends on RAFT groups start, which may need to apply commands (including inserts), and inserts depend on indices of the table. There is a dependency cycle. This is just one example of such a cycle in the current design.

One idea is to split 'Table' entity into 2: 'Table Structure' and 'Full Table'. Table structure would only comprise objects representing bare table information (no indices), something like current {{{}TableImpl{}}}/{{{}InternalTable{}}}. Then, the following dependencies could be created:
 # Table Structure depends on Configuration
 # Index depends on Configuration and Table Structure
 # Sql Schema depends on Table Structure and Index
 # Full Table depends on Table Structure, Index, Sql Schema

This requires a redesign of how {{{}TableManager{}}}, {{{}IndexManager{}}}, {{SqlSchemaManager}} interact, probably {{TableManager}} needs to be broken in 2.



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