Atomic Writes for Multi-Extent Distributed Storage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing file storage systems face challenges in providing high-availability and high-durability scalable solutions that support shared access to large files across thousands of clients, with existing industry-standard file system interfaces often struggling to maintain consistency in distributed systems prone to asynchronous interactions, component failures, and network delays.
Innovation Solution
A modular architecture for a distributed file storage service that includes a physical storage subsystem, a metadata subsystem, and an access subsystem, utilizing replication techniques such as erasure-coding and consensus-based protocols to ensure sequential consistency and durability, while supporting industry-standard file system interfaces like NFS and SMB.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If atomic writes are implemented for single-page updates, then write performance and consistency are improved, but device complexity increases due to the need for atomic update mechanisms
Solution Approach 1:
The patent segments the storage system into multiple pages, where each page can be independently updated atomically. This segmentation allows the atomic write mechanism to operate at the page level rather than requiring system-wide atomic operations, thereby improving write performance while controlling device complexity through localized atomic updates.
Solution Approach 2:
The patent introduces a metadata layer that acts as an intermediary between the file system and the underlying storage device. This metadata layer manages the atomic update operations, tracking which pages have been modified and coordinating the atomic writes without requiring complex atomic mechanisms throughout the entire storage system.
2Reliability
If multi-extent operations are performed atomically, then data consistency across distributed storage is improved, but the complexity of coordinating updates across multiple extents increases
Solution Approach 1:
The patent implements a preliminary action by first collecting all the pages that need to be updated across multiple extents into a temporary buffer, validating the operation, and then atomically applying all updates together. This preliminary preparation ensures data consistency while reducing coordination complexity by batching operations rather than managing them individually.
Solution Approach 2:
The patent merges multiple small update operations across different extents into a single atomic multi-extent operation. By combining these operations and treating them as one unified atomic transaction, the system achieves data consistency across distributed storage without requiring complex coordination between each individual extent update.
3Ease of operation
If industry-standard file system interfaces are supported in distributed systems, then compatibility and ease of operation are improved, but maintaining consistency models becomes more difficult due to asynchronous interactions and network delays
Solution Approach 1:
The patent introduces a metadata subsystem as an intermediary that sits between the file system interfaces and the distributed storage layers. This metadata subsystem manages consistency by tracking the state of files and extents, coordinating updates across distributed components, and handling asynchronous operations without requiring changes to the standard file system interfaces.
Solution Approach 2:
The patent implements feedback mechanisms where the metadata subsystem continuously monitors the state of distributed storage operations and adjusts its coordination strategies accordingly. This feedback loop ensures that consistency models are maintained even in the presence of asynchronous interactions and network delays, while preserving interface compatibility.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A node of a storage service is selected as a coordinator of a distributed transaction involving multiple page-level modifications. The coordinator identifies other nodes as members of a node chain collectively storing physical data pages at which proposed modifications are to be performed, including a decider node responsible for a decision to commit the transaction. The coordinator generates a transaction preparation message comprising a representation of an order of respective commit decisions associated with the proposed modifications, and transmits the message to a selected node of the chain for a sequential propagation along the chain. Each chain node performs a local commit analysis for its changes and stores a record of its intent to commit. If a decision to commit is reached at the decider, the proposed modifications are completed.