FaaS Execution Node Selection via Data Location
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Function as a Service (FaaS) systems face performance drawbacks due to the delay between trigger and function execution, and inefficient data distribution in cloud environments, which hinders the decomposition and porting of complete applications.
Innovation Solution
A method where a FaaS system determines the execution node for a function based on the location of the data it will access, ensuring that functions accessing the same data execute on the same node, thereby reducing latency and improving interaction speed by optimizing data location through key-value store queries and historical usage analysis.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If data is distributed randomly using hash-based key-value store, then data access speed is fast, but related data ends up at very different locations
Solution Approach 1:
The patent applies local quality by making the data distribution strategy adaptive rather than uniform. Execution nodes are assigned based on the specific location requirements of each function's data, allowing different parts of the system to have different data placement characteristics. This resolves the contradiction by enabling fast access for individually accessed data while maintaining location consistency for related data that needs to be accessed together.
Solution Approach 2:
The system performs preliminary analysis of data access patterns and function execution requirements before assigning execution nodes. By determining data location information in advance and selecting execution nodes based on this information, the system proactively ensures that functions execute close to their required data, avoiding the random distribution problem while maintaining fast access speeds.
2Reliability
If there is a delay between trigger and function execution, then system stability is maintained, but interaction speed between functions becomes too slow
Solution Approach 1:
The system performs preliminary actions by determining the optimal execution node based on data location information before function execution begins. This advance planning eliminates unnecessary delays and network hops, enabling fast function interactions while maintaining system stability through controlled execution scheduling.
Solution Approach 2:
The patent enables continuous fast interaction between functions by ensuring that related functions execute on the same or nearby execution nodes. This continuity is achieved by maintaining data and function proximity, eliminating the need for frequent context switching and data transfer delays, thus allowing complete applications to be decomposed and ported to FaaS architecture.
3Adaptability or versatility
If functions are distributed to multiple execution nodes, then system scalability is improved, but data access latency increases
Solution Approach 1:
The patent applies local quality by making execution node assignment specific to each function's data location requirements rather than using uniform distribution. This allows the system to scale across multiple execution nodes while minimizing data access latency by ensuring each function executes close to its required data, regardless of which node that data resides on.
Solution Approach 2:
The system dynamically determines execution node assignment based on real-time data location information and function requirements. This dynamic approach allows the system to scale flexibly across multiple nodes while adapting to changing data distributions and access patterns, thereby maintaining low latency even as the system grows.
Data Source
AI summary
A FaaS system comprises a plurality of execution nodes. A software package is received in the system, the software package comprising a function that is to be executed in the FaaS system. Data location information related to data that the function is going to access during execution is obtained. Based on the data location information, a determination is then made of an execution node in which the function is to be executed. The function is loaded into the determined execution node and executing in the determined execution node.


