[
https://issues.apache.org/jira/browse/IGNITE-28633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viacheslav Blinov updated IGNITE-28633:
---------------------------------------
Description:
Ticket 1 decoupled sub-component lifecycles from TableManager's busyLock. The
remaining barrier to fully completing GG-47856 ("move sub-object construction
out of
TableManager into IgniteImpl") is shared state: TableRegistry and the 3
IncrementalVersionedValues are mutated by multiple sub-components
(TableLifecycleHandler,
TableZoneCoordinator, TableDestructionCoordinator) but happen to live inside
TableManager because TableManager came first historically. They are not really
TableManager's private state — they are the table-management module's shared
state.
TableManager itself implements IgniteTablesInternal (16-method public API).
That facade responsibility is unrelated to TableManager's "manager of
sub-components"
responsibility.
Goal
Extract the public-API facade and shared state into a slim IgniteTablesImpl.
Move recovery to TableLifecycleHandler. Convert PartitionReplicatorNodeRecovery
to a
proper IgniteComponent. Hoist all sub-component construction to IgniteImpl.
> Decompose TableManager into IgniteTablesImpl + independent sub-components
> -------------------------------------------------------------------------
>
> Key: IGNITE-28633
> URL: https://issues.apache.org/jira/browse/IGNITE-28633
> Project: Ignite
> Issue Type: Improvement
> Reporter: Viacheslav Blinov
> Assignee: Viacheslav Blinov
> Priority: Major
> Labels: ignite-3
>
> Ticket 1 decoupled sub-component lifecycles from TableManager's busyLock. The
> remaining barrier to fully completing GG-47856 ("move sub-object construction
> out of
> TableManager into IgniteImpl") is shared state: TableRegistry and the 3
> IncrementalVersionedValues are mutated by multiple sub-components
> (TableLifecycleHandler,
> TableZoneCoordinator, TableDestructionCoordinator) but happen to live
> inside TableManager because TableManager came first historically. They are
> not really
> TableManager's private state — they are the table-management module's
> shared state.
> TableManager itself implements IgniteTablesInternal (16-method public API).
> That facade responsibility is unrelated to TableManager's "manager of
> sub-components"
> responsibility.
> Goal
> Extract the public-API facade and shared state into a slim
> IgniteTablesImpl. Move recovery to TableLifecycleHandler. Convert
> PartitionReplicatorNodeRecovery to a
> proper IgniteComponent. Hoist all sub-component construction to IgniteImpl.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)