Viacheslav Blinov created IGNITE-28401:
------------------------------------------
Summary: 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
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.)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)