Serverless Function Colocation with Storage Pool Proximity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Serverless computing environments face challenges in efficiently executing functions that require access to storage pools due to varying communication speeds and bandwidth, leading to increased latency and reduced execution efficiency, while existing solutions pose security risks by exposing storage node information to applications.
Innovation Solution
A service within the serverless computing environment analyzes network topologies and monitors storage systems to identify nodes implementing storage pools, determining colocation measures and available resources, and ranks nodes for optimal execution based on proximity and resource availability to minimize latency and ensure security.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If functions are assigned to nodes without considering colocation measures, then resource allocation is simplified, but execution latency increases and execution efficiency decreases
Solution Approach 1:
The system pre-calculates and stores colocation measures between nodes and storage pools before function execution. This preliminary action enables rapid node selection during function assignment without real-time computation, resolving the contradiction by preparing optimization data in advance while maintaining simple assignment logic during execution.
Solution Approach 2:
The patent introduces a service as an intermediary component that manages the complex colocation measure calculations and node ranking logic. This intermediary abstracts the complexity from the function assignment process, allowing simplified assignment operations while maintaining optimized execution through the service's intelligent node selection based on colocation measures.
2Ease of operation
If storage node information is exposed to applications, then access to storage pools is simplified, but security risks increase
Solution Approach 1:
The service acts as an intermediary between applications and storage pools, managing all interactions without exposing storage node information to applications. The service translates application storage requests into node-specific operations using colocation measures, maintaining security while enabling efficient storage access through the intermediary's intelligent routing.
Solution Approach 2:
The system creates an abstract representation of storage pool access through the service layer, where applications interact with a simplified storage interface rather than direct node references. This copying approach maintains ease of operation by providing a clean API while preventing security risks by never exposing actual storage node information to applications.
3Speed
If functions are assigned to nodes far from storage pools, then network bandwidth usage increases and execution speed decreases
Solution Approach 1:
The system optimizes function execution by assigning functions to nodes based on their local proximity to required storage pools using colocation measures. This local quality approach ensures that each function executes on the most appropriately located node, minimizing network bandwidth consumption and maximizing execution speed by reducing data transfer distances.
Solution Approach 2:
The patent changes the assignment parameter from simple resource availability to a composite metric including colocation measures that quantify proximity to storage pools. This parameter change enables the system to select nodes that optimize both execution speed and network bandwidth usage by considering the spatial relationship between compute and storage resources.
Data Source
AI summary
Methods and systems are provided for assigning nodes to execute functions in a serverless computing environment. In one embodiment, a method is provided that includes receiving a function for execution in a serverless computing environment and identifying a storage pool needed during execution of the function. The serverless computing environment may include nodes for executing functions and a first set of nodes may be identified that implement the storage pool. Colocation measures may be determined between the first set of nodes and a second set of nodes. Available computing resources may be determined for the second set of nodes, such as available processing cores and available memory. The second set of nodes may be ranked according to the colocation measures and the available computing resources and a first node may be selected based on the ranking. The first node may be assigned to execute the function.


