Iterative Database Processing with Dual Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face inefficiencies in processing raw data due to redundant computations and resource-intensive data aggregation, particularly in distributed environments, where previous iterations' data is often re-processed, leading to increased processing time and resource utilization.

Innovation Solution

A database system employing a dual cache structure, where a key-value cache stores transformed data from previous iterations and an aggregation cache stores aggregated data, allowing for iterative processing that re-uses previous aggregated data and only updates key-value data in the current iteration, thereby reducing redundant computations and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If MapReduce framework is used to process raw data in distributed manner, then processing acceleration is achieved, but processing time and resource consumption increase due to redundant computations in iterative processing

Engineering Contradiction:
Improveprocessing accelerationVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-computing and storing aggregated data from previous iterations in a cache structure. Before processing new data, the system retrieves and reuses previously computed aggregated results, avoiding redundant computations. This preliminary preparation of aggregated data significantly reduces the processing time required in subsequent iterative steps.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a copy of previously computed aggregated data and stores it in a cache structure. Instead of recomputing aggregated results from scratch in each iteration, the system copies and reuses the cached aggregated data from previous iterations, only updating the necessary portions with new incoming data. This copying approach dramatically reduces processing time and resource consumption.

Inventive Principle:
Principle #26Copying

2Reliability

If all data from previous iterations is re-processed, then data integrity is maintained, but resource consumption and processing time increase

Engineering Contradiction:
Improvedata integrityVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system extracts only the necessary aggregated data from previous iterations and stores it separately in a cache structure. Instead of re-processing all historical data, the system extracts and retrieves only the relevant aggregated results needed for current computations. This extraction approach maintains data integrity for what is needed while avoiding the resource consumption of re-processing entire datasets.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system applies local quality by differentiating between data that needs to be re-processed and data that can be reused. Aggregated data from previous iterations is marked and stored with specific metadata, allowing the system to selectively reuse only the relevant portions while maintaining integrity where needed. This localized approach to data handling optimizes resource consumption while preserving necessary data integrity.

Inventive Principle:
Principle #3Local quality

3Productivity

If distributed MapReduce processing is implemented, then parallel processing capability is improved, but system complexity and coordination overhead increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces an intermediary cache structure that mediates between the distributed MapReduce processing nodes and the final aggregated results. This intermediary layer stores and manages aggregated data from previous iterations, simplifying the coordination overhead by providing a centralized reference point for data retrieval and reuse across distributed nodes, thereby reducing the complexity of managing distributed state.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If iterative processing without caching is used, then data freshness is ensured, but processing efficiency decreases due to redundant computations

Engineering Contradiction:
Improvedata freshnessVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system performs preliminary computation of aggregated data during previous iterations and stores these results in a cache structure with timestamps or version information. Before processing new data, the system checks the freshness metadata of cached aggregated data and reuses it when valid, ensuring data freshness requirements are met while avoiding redundant computations. This preliminary preparation significantly boosts processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms by tracking and storing metadata about aggregated data from previous iterations, including timestamps, version numbers, or validity indicators. This feedback information allows the system to determine whether cached aggregated data is still valid and can be reused, or if it needs to be recomputed. This feedback-driven approach ensures data freshness while maximizing processing efficiency through reuse of valid cached results.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11561939B2Iterative data processing
Publication Date: 2023.01.24 AMADEUS SAS
  • US11561939B2 patent drawing
  • US11561939B2 patent drawing
  • US11561939B2 patent drawing

AI summary

Data is processed iteratively by a database system with a first cache storing key-value data which resulted from previous iterations of processing input data and a second cache storing aggregated data which resulted from previous iterations of processing key-value data stored in the first cache. In a current iteration, the database system receives further input data related to the input data of the previous iterations, transforms the further input data into further key-value data and stores the further key-value data in the first cache in addition to the stored key-value data which resulted from previous iterations. The database system further processes the further key-value data and the aggregated data stored in the second cache to form updated aggregated data, and stores the updated aggregated data in the second cache for usage in further iterations. The database system also provides the updated aggregated data to at least one client.