
This change breaks down the monolithic 'dcmanager' process into a separate state-handling multi-process architecture. Subcloud state management is handled by the new state processes. This is a performance optimization, increasing the throughput of subcloud state change operations during dcmanager audits. It also optimizes performance handling of state updates from dcorch. Refactoring. These top-level methods are moved from dcmanager SubcloudManager to SubcloudStateManager (along with associated RPC/service APIs above): - update_subcloud_endpoint_status - update_subcloud_availability - plus internal methods, including the subcloud-level synchronization block New service: DCManagerStateService() - distributedcloud/dcmanager/state/service.py - overriding max_pool_size, max_overflow values from /etc/dcmanager/dcmanager.conf New state manager: SubcloudStateManager() - distributedcloud/dcmanager/state/subcloud_state_manager.py New RPC client: SubcloudStateClient() - Added to existing distributedcloud/dcmanager/rpc/client.py New RPC topic: - TOPIC_DC_MANAGER_STATE = "dcmanager-state" SM service changes: - distributedcloud/dcmanager/cmd/state.py - distributedcloud/ocf/dcmanager-state Other notable changes (from testing): - Cleanup: unused ThreadGroupManager removed from dcmananager service.py - generic_sync_manager: Add eventlet yield during subcloud processing during initialization - dcorch: fix exceptions on shutdown due to race on threadgroup shutdown - dcorch: log service startup with worker config Test cases: - update test cases where necessary to used the newly refactored code - since there is no new logic, no additional tests are required Test Plan: PASS: - Test various audit scenarios in small virtualized environment - Test audit scenarios in lab setting with a large number of subclouds - subclouds going offline/online (including flooding) - dead office recovery - swact - system soak - Validate dcmanager-state service lifecycle and dependencies Story: 2009725 Task: 44317 Change-Id: I2c9a0f84e8cf638632ca319545e9e93e6f43f263 Signed-off-by: Kyle MacLeod <kyle.macleod@windriver.com>
343 B
Executable File
343 B
Executable File
Service
- DC Manager State Service has responsibility for:
-
Subcloud state updates coming from dcmanager-manager service
- service.py:
-
run DC Manager State Service in multi-worker mode, and establish RPC server
- subcloud_state_manager.py:
-
Provide subcloud state updates