Serverless Invoker Node Selection for Load Balancing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Serverless computing platforms face challenges in handling performance peaks and maintaining operational flexibility, as they are hardware-limited and require overprovisioning to manage variable workloads, leading to inefficiencies in resource utilization and increased costs.
Innovation Solution
A distributed code execution method involving a serverless computing infrastructure with an invocation controller that selects an invoker node from a group of executing nodes and client nodes to execute application logic on-demand, allowing for load balancing across multiple serverless systems and external resources, thereby optimizing resource utilization and reducing the need for overprovisioning.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If serverless computing platforms overprovision hardware to handle variable workloads, then reliability is improved, but resource utilization deteriorates
Solution Approach 1:
The system segments the invoker group into multiple independent nodes (both internal executing nodes and external client nodes), allowing workload to be distributed across these segments. This enables the platform to handle variable workloads by activating only the necessary segments rather than maintaining all resources in a ready state, thus improving reliability during peaks while reducing overall resource consumption.
Solution Approach 2:
The system dynamically selects invoker nodes from the invoker group based on current workload conditions. The invocation controller adapts its behavior by choosing appropriate nodes in real-time, transitioning between using internal executing nodes and external client nodes as needed. This dynamic adaptation allows the system to maintain reliability during performance peaks while optimizing resource utilization by not keeping all potential invokers in a permanently active state.
2Adaptability or versatility
If serverless computing platforms overprovision hardware to manage variable workloads, then adaptability is improved, but device complexity increases
Solution Approach 1:
The system creates a universal invoker group that can serve multiple purposes: internal executing nodes handle standard workloads while external client nodes provide additional capacity when needed. This multi-functional architecture allows the same infrastructure to adapt to varying workload demands without requiring separate dedicated hardware for each scenario, thus improving adaptability while avoiding the complexity of maintaining multiple specialized systems.
Solution Approach 2:
The invocation controller acts as an intermediary that manages the complexity of coordinating between internal executing nodes and external client nodes. By centralizing the selection and management logic in the invocation controller, the system achieves operational flexibility and adaptability without distributing complex management logic across all nodes, thus improving adaptability while containing device complexity in a single coordinating component.
3Productivity
If serverless computing platforms use traditional provisioning models, then productivity is maintained, but loss of substance increases
Solution Approach 1:
The system enables external client nodes to voluntarily join the invoker group and contribute their own computing resources to execute application logic. These client nodes essentially self-service by providing their own hardware resources, which reduces the need for the serverless platform to provision and maintain additional hardware. This maintains code execution capability (productivity) while reducing the platform's resource consumption and costs (loss of substance).
Data Source
AI summary
A method for distributed code execution involving a first serverless computing infrastructure, the first serverless computing infrastructure comprising one or more first infrastructure nodes, the one or more first infrastructure nodes comprising a first invocation controller node and one or more first executing nodes, the one or more first infrastructure nodes being communicatively coupled to one or more client nodes, the one or more client nodes being external to the one or more first infrastructure nodes, the method comprising receiving event information, identifying application logic associated with the event information, selecting, from an invoker group, an invoker node for executing the application logic, causing the invoker node to execute the application logic, causing the invoker node to provide a result of the executed application logic, and receiving the result.


