Versioned Database Cache for Historical Data Retrieval

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database systems face challenges in efficiently retrieving data as it existed at a specific time, especially when data continuously changes over time, such as in the context of internet advertisements with updates like clicks and impressions.

Innovation Solution

A system is configured to store multiple versions of attributes associated with items in a database, each with a timestamp, allowing it to determine and output the relevant version based on a specified time for timestamped queries, using a combination of a versioned database and deterministic cache for efficient query processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If multiple versions of attributes are stored in the database with timestamps, then accurate historical data retrieval is improved, but device complexity increases

Engineering Contradiction:
Improvedata retrieval accuracyVSAvoiddatabase structure complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The database structure is segmented into multiple versions of attributes, where each version represents a snapshot of data at a specific timestamp. This segmentation allows the system to retrieve historical data accurately by selecting the appropriate version based on the requested timestamp, while maintaining organized and manageable data structures through version identification.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a temporal dimension to the database by introducing timestamps and version numbers to attributes. This transforms a traditional single-state database into a multi-version database where each attribute has multiple versions indexed by time, enabling historical data retrieval without fundamentally complicating the core data access mechanisms.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If the database continuously updates to reflect advertising events, then data currency is improved, but query performance for historical data deteriorates

Engineering Contradiction:
Improvedata currencyVSAvoidquery performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by continuously updating the database with versioned attributes and timestamps as advertising events occur. Each update pre-organizes the data with its temporal context, so when historical queries are made, the system can efficiently retrieve the appropriate version without performing complex real-time analysis, thus maintaining both data currency and query performance.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If versioned data is stored for all attributes, then historical query accuracy is improved, but storage requirements increase

Engineering Contradiction:
Improvehistorical query accuracyVSAvoiddata storage volume
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by versioning only those attributes that change over time and are relevant to historical queries, rather than uniformly versioning all attributes. This selective approach maintains historical query accuracy for critical attributes while reducing overall storage requirements by avoiding redundancy in static or less important data fields.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8782023B1Versioned database cache
Publication Date: 2014.07.15 GOOGLE LLC
  • US8782023B1 patent drawing
  • US8782023B1 patent drawing
  • US8782023B1 patent drawing

AI summary

A device may store information associated with a group of items in a database. The information associated with a particular item may include a group of versions of a particular attribute. A particular version of the particular attribute may include a value associated with the particular attribute and a timestamp. The device may receive a query that specifies a time; determine that the query is associated with the particular item; and determine, based on the specified time, which version of the particular attribute is associated with the query. The device may determine which version of the particular attribute is associated with the query by identifying, based on the timestamps associated with the versions of the particular attribute, a version of the particular attribute that is a newest version, of the versions of the particular attribute that are associated with timestamps that are before or concurrent with the specified time.