Automated Service Assignment in Multi-Server Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing multi-server systems require manual configuration of service mapping, which is inefficient and does not optimize system performance, as they lack an automated method to assign services based on similarity and processing power requirements.
Innovation Solution
An automated method that groups services with similar access behaviors and assigns them to servers based on processing power, using affinity calculations and load balancing techniques to maximize system performance by co-locating similar services and distributing dissimilar services across different servers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If manual configuration of service mapping is used, then ease of operation is maintained, but productivity is reduced
Solution Approach 1:
The system automatically performs service-to-server assignment by computing affinity metrics and making placement decisions without administrator intervention. The affinity computation engine continuously monitors service access patterns and autonomously reassigns services to optimize performance, eliminating manual configuration requirements while improving productivity.
Solution Approach 2:
The system dynamically changes the assignment parameters (service-to-server mappings) based on computed affinity metrics. By continuously monitoring and adjusting these parameters in response to changing workload patterns, the system achieves optimal performance automatically without requiring manual reconfiguration.
2Reliability
If services are randomly assigned to servers, then device complexity is reduced, but system performance deteriorates
Solution Approach 1:
The system implements continuous feedback loops where the affinity computation engine monitors service access patterns, computes affinity metrics, and uses this feedback to make informed assignment decisions. This feedback mechanism ensures services are placed on servers that will maximize performance based on actual observed behavior patterns.
Solution Approach 2:
The system performs preliminary affinity computation and service grouping before actual service deployment or reassignment. By pre-computing affinity metrics and determining optimal groupings in advance, the system ensures services are assigned to appropriate servers before they become active, preventing performance degradation.
3Loss of energy
If services with different access behaviors are co-located, then processing power usage is optimized, but data cache hit rates decrease
Solution Approach 1:
The system applies local quality by grouping services with similar access behaviors together on the same server, creating localized service clusters with homogeneous data access patterns. This ensures each server's data cache is optimized for the specific access characteristics of its assigned services, maximizing cache hit rates while maintaining efficient processing power usage.
4Productivity
If automated service assignment is implemented, then productivity is improved, but device complexity increases
Solution Approach 1:
The affinity computation engine serves multiple functions: it computes affinity metrics, groups services into clusters, determines optimal server assignments, and monitors performance. By consolidating these multiple functions into a single multi-functional component, the system achieves high productivity without proportionally increasing overall system complexity.
Data Source
AI summary
Groups of services are created based on one or both of the following: (a) what is accessed by each service, and (b) a likelihood of conflicts between accesses (e.g., a database object read operation or a database object write operation) performed by each service and accesses performed by each other service. Groups of services, which may be the groups created or subsets of those groups, are assigned to run on particular servers based on the processing power requirements of each group and the processing power available to each server. In the grouping process, accesses can be biased by giving more weight to object write operations than to object read operations, and to access operations on an index or dictionary than to access operations on a table.


