Distributed Snapshot Read-After-Write Consistency via Buffer Duplication

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Maintaining read-after-write (RAW) consistency across distributed copies of datasets in a distributed architecture is challenging due to factors like network latency, node failures, and concurrent updates, which existing methods are not well-equipped to handle.

Innovation Solution

A computer-implemented method that modifies snapshots of datasets distributed over a network by receiving a request to modify a record, duplicating the entry across buffers, modifying the snapshot, and transmitting the updated snapshot to all applications, ensuring RAW consistency across distributed copies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is replicated across multiple nodes in a distributed architecture, then system reliability and availability are improved, but maintaining read-after-write consistency becomes more difficult

Engineering Contradiction:
Improvesystem reliabilityVSAvoidconsistency maintenance complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system pre-allocates buffer memory at each application node before data replication occurs. This preliminary preparation allows immediate local storage of replicated data without requiring complex coordination during the replication process itself, thus maintaining consistency while simplifying the replication mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A buffer memory acts as an intermediary layer between the central data source and application nodes. This buffer temporarily holds replicated data and manages the transition from central storage to distributed storage, facilitating consistency maintenance without requiring direct complex coordination between all nodes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If data is stored in remote storage, then storage capacity is improved, but data access latency increases

Engineering Contradiction:
Improvestorage capacityVSAvoiddata access latency
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system segments data storage into two parts: frequently accessed data is replicated and cached in local buffer memory at application nodes, while less frequently accessed data remains in remote storage. This segmentation allows hot data to be accessed locally with low latency while maintaining overall storage capacity in remote systems.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements local quality by providing each application node with dedicated buffer memory that is optimized for local data access. This local memory provides fast access for frequently used data, while the remote storage system maintains overall data capacity. Each node's buffer is tailored to its specific access patterns and requirements.

Inventive Principle:
Principle #3Local quality

3Speed

If data is co-located in memory, then data access speed is improved, but memory resource consumption increases

Engineering Contradiction:
Improvedata access speedVSAvoidmemory resource consumption
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The system applies partial action by replicating and caching in local memory only the subset of data that is frequently accessed by each application, rather than caching all data. This selective replication optimizes memory usage by storing in fast memory only what is needed for high-speed access, while less frequently accessed data remains in slower but more abundant remote storage.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system changes the parameter of data location from exclusively remote to a hybrid model where frequently accessed data is moved to local memory. This parameter change in data placement strategy enables fast access for critical data while managing overall memory consumption by maintaining a selective cache rather than duplicating entire datasets locally.

Inventive Principle:
Principle #35Parameter changes

4Reliability

If snapshots are replicated across applications, then data availability is improved, but consistency maintenance complexity increases

Engineering Contradiction:
Improvedata availabilityVSAvoidconsistency coordination complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system creates simplified copies of data snapshots in buffer memory at each application node. These copies are maintained through automated replication processes that use standardized copy operations, reducing the complexity of consistency coordination compared to managing full distributed transaction protocols across all nodes.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The system performs preliminary replication of data snapshots to local buffers before applications need to access them. This advance preparation ensures data availability when needed while simplifying consistency management, as the replication process is decoupled from application access operations and can be managed through centralized coordination.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250181639A1Maintaining read-after-write consistency between dataset snapshots across a distributed architecture
Publication Date: 2025.06.05 NETFLIX INC
  • US20250181639A1 patent drawing
  • US20250181639A1 patent drawing
  • US20250181639A1 patent drawing

AI summary

In various embodiments a computer-implemented method for modifying snapshots of datasets distributed over a network is disclosed. The method includes receiving a request to modify a record in a snapshot of a dataset, wherein the snapshot comprises a compressed plurality of records replicated across a plurality of applications, and wherein the snapshot is co-located in memory associated with each application. The method further includes duplicating the request across a plurality of buffers, wherein each buffer tracks modification requests associated with the snapshot, and wherein each of the plurality of applications accesses a buffer of the plurality of buffers to receive and store the request in a portion of memory separate from the dataset. The method further includes modifying the snapshot in accordance with the request and transmitting the modified snapshot to the plurality of applications where the modified snapshot replaces the prior copy of the snapshot.