Cache Optimization for Data Preparation in Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale data processing in web applications, such as Apache Spark, is computationally intensive due to the need to process entire data sets, leading to slow application response times and inefficiencies in data preparation operations like sorting, filtering, and joining.

Innovation Solution

Implementing a distributed computing platform with cache optimization techniques, including data partitioning and caching of transformation results, allows for on-the-fly computation of data sets without replicating data, enabling efficient execution of sequenced data preparation operations by generating and reusing data traversal programs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If entire data sets are processed to perform operations, then complete data analysis is achieved, but computational overhead increases and response time slows

Engineering Contradiction:
Improvedata analysis completenessVSAvoidapplication response time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent segments the data set into partitions and further divides operations into map and reduce phases. The map phase processes individual partitions independently, allowing parallel computation across multiple data nodes, while the reduce phase aggregates results. This segmentation enables processing of complete data sets through distributed computation, maintaining analysis completeness while reducing response time through parallelization.

Inventive Principle:
Principle #1Segmentation

2Reliability

If data preparation operations are performed on large data sets, then accurate results are obtained, but computational resources are excessively consumed

Engineering Contradiction:
Improveresult accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent implements caching of intermediate computation results from the map phase before the reduce phase. By storing these intermediate results in a cache layer, the system avoids redundant computations when the same data preparation operations are requested again. This preliminary caching action maintains result accuracy through complete data processing while significantly reducing computational resource consumption on subsequent requests.

Inventive Principle:
Principle #10Preliminary action

3Speed

If data is replicated to improve processing speed, then operation execution is faster, but storage requirements and data redundancy increase

Engineering Contradiction:
Improveoperation execution speedVSAvoiddata storage volume
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent introduces a cache layer as an intermediary between the distributed data storage and the processing engines. This cache stores intermediate computation results and serves as a mediator that can be quickly accessed during processing without requiring replication of the entire data set. The cache acts as a buffer that improves operation execution speed by providing fast access to frequently needed intermediate results while maintaining the original single-copy storage architecture, thus avoiding the storage overhead of data replication.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10740316B2Cache optimization for data preparation
Publication Date: 2020.08.11 DATAROBOT INC
  • US10740316B2 patent drawing
  • US10740316B2 patent drawing
  • US10740316B2 patent drawing

AI summary

Cache optimization for data preparation includes generating a data traversal program that represents a result of a set of sequenced data preparation operations performed on one or more sets of data. The data traversal program indicates how to assemble one or more affected columns in the one or more sets of data to derive the result. It further includes in response to receiving a specification of the set of sequenced operations to be performed on the one or more sets of data, accessing the data traversal program that represents the result or a stored copy of the data traversal program that represents the result. It further includes assembling the one or more affected columns in the one or more sets of data according to the data traversal program to re-generate the result. It further includes outputting the result.