Tenant Change Segmentation in Multi-Tenant Service Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multi-tenant systems face performance degradation when handling large tenant changes, affecting other tenants due to high processing and memory overhead, especially during migrations from on-premise to cloud-based implementations.
Innovation Solution
The system segments tenant changes and assigns individual update streams processed by dedicated tenant stream processors, ensuring each tenant's changes are handled independently without impacting other tenants, using a notification stream generator to manage and scale these processes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If tenant changes are processed in a serialized manner, then processing completeness is ensured, but processing time increases significantly
Solution Approach 1:
The patent segments tenant changes into individual change records and processes them as separate entities in a stream. Each change record is independently processed by tenant stream processors, allowing parallel processing while maintaining individual change integrity. This segmentation enables the system to avoid serialized processing of entire tenant changes while ensuring each individual change is processed reliably.
2Productivity
If a large number of changes are made for one tenant, then that tenant's provisioning is completed, but performance of other tenants degrades
Solution Approach 1:
The system segments changes by tenant, creating separate update streams for each tenant. Tenant stream processors are assigned to process changes for specific tenants, isolating the processing workload. This segmentation ensures that a large number of changes for one tenant do not impact the performance of other tenants, as each tenant's changes are processed in an isolated stream.
Solution Approach 2:
The patent implements dynamic tenant stream processor assignment where processors can be assigned to different tenants based on current workload conditions. The system can dynamically adjust which processor handles which tenant's stream, balancing the load across available processors. This dynamic assignment prevents any single tenant from monopolizing processor resources and degrading overall system performance.
3Power
If processing resources are allocated to handle large tenant changes, then processing capability is improved, but memory overhead and bandwidth consumption increase
Solution Approach 1:
The system segments the processing of tenant changes into individual change records processed in streams. This segmentation allows the system to process changes incrementally rather than loading all changes into memory at once. Each tenant stream processor handles one change record at a time from its assigned stream, significantly reducing memory overhead compared to batch processing while maintaining processing capability.
Solution Approach 2:
The notification stream generator pre-processes and segments tenant changes into individual change records before they reach the tenant stream processors. This preliminary action organizes the data stream in advance, allowing processors to consume changes efficiently without requiring large buffers or pre-loading entire change sets into memory, thus reducing both memory overhead and bandwidth consumption.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Tenant changes are received at a multi-tenant service. The tenant changes are segmented, by tenant, and individual update streams are established with individual tenant stream processors. Each tenant stream processor makes changes for a given tenant, until the changes for that tenant are completed.