Asynchronous Data Store Cache with Future Value Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Data storage in cloud environments experiences high latency due to remote storage servers, leading to inefficiencies in data fetching and storing operations.

Innovation Solution

A processing system with a server maintaining a cache of objects, utilizing asynchronous computations to determine object values, and providing a datatype with fields for cached and future values, allowing for immediate response from the cache before or after the computation is complete, thereby reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If data is fetched from remote cloud storage servers, then data is retrieved from the source, but latency is high due to remote location

Engineering Contradiction:
Improvedata retrieval latencyVSAvoiddistance to storage server
Core Design Contradiction:
Loss of timeVSLength of moving object

Solution Approach 1:

The system performs preliminary actions by maintaining a local cache of data objects and proactively computing future values before they are requested. When a data item is accessed, the system not only returns the current cached value immediately but also asynchronously computes the future updated value in the background, so that when the cached value expires, the updated value is already ready or being prepared, significantly reducing the latency of subsequent accesses.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The local cache server acts as an intermediary between the client and the remote cloud storage servers. Instead of having the client directly access remote storage for every data item, the cache server intercepts requests, serves data from its local cache, and manages asynchronous computations. This intermediary position reduces the effective distance and latency for data access while maintaining data consistency through background synchronization.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If asynchronous computation is performed to determine future object values, then updated data is available, but computation time is required before value is determined

Engineering Contradiction:
Improvedata freshnessVSAvoidcomputation duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The system performs preliminary computation by asynchronously calculating future values of data objects in the background before they are actually needed. When a data item is accessed from the cache, the system immediately returns the current value and simultaneously initiates or continues asynchronous computation to determine the future updated value. This ensures that when the cached value expires or needs updating, the computation is already in progress or complete, providing fresh data without blocking the application.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically manages the computation process by adjusting the timing and priority of asynchronous computations based on cache expiration policies, access patterns, and system load. The computation duration is optimized by performing calculations during idle periods or low-utilization times, and the system can interrupt or resume computations as needed, making the computation process flexible and adaptive rather than rigid and time-consuming.

Inventive Principle:
Principle #15Dynamics

3Speed

If cache is used to return immediate values, then response time is reduced, but data may not be current or updated

Engineering Contradiction:
Improveresponse speedVSAvoiddata currency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The system performs preliminary computation of future values in the background while the cache holds current values. When a data item is accessed, the system returns the current cached value immediately for fast response, and simultaneously ensures that asynchronous computation is underway to update the value. This dual approach maintains both the speed of cache retrieval and the reliability of data currency, as the future value is prepared in advance before the cached value expires.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms where the completion of asynchronous computations feeds back into the cache update process. When the asynchronous computation determines a new future value, this information is fed back to update the cache, ensuring that the cache continuously reflects current data. The feedback loop maintains data currency while preserving the benefit of immediate cache responses, as the system proactively updates rather than waiting for expiration or requests.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10540282B2Asynchronous data store operations including selectively returning a value from cache or a value determined by an asynchronous computation
Publication Date: 2020.01.21 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10540282B2 patent drawing
  • US10540282B2 patent drawing
  • US10540282B2 patent drawing

AI summary

A processing system server and methods for performing asynchronous data store operations. The server includes a processor which maintains a cache of objects in communication with the server. The processor executes an asynchronous computation to determine the value of a first object. In response to a request for the first object occurring before the asynchronous computation has determined the value of the first object, a value of the first object is returned from the cache. In response to a request for the first object occurring after the asynchronous computation has determined the value of the first object, a value of the first object determined by the asynchronous computation is returned. The asynchronous computation may comprise at least one future, such as a ListenableFuture, or at least one process or thread. Execution of an asynchronous computation may occur with a frequency correlated with how frequently the object changes or how important it is to have a current value of the object. The asynchronous computation may receive different values from at least two servers and may determine the value of an object based on time stamps.