Serverless Instance Pool Management via Historical Event Patterns
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed computing, event processing is challenging due to the inefficiencies in managing virtual machine instances, leading to increased latency and resource usage, particularly in serverless systems where instances may not have the necessary functions or be optimally allocated based on event frequency patterns.
Innovation Solution
A method for handling events in a distributed computing environment involves mapping events to instances within a pool, creating new instances when necessary, and terminating underutilized ones based on historical event data to optimize resource allocation and reduce latency, using a combination of event and instance managers to dynamically manage instance capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If instances are created dynamically to handle events, then system adaptability is improved, but latency increases due to instance creation time
Solution Approach 1:
The system performs preliminary actions by analyzing historical event data to predict future event frequencies and pre-creating instance pools before events arrive. This allows instances to be ready in advance, eliminating the latency associated with dynamic instance creation while maintaining system adaptability to varying event loads.
Solution Approach 2:
The system dynamically adjusts the size and composition of instance pools based on predicted event frequencies. Instance pools are created, modified, or terminated dynamically in response to changing event patterns, allowing the system to adapt to varying loads while optimizing resource utilization and minimizing latency.
2Productivity
If more instances are maintained in the pool, then event processing speed is improved, but resource usage increases
Solution Approach 1:
The system changes the parameter of instance pool size dynamically based on historical event frequency analysis. Instead of maintaining a fixed large pool of instances, the system adjusts pool sizes according to predicted event frequencies, ensuring sufficient instances are available for high-frequency events while reducing instances for low-frequency events, thus optimizing both processing speed and resource usage.
Solution Approach 2:
The system implements dynamic instance pool management where the number and composition of instances change over time based on observed and predicted event patterns. This allows the system to maintain high productivity during peak loads while conserving resources during low-activity periods, resolving the contradiction between processing speed and resource consumption.
3Productivity
If historical data analysis is performed to optimize instance allocation, then resource allocation efficiency is improved, but system complexity increases
Solution Approach 1:
The system performs self-service by automatically analyzing its own historical event data and using these insights to optimize instance pool allocation. The event processing system itself generates the data needed for optimization and automatically adjusts its resource allocation based on this analysis, eliminating the need for external complex management systems while improving resource allocation efficiency.
Solution Approach 2:
The system implements feedback loops where historical event data is continuously analyzed, and the results feed back into instance pool management decisions. This feedback mechanism allows the system to automatically adjust instance allocation based on observed patterns, improving resource efficiency while keeping the control logic integrated within the existing event processing architecture, thus limiting the increase in system complexity.
Data Source
AI summary
The disclosure relates to technology handling events in a distributed computing environment. Events comprising a function executable by an instance are received from an event queue. The received events are mapped to an instance in a pool that executes a corresponding function. When it is determined that the instances in the pool are at least one of unavailable and do not include the function corresponding to the event, a new instance is created in the pool, where the new instance includes the function corresponding to the event. Instances in the pool may be terminated when frequency of occurrence patterns of the event with a corresponding function indicate the event is occurring less frequently such that fewer instances are required to execute the corresponding function. Otherwise, the events are dispatched to the appropriate instance in the pool for execution.


