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)

Reply via email to