Transient Error Handling in Distributed Storage Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, there is a challenge in ensuring proper synchronization and completion of reservation requests across multiple storage servers, leading to potential system errors and transient errors that can cause reservation requests to fail or time out.
Innovation Solution
A method where a primary storage server receives and processes block layer reservation requests, updates a status database, and transmits notifications to secondary servers to ensure completion and prevent duplicate execution of reservation requests, thereby maintaining a single point of decision-making and reducing errors.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If a distributed storage system processes block layer reservation requests across multiple servers, then system capacity and availability are improved, but transient errors and synchronization issues increase
Solution Approach 1:
The patent introduces a database as an intermediary component that stores the state of reservation requests. When a server receives a block layer request, it queries the database to check the current state before processing, and updates the database after completion. This intermediary database acts as a central coordination point that prevents duplicate processing and ensures all servers have consistent information about reservation request states, thereby reducing transient errors while maintaining distributed system capacity.
2Reliability
If the system re-transmits notifications for completed requests, then reliability of notification delivery is improved, but system complexity increases
Solution Approach 1:
The patent implements a feedback mechanism where servers periodically query the database to check the state of reservation requests. When a server sends a notification about a completed request, it can re-query the database to verify whether the notification was successfully received and processed by other servers. If the database indicates the request state hasn't been updated by receiving servers, the system re-transmits the notification. This feedback loop ensures reliable notification delivery without requiring complex retransmission protocols, as the database state serves as the feedback signal.
3Measurement precision
If the system performs database searches for every block layer request, then request processing accuracy is improved, but processing time increases
Solution Approach 1:
The patent performs database searches for reservation request states as a preliminary action before processing block layer requests. By checking the database state in advance, the system determines whether a request has already been completed or is pending, allowing it to make informed processing decisions. This preliminary verification prevents duplicate processing and ensures accuracy. The patent optimizes this approach by using efficient database query mechanisms and by only performing searches when necessary (e.g., when receiving new block layer requests), rather than continuously, thus balancing accuracy with processing time.
Data Source
AI summary
A method for use in a storage system is disclosed, comprising: receiving, at a first server in the storage system, a given block layer request for reservation of a storage resource, by the first server, an identifier corresponding to the given block layer request; performing a search of a database to detect whether the given block layer request has been completed, the search being performed by the first server, the search being performed based on the identifier corresponding to the given block layer request; when the database indicates that the given block layer request has not been completed: completing the given block layer request and transmitting a notification that the given block layer request is completed; and when the database indicates that given block layer request has been completed, re-transmitting a notification that the given block layer request is completed.


