Cluster Storage Network Handling Inconsistent States via Commit Identifiers
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In erratic storage networks, members may become unavailable, leading to inconsistent states and increased latency in processing client requests due to out-of-date local storage spaces, as existing systems require strict synchronism among all members for write operations, which is not always feasible.
Innovation Solution
A method is introduced to handle partially inconsistent states by assigning unique commit identifiers for each modification, correlating requests with necessary commit identifiers, and using asynchronous processes to ensure that requests are satisfied either by applying missing commit identifiers from other members or by waiting for their availability, based on selection criteria such as storage activity and network bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If strict synchronism is required among all cluster members for write operations, then data consistency is improved, but system reliability and response time deteriorate when members become unavailable
Solution Approach 1:
The system segments the cluster into a set of members and tracks their individual states using commit identifiers. Each member maintains a log of commit identifiers representing the state of its local storage space. This segmentation allows the system to manage consistency at the individual member level rather than requiring global synchronism, enabling members to operate independently when others are unavailable.
Solution Approach 2:
The system performs preliminary actions by pre-establishing commit identifiers for each write operation before it is fully committed. When a member becomes unavailable, the system can later retrieve and apply these pre-established commit identifiers to restore consistency. This allows the system to maintain data consistency without requiring continuous synchronism during member unavailability.
2Reliability
If all cluster members must be synchronized before processing client requests, then data integrity is improved, but latency increases due to waiting for unavailable members
Solution Approach 1:
The system dynamically adjusts its synchronization behavior based on member availability. Instead of requiring all members to be available before processing requests, the system can process requests from available members and use asynchronous processes to synchronize with unavailable members later. This dynamic approach reduces latency while maintaining data integrity through selective synchronization.
Solution Approach 2:
The system maintains continuity of useful action by allowing available members to continue processing client requests without waiting for unavailable members. The asynchronous processes ensure that synchronization continues in the background, maintaining data integrity while keeping the system responsive to client requests.
3Productivity
If members operate independently without strict synchronism, then response time is improved, but partially inconsistent states arise requiring complex recovery processes
Solution Approach 1:
The system uses commit identifiers as a parameter to track and manage the state of each member's local storage space. By changing the state representation to use commit identifiers rather than full state synchronization, the system simplifies the management of partially inconsistent states while maintaining high productivity. The commit identifier acts as a concise parameter that captures the essential state information needed for recovery.
4Stability of the object's composition
If the system waits for all members to become available before processing requests, then data consistency is improved, but productivity decreases due to idle time
Solution Approach 1:
The system performs preliminary actions by processing requests from available members before all members are ready. The asynchronous processes handle the synchronization of unavailable members in the background. This preliminary action approach allows the system to maintain productivity while achieving state consistency without waiting for all members to become available.
Solution Approach 2:
The system introduces asynchronous processes as intermediaries between request processing and full synchronization. These intermediary processes allow the system to process requests from available members and then coordinate synchronization with unavailable members separately, maintaining both productivity and consistency without requiring all members to be available simultaneously.
Data Source
AI summary
A method, for handling partially inconsistent states among members of a cluster in an erratic storage network that responds to requests from a client, includes assigning a unique commit identifier corresponding to each successive modification of state of the cluster when an update request has been successfully completed and correlating an incoming request to a given member of the cluster with any commit identifiers necessary to satisfy the request. The method further includes detecting, on the incoming request to the given member of the cluster, whether the commit identifiers necessary to satisfy the request have been applied to the given member, and processing the incoming request based on whether the commit identifiers necessary to satisfy the request have been applied to the given member. Operation of the members can be asynchronous.


