Erasure Coded Object Parts for Fast Distributed Caching
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
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
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.
Data Source
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.


