Coarse-Grained Garbage Collection for Serverless Data Roots

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If the entire data set is transferred before code execution begins, then data availability is ensured, but latency increases

Engineering Contradiction:
Improvedata availabilityVSAvoidexecution latency
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If pre-provisioning is used to ensure resources are available, then resource availability improves, but resource utilization efficiency deteriorates

Engineering Contradiction:
Improveresource availabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #25Self-service

3Speed

If predictive provisioning is implemented to anticipate resource needs, then execution speed improves, but device complexity increases

Engineering Contradiction:
Improveexecution speedVSAvoidprovisioning system complexity
Core Design Contradiction:
SpeedVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #23Feedback

4Speed

If multiple copies of data sets are maintained for rapid access, then access speed improves, but storage resource usage increases

Engineering Contradiction:
Improvedata access speedVSAvoidstorage resource usage
Core Design Contradiction:
SpeedVSQuantity of substance

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.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11550713B1Garbage collection in distributed systems using life cycled storage roots
Publication Date: 2023.01.10 AMAZON TECH INC
  • US11550713B1 patent drawing
  • US11550713B1 patent drawing
  • US11550713B1 patent drawing

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.