[
https://issues.apache.org/jira/browse/IGNITE-22367?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Kirill Tkalenko reassigned IGNITE-22367:
----------------------------------------
Assignee: Kirill Tkalenko
> Create index metadata storage
> -----------------------------
>
> Key: IGNITE-22367
> URL: https://issues.apache.org/jira/browse/IGNITE-22367
> Project: Ignite
> Issue Type: Improvement
> Reporter: Roman Puchkovskiy
> Assignee: Kirill Tkalenko
> Priority: Major
> Labels: ignite-3
> Fix For: 3.0.0-beta2
>
>
> Currently, all index metadata is stored in the Catalog. This is problematic,
> because
> # Some fields (like txWaitCatalogVersion) or states (like STOPPING) do not
> belong to the Catalog
> # The Catalog may be compacted making it impossible to get metadata from it
> We need to create a component (based on Vault) to store metadata for each
> index. An index entry can include (the list is rough):
> # Index ID
> # Name? (not sure if we need it; maybe for building messages for humans)
> # txWaitCatalogVersion
> # History of how the index changed its state (with activation timestamp of
> each transition)
> # Current state
> The states set is broader than the set stored in the Catalog:
> * REGISTERED
> * BUILDING
> * AVAILABLE
> * STOPPED
> * READ_ONLY (this means that the index was dropped (maybe together with its
> table), it cannot be written to, it can not be used by any RW transactions,
> but can be read by RO transactions with correct readTimestamp)
> * DESTROYED? (it's not clear if it's needed or not)
> The storage should provide efficient access to index metadata by index ID.
> It should listen to Catalog updates and actualize itself if some changes
> happen to indexes.
> If should also listen to LWM to switch from READ_ONLY state.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)