Coarse-Grained Garbage Collection for Serverless Data Roots
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Serverless code execution systems face challenges in rapidly provisioning execution environments for code execution, particularly with large data sets, leading to latency issues and inefficient resource utilization due to the need for pre-provisioning or predictive provisioning, which can result in either excessive resource usage or latency.
Innovation Solution
The system employs 'lazy' loading of large data sets by providing initial portions of the data set needed for code execution and additional portions on-demand, utilizing a multi-level caching system with erasure coding and convergent encryption to reduce latency and improve resource efficiency, and implements coarse-grained garbage collection to manage data storage effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire data set is transferred before code execution begins, then data availability is ensured, but latency increases
Solution Approach 1:
The patent segments the data set into multiple portions and stores them in different object roots. Code execution can begin with the initial portion available, while other portions are loaded on-demand, reducing initial latency while ensuring data availability when needed.
Solution Approach 2:
The system performs preliminary actions by pre-loading only the initial portion of the data set required for code execution to begin. Additional portions are prepared and made available on-demand, balancing early execution capability with complete data availability.
2Reliability
If pre-provisioning is used to ensure resources are available, then resource availability improves, but resource utilization efficiency deteriorates
Solution Approach 1:
The system dynamically provisions data set portions based on actual execution needs. Instead of static pre-provisioning, the system loads additional data portions on-demand during code execution, optimizing resource utilization while ensuring availability when required.
Solution Approach 2:
The system enables self-service by automatically loading additional data portions from object storage during execution based on detected needs, without requiring manual pre-provisioning. This on-demand approach improves resource utilization efficiency while maintaining availability.
3Speed
If predictive provisioning is implemented to anticipate resource needs, then execution speed improves, but device complexity increases
Solution Approach 1:
The system uses self-service mechanisms where the execution environment automatically detects when additional data portions are needed and loads them from object storage. This eliminates the need for complex external predictive provisioning systems while maintaining fast execution through on-demand loading.
Solution Approach 2:
The system implements feedback mechanisms where the execution environment monitors its own data needs and triggers loading of additional portions from object roots. This internal feedback loop enables fast execution without requiring complex external predictive systems.
4Speed
If multiple copies of data sets are maintained for rapid access, then access speed improves, but storage resource usage increases
Solution Approach 1:
The patent segments data sets into portions distributed across object roots, eliminating the need for multiple complete copies. The initial portion is available for immediate access, while other portions are stored efficiently in object storage and loaded on-demand, reducing overall storage requirements while maintaining access speed.
Data Source
AI summary
Systems and methods are described for enabling garbage collection on data storage systems. Traditional garbage collection often attempts to track use of data items on an individual level, deleting each item when it is no longer used. In distributed systems, tracking use on an individual level is difficult, and may require centralized knowledge across the system with respect to individual data items. Provided herein is a “coarse-grained” garbage collection mechanism, which divides objects into logical groups referred to as “roots.” Each root has a life cycle. While active, new data can be stored in a root. While inactive, use of data within a root can cause that date to be copied to a different, active root. When the system detects that data hasn't been used in an inactive root for a threshold period, the root can be considered “dead” and data within the root may be deleted.


