Distributed Storage Consistency Database for Data Synchronization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed storage systems face challenges in effectively managing and synchronizing data across multiple nodes, particularly in ensuring data consistency and integrity during write operations and handling node failures, which can lead to data loss or corruption.
Innovation Solution
A distributed storage system utilizing a consistency database to manage logical storage volumes, with features like virtual block addresses and segment identifiers, ensures data consistency by coordinating write operations, synchronizing copies, and handling failures by selecting a new leader node and synchronizing data across nodes.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If data is replicated across multiple storage nodes for redundancy, then reliability is improved, but data consistency and synchronization become more difficult to maintain
Solution Approach 1:
The system performs preliminary actions by pre-establishing a consistency database that tracks the state of all storage nodes before failures occur. This database maintains metadata about data locations, versions, and synchronization status, allowing the system to quickly determine which nodes need updates without complex real-time coordination during normal operations.
Solution Approach 2:
The consistency database acts as an intermediary between storage nodes, centralizing the coordination of data synchronization. Instead of having each node directly communicate with every other node (which would create complex peer-to-peer synchronization), the consistency database mediates all synchronization operations, tracking which clones need updates and coordinating the transfer of data blocks.
2Reliability
If write operations are coordinated across all clone nodes to ensure consistency, then data integrity is improved, but write speed and productivity deteriorate
Solution Approach 1:
The system performs preliminary actions by pre-calculating and storing the expected state of the consistency database after each write operation. The consistency database maintains a record of which data blocks exist on which nodes, allowing the system to quickly determine synchronization requirements without waiting for confirmation from all nodes. This preliminary tracking enables asynchronous updates that maintain integrity while improving write speed.
Solution Approach 2:
The system applies partial action by updating only the specific clone nodes that need synchronization rather than requiring all nodes to acknowledge every write operation. The consistency database identifies exactly which clones are out of sync and targets updates only to those nodes, reducing the coordination overhead and improving write throughput while maintaining data integrity.
3Reliability
If the system waits for confirmation from all clone nodes before completing a write operation, then data consistency is improved, but response time and loss of time increase
Solution Approach 1:
The consistency database performs preliminary tracking of data block locations and node states before write operations complete. This pre-established knowledge allows the system to immediately identify which clones need updates after a write occurs, eliminating the need to wait for sequential acknowledgments from all nodes. The system can proceed with subsequent operations while background processes handle the synchronization of specific out-of-sync clones.
Solution Approach 2:
The system implements feedback mechanisms where the consistency database continuously monitors the synchronization state of clone nodes and provides real-time information about which nodes are current and which are stale. This feedback enables the system to make informed decisions about write completion without waiting for all nodes, as the database can identify when the critical path for consistency has been satisfied and when remaining nodes can be updated asynchronously.
4Reliability
If the system stores complete metadata about all data blocks on all nodes, then data recovery capability is improved, but storage overhead and loss of substance increase
Solution Approach 1:
The system extracts only the essential metadata needed for recovery and synchronization operations, storing this information in the consistency database rather than maintaining complete copies of all data block information. The consistency database stores compact records of which data blocks exist on which nodes, along with version information and synchronization status, eliminating the need for redundant storage of full metadata sets across all nodes.
Solution Approach 2:
The consistency database serves multiple functions simultaneously: it tracks data block locations for recovery operations, monitors synchronization status for update operations, and provides information for both read and write operations. This multi-functionality eliminates the need for separate metadata structures for different operations, reducing overall storage overhead while maintaining comprehensive data recovery capability.
Data Source
AI summary
A system maintains a consistency database that maintains a status (current, down, stale) for copies of logical storage volumes stored on storage nodes. As failures are detected, the consistency database is updated. Copies are synchronized with one another using information in the consistency database. Write operations on a primary node for a slice of a logical storage node are assigned a virtual block address (VBA) that is mapped to a logical block address (LBA) within the slice. Consistency of the VBAs of the primary node and that of a secondary node is evaluated and used to detect currency. VBA holes are detected and corresponding write commands resent to maintain currency. Physical segments on the primary node are assigned virtual segment identifiers (VSID) that are maintained consistent with VSIDs on clone nodes so that they can be used for garbage collection and synchronization.


