Distributed Storage Partitioning for Witness-Verified Cache Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed storage systems face challenges in maintaining strong data consistency while minimizing latency, particularly due to cache staleness and hash table compression issues that can lead to inconsistent data retrieval.

Innovation Solution

Implement a consistency witness service to verify the freshness of cached data using transaction sequencers, utilize multiple witness nodes with diverse hash functions, and optimize data storage and retrieval processes through multi-tier caching and partition management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is cached to improve access speed, then data retrieval speed is improved, but data consistency reliability deteriorates due to cache staleness

Engineering Contradiction:
Improvedata retrieval speedVSAvoiddata consistency
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The witness service implements a feedback mechanism where cached data is verified against the primary storage system before being served. When data is cached, the witness service periodically checks if the cached data matches the current state in primary storage by comparing data hashes or metadata. If the data has changed in primary storage, the witness service invalidates the cached data, ensuring that only consistent data is retrieved by clients.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The witness service acts as an intermediary between the cache layer and the primary storage system. It receives data from primary storage, verifies its consistency, and then allows it to be cached. When clients request cached data, the witness service validates the data before returning it, effectively mediating between the speed benefits of caching and the consistency requirements of the storage system.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If hash table compression is used to reduce memory usage, then storage efficiency is improved, but data retrieval accuracy deteriorates due to hash collisions

Engineering Contradiction:
Improvememory usageVSAvoiddata retrieval accuracy
Core Design Contradiction:
Quantity of substanceVSMeasurement precision

Solution Approach 1:

The witness service applies different verification strategies based on the specific data being retrieved. For frequently accessed data with low collision probability, it uses standard hash table lookup. For data where precision is critical or collision probability is high, it implements additional verification steps such as comparing data hashes or retrieving the actual data from primary storage to confirm accuracy, thus applying different quality levels to different data access scenarios.

Inventive Principle:
Principle #3Local quality

3Reliability

If multiple witness nodes are deployed to improve data consistency verification, then consistency reliability is improved, but system complexity increases

Engineering Contradiction:
Improvedata consistency verificationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The witness service is segmented into multiple independent witness nodes, each responsible for verifying data consistency for specific data partitions or hash ranges. This segmentation allows the system to scale consistency verification horizontally without creating a single point of failure. Each witness node operates independently, maintaining the same verification logic but dividing the workload, which improves overall reliability while keeping individual node complexity manageable.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12386541B1Data item and witness service partitioning in a distributed storage system
Publication Date: 2025.08.12 AMAZON TECH INC
  • US12386541B1 patent drawing
  • US12386541B1 patent drawing
  • US12386541B1 patent drawing

AI summary

Systems and methods are provided for using request rate data to determine when and how to split storage partitions in a distributed storage system. Data objects in a given partition are stored and managed using a set of computing resources, such as caches, a witness service, and persistent storage nodes. When the request rate for the partition is too great, then the partition may be split in order to distribute the request load over two sets of computing resources. Some requests that would be able to be handled by the cache are passed through to the persistent storage nodes, which can track the requests at a granular level. Based on this data, specific partition splitting decisions can be made.