Erasure Coded Object Parts for Fast Distributed Caching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Serverless code execution systems face challenges in rapidly provisioning execution environments for code that relies on large data sets, leading to latency issues and inefficient resource utilization due to the need for pre-provisioning or on-demand transfer of entire data sets, which can overwhelm resources and introduce significant latency.

Innovation Solution

Implement a 'lazy' loading approach where only the necessary portions of a data set are initially loaded, with additional portions retrieved on-demand, utilizing a multi-level caching system and erasure coding to ensure resilience and reduce latency, and employing convergent encryption for data deduplication to share common portions among different data sets.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If entire data sets are pre-provisioned to execution environments, then code execution latency is reduced, but resource utilization becomes inefficient and storage costs increase

Engineering Contradiction:
Improvecode execution latencyVSAvoidresource utilization
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent segments large data sets into smaller objects that can be independently stored and retrieved. Instead of provisioning entire data sets to execution environments, the system divides data into manageable chunks that can be loaded on-demand, reducing initial resource consumption while enabling rapid access to only the necessary portions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by pre-processing data into standardized objects and storing them in an optimized format before they are needed. This preparation work is done in advance without requiring full data set provisioning to execution environments, so when code execution is requested, the pre-processed objects can be rapidly retrieved and made available.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If entire data sets are transferred on-demand to execution environments, then data accessibility is improved, but transfer time and network bandwidth consumption increase significantly

Engineering Contradiction:
Improvedata accessibilityVSAvoiddata transfer time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts only the specific objects or portions of data that are actually needed for code execution, rather than transferring entire data sets. The system identifies and retrieves only the relevant data objects from storage, significantly reducing transfer time and network bandwidth consumption while maintaining full data accessibility when needed.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies partial action by loading only the necessary portions of data objects into execution environments on-demand, rather than transferring complete data sets. This approach transfers exactly the amount of data needed for the current execution task, avoiding unnecessary data transfer overhead.

Inventive Principle:
Principle #16Partial or excessive action

3Speed

If data sets are stored in distributed cache, then retrieval speed is improved, but cache consistency and data integrity become more difficult to maintain

Engineering Contradiction:
Improvedata retrieval speedVSAvoidcache consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces an intermediary layer between distributed cache nodes and execution environments. This intermediary manages cache consistency by coordinating data retrieval and storage operations across multiple cache nodes, ensuring that data integrity is maintained while still enabling rapid retrieval speeds through the distributed architecture.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where cache nodes report their state and data availability to a central coordinator. This feedback loop enables the system to maintain cache consistency by detecting and resolving conflicts, ensuring that execution environments receive accurate and up-to-date data from the distributed cache.

Inventive Principle:
Principle #23Feedback

4Reliability

If erasure coding is used to distribute data parts, then data resilience and fault tolerance are improved, but computational overhead and storage space requirements increase

Engineering Contradiction:
Improvedata resilienceVSAvoidcomputational overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies parameter changes by adjusting the erasure coding parameters (such as the ratio of data blocks to parity blocks) based on the specific requirements of different data objects and execution contexts. This allows the system to optimize the balance between data resilience and computational overhead, using stronger error correction only where necessary while reducing overhead for less critical data.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11593270B1Fast distributed caching using erasure coded object parts
Publication Date: 2023.02.28 AMAZON TECH INC
  • US11593270B1 patent drawing
  • US11593270B1 patent drawing
  • US11593270B1 patent drawing

AI summary

Systems and methods are described for providing rapid access to data objects stored in a cache. Rather than storing data objects directly, each object can be broken into a number of parts via erasure coding, which enables the object to be generated from less than all parts. When servicing a request for the data object, a device can attempt to retrieve all parts, but begin to generate the data object as soon as a sufficient number of parts is retrieved, even if requests for other parts are outstanding. In this way, the data object can be retrieved without delay due to the slowest requests. For example, where one or more requests timeout, such as due to failure of cache devices, this timeout may have no effect on time required to retrieve the data object from the cache.