[
https://issues.apache.org/jira/browse/IGNITE-28401?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Viacheslav Blinov updated IGNITE-28401:
---------------------------------------
Description: (was: TableLifecycleHandler: A single new class that owns
the full catalog/LWM event lifecycle — registration, handling, and cleanup.
What moves out of TableManager
Fields:
- destructionEventsQueue (LongPriorityQueue)
- All 4 event listener fields (onTableCreateListener, onTableDropListener,
onTableAlterListener, onLowWatermarkChangedListener)
- DestroyTableEvent inner class
Methods:
- onTableDrop() — queues destruction event
- onLwmChanged() — drains queue, triggers destruction
- destroyTableLocally() — drops local table structures
- onTableAlter() / onTableRename() / onTablePropertiesChanged() — table alter
handling
- cleanUpResourcesForDroppedTablesOnRecoveryBusy() — recovery cleanup
- destroyMvStoragesForTablesNotIn() — orphan storage cleanup
- unregisterMetricsSource() — metric source cleanup
- Event registration from startAsync()
- Event unregistration from beforeNodeStop()
What stays in TableManager
- IgniteTablesInternal implementation (table access API) — interface-mandated
- Component lifecycle (startAsync, beforeNodeStop, stopAsync) — but simplified
- loadTableToZoneOnTableCreate() — table creation orchestration (versioned
values + zone coordination)
- prepareTableResourcesOnRecovery() — table recovery preparation
- recoverTables() — recovery orchestration
- createTableImpl() — factory delegation
- Versioned values (tablesVv, localPartitionsVv, assignmentsUpdatedVv)
- Table access utilities (sync, orStopManagerFuture, etc.))
> TableManager constructor simplification
> ---------------------------------------
>
> Key: IGNITE-28401
> URL: https://issues.apache.org/jira/browse/IGNITE-28401
> Project: Ignite
> Issue Type: Improvement
> Reporter: Viacheslav Blinov
> Assignee: Viacheslav Blinov
> Priority: Major
> Labels: ignite-3
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)