Transient Error Handling in Distributed Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem capacityVSAvoidtransient errors
Core Design Contradiction:
Adaptability or versatilityVSReliability

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the system re-transmits notifications for completed requests, then reliability of notification delivery is improved, but system complexity increases

Engineering Contradiction:
Improvenotification deliveryVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

Inventive Principle:
Principle #23Feedback

3Measurement precision

If the system performs database searches for every block layer request, then request processing accuracy is improved, but processing time increases

Engineering Contradiction:
Improverequest processing accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11593347B2Transient software error handling in a distributed system
Publication Date: 2023.02.28 EMC IP HLDG CO LLC
  • US11593347B2 patent drawing
  • US11593347B2 patent drawing
  • US11593347B2 patent drawing

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.