Key-Value Store Consistency Without Write-Ahead Logs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage systems face inefficiencies due to the need for double writing of data to ensure consistency, leading to increased overhead, input-output congestion, and write amplification factor, particularly in key-value stores that use write-ahead logs.

Innovation Solution

A method and system that link multiple key-value blocks in a KV chain, using internal keys to encapsulate user key values and manage metadata, allowing for data consistency without the need for a write-ahead log, thereby reducing the number of writes required.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a write-ahead log (WAL) is used to ensure data consistency in key-value stores, then reliability is improved, but write amplification factor increases due to double writing

Engineering Contradiction:
Improvedata consistencyVSAvoidwrite amplification factor
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent extracts the write-ahead log component from the key-value store system entirely. Instead of maintaining a separate WAL structure that requires double writing, the invention uses a single-write architecture where the key-value store directly writes to the storage device with integrated consistency mechanisms, eliminating the redundant write operation while maintaining reliability

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent merges the functionality of the write-ahead log with the key-value store itself. The KV store engine combines data writing and consistency management into a single integrated operation, where the storage device's native features are leveraged to provide both durability and consistency without requiring separate logging infrastructure

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If data is written twice to ensure consistency using double write or journaling, then reliability is improved, but input-output congestion increases

Engineering Contradiction:
Improvedata consistencyVSAvoidinput-output throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent removes the journaling/double-write mechanism from the system. By eliminating this redundant write path, the invention reduces I/O operations and associated congestion, allowing the key-value store to achieve better throughput while maintaining consistency through the storage device's native transactional capabilities

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If a write-ahead log is used for data consistency, then reliability is improved, but device complexity increases

Engineering Contradiction:
Improvedata consistencyVSAvoidstorage system structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts and removes the write-ahead log component from the storage system architecture. This simplification eliminates the need for complex WAL management, checkpointing, and recovery mechanisms associated with traditional logging systems, resulting in a leaner, more manageable key-value store implementation

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11656952B2Reliable key-value store with write-ahead-log-less mechanism
Publication Date: 2023.05.23 SAMSUNG ELECTRONICS CO LTD
  • US11656952B2 patent drawing
  • US11656952B2 patent drawing
  • US11656952B2 patent drawing

AI summary

Provided is a method of linking multiple KV blocks in a KV chain to ensure data consistency, the method including allocating an internal key to both a first KV block and a recovery begin internal key, allocating a next internal key that is different from the internal key and that corresponds to a next KV block, and encapsulating respective user key values in the first KV block and in the next KV block, wherein the first KV block is accessed by reading the recovery begin internal key, and wherein the next KV block is accessed by reading the next internal key of the first KV block.