Data Storage Flush Views for Durable, Low-Latency Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing block-based storage systems face issues with data durability and availability due to failures in server nodes or common control planes, leading to significant storage capacity loss and high recovery latencies across multiple locations.
Innovation Solution
A data storage system with multiple head nodes and data storage sleds that replicate and flush data across mass storage devices, utilizing a local control plane to manage storage operations independently, ensuring high durability and low latency access by storing data in head nodes and replicating to another head node and multiple sleds, with a zonal control plane for volume assignment and load balancing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is stored across multiple devices in multiple locations to increase durability, then data durability is improved, but recovery latency increases due to data being located across multiple locations
Solution Approach 1:
The storage system is segmented into multiple independent storage nodes distributed across different locations, each capable of storing and managing data locally. This segmentation allows data to be divided into chunks stored across nodes, improving durability while enabling parallel recovery operations that reduce overall recovery latency.
Solution Approach 2:
Data is pre-replicated across multiple storage nodes before any failure occurs. This preliminary action ensures that redundant copies are already in place, so when a failure happens, recovery can immediately begin by accessing pre-positioned replicas rather than needing to retrieve data from distant locations, thereby reducing recovery latency.
2Device complexity
If a common control plane is used to manage data in multiple locations, then system management is simplified, but a failure of a component of the common control plane may impact a large quantity of storage capacity
Solution Approach 1:
The control plane is segmented into distributed control components embedded in each storage node rather than a single centralized controller. Each node can independently manage its local data and make decisions, eliminating the single point of failure while maintaining manageable complexity through standardized node behavior.
Solution Approach 2:
Critical control functions are extracted from a centralized control plane and distributed to individual storage nodes. This extraction removes the vulnerability of centralized control while preserving system-wide coordination through peer-to-peer communication between nodes.
3Adaptability or versatility
If extensive networks are used to move data between multiple locations, then data distribution capability is improved, but high latencies occur for data recovery
Solution Approach 1:
The system implements local quality by maintaining data replicas in geographically distributed storage nodes with local access capabilities. This allows data to be accessed from the nearest available replica, reducing network travel time and recovery latency while maintaining the ability to distribute data across extensive networks.
4Productivity
If a server node and multiple storage nodes are used, then storage scalability is improved, but a failure of one or more server nodes may result in a large amount of storage capacity being rendered unusable
Solution Approach 1:
The system extracts the control and data management functions from centralized server nodes and embeds them directly in storage nodes. This creates a decentralized architecture where storage nodes can operate independently, allowing scalability while eliminating the vulnerability of server node failures affecting large amounts of storage capacity.
Data Source
AI summary
A data storage system includes a head node and mass storage devices. The head node is configured to flush data stored in a storage of the head node to a set of the mass storage devices of the data storage system. A head node may flush both current version data and point-in-time version data to the set of mass storage devices. Also, the data storage system maintains an index that indicates storage locations of data for particular portions of a volume before and after the data is flushed to the set of mass storage devices. In some embodiments an index includes a current version reference for a volume or portion of a volume and one or more point-in-time snapshot references.


