Variable-Length Data Reverse Reading via VLQ Indexing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems struggle with efficiently reading and performing operations on variable-length data in reverse order, particularly in scenarios involving concurrent updates and complex queries, due to lack of support for reverse navigation and efficient key-based retrieval.

Innovation Solution

The system employs VLQ encoding for record lengths, additional size metadata, and indexing to facilitate reverse reading, allowing for efficient navigation and set operations on variable-length data, while also supporting concurrent updates by using snapshots and atomic write operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored sequentially in traditional formats, then forward reading is efficient, but reverse reading becomes difficult and inefficient

Engineering Contradiction:
Improvereverse reading speedVSAvoidreverse navigation capability
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The data storage is segmented into fixed-size blocks with metadata headers that contain length information. Each block is independently addressable and can be accessed in reverse order by navigating through block headers, enabling efficient reverse reading without requiring to process entire sequential data streams.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An index structure acts as an intermediary between the stored data and access operations. The index contains metadata about data blocks including their positions and lengths, allowing the system to quickly locate and read data in reverse order without sequentially processing all intermediate data blocks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple copies of data are created for concurrent queries, then query accuracy is maintained, but storage cost increases prohibitively

Engineering Contradiction:
Improvequery accuracy during concurrent updatesVSAvoidstorage space consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

Instead of creating full physical copies of data for each concurrent query, the system creates lightweight snapshot references that point to the current state of data. These snapshots are incremental and share common data blocks, dramatically reducing storage overhead while maintaining query accuracy.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The snapshot mechanism serves multiple functions simultaneously: it provides version control for concurrent queries, maintains data integrity, and enables efficient space utilization through shared data blocks. A single snapshot structure can support multiple concurrent read operations without requiring separate copies for each.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If concurrent updates are allowed on sequentially stored variable-length data, then system throughput increases, but data integrity and atomicity become difficult to maintain

Engineering Contradiction:
Improveconcurrent update throughputVSAvoidupdate atomicity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Before executing an update operation, the system performs preliminary actions including acquiring locks on affected data blocks, validating the update transaction, and preparing a snapshot of the current state. This preliminary preparation ensures that when the update is committed, it maintains atomicity and consistency even in concurrent environments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The locking mechanism extracts and isolates only the specific data blocks that need to be updated, rather than locking entire data structures or requiring exclusive access to the whole database. This selective extraction of lock targets enables concurrent updates on different blocks while maintaining atomicity within each block's update operation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10191693B2Performing updates on variable-length data sequentially stored and indexed to facilitate reverse reading
Publication Date: 2019.01.29 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10191693B2 patent drawing
  • US10191693B2 patent drawing
  • US10191693B2 patent drawing

AI summary

A system, method, and apparatus are provided for performing update operations on variable-length data records stored and indexed to facilitate reverse reading. Each record contains a key offset for each key field, and the key offset stores a reference (e.g., an offset) to the next most recently stored record that has the same value for the key. Key offsets of a new set of records are configured based on the data index and an assumed write location (e.g., an end offset of the data). The data repository is locked and, if no other intervening records were stored, the new ones are written, the index is updated, and the lock is released. If intervening records were stored, the new set of records is adjusted further based on the current index and the current write location, the records are stored, the index is updated, and the lock is released.