[ 
https://issues.apache.org/jira/browse/IGNITE-28633?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viacheslav Blinov updated IGNITE-28633:
---------------------------------------
    Description: 
In tickets https://issues.apache.org/jira/browse/IGNITE-28632 and 
https://issues.apache.org/jira/browse/IGNITE-28401 TableManager is reduced to a 
thin shell with no original responsibilities — its public API is in 
IgniteTablesImpl, its sub-components are independent IgniteComponents owned by 
IgniteImpl, and recovery is in TableLifecycleHandler. Around 15 production 
files and ~10 test/integration-test files still take TableManager as a 
parameter or field type out of historical convenience; they really need only 
IgniteTablesInternal (or, in a few cases, a specific sub-component like 
SecondaryReplicationManager or TableZoneCoordinator)

Goal

Replace TableManager parameter types across the codebase with the appropriate 
narrow types, then delete TableManager.java.

  was:
Ticket https://issues.apache.org/jira/browse/IGNITE-28632 decouples 
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.


> Delete TableManager and migrate external consumers to IgniteTablesInternal
> --------------------------------------------------------------------------
>
>                 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
>
> In tickets https://issues.apache.org/jira/browse/IGNITE-28632 and 
> https://issues.apache.org/jira/browse/IGNITE-28401 TableManager is reduced to 
> a thin shell with no original responsibilities — its public API is in 
> IgniteTablesImpl, its sub-components are independent IgniteComponents owned 
> by IgniteImpl, and recovery is in TableLifecycleHandler. Around 15 production 
> files and ~10 test/integration-test files still take TableManager as a 
> parameter or field type out of historical convenience; they really need only 
> IgniteTablesInternal (or, in a few cases, a specific sub-component like 
> SecondaryReplicationManager or TableZoneCoordinator)
> Goal
> Replace TableManager parameter types across the codebase with the appropriate 
> narrow types, then delete TableManager.java.



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

Reply via email to