Reserved Log Sequence Numbers for Two-Phase Commit Fairness
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed storage systems, the processing of different classes of storage I/O requests, such as VM write requests and resynchronization (resync) write requests, can lead to unfairness and delays in two-phase commit operations, causing I/O performance issues due to bottlenecks and underutilization.
Innovation Solution
The implementation of reserved log sequence numbers (LSNs) for slower classes of storage I/O requests allows faster classes to use reserved LSNs, ensuring they are not unduly delayed, thereby maintaining fairness and optimizing I/O performance by rearranging the order of commit operations based on completion status rather than sequential assignment.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If storage I/O requests are processed in sequential order in two-phase commit operations, then processing simplicity is maintained, but faster I/O requests are delayed by slower requests causing unfairness and performance degradation
Solution Approach 1:
The system performs preliminary actions by assigning reserved log sequence numbers to storage I/O requests before actual processing. This allows the system to pre-determine processing priorities and prevent delays caused by sequential processing, enabling faster requests to be handled without being blocked by slower requests while maintaining orderly processing through the reserved LSN mechanism
Solution Approach 2:
The system dynamically adjusts processing order based on completion status and reserved LSN assignments rather than using fixed sequential ordering. The two-phase commit engine can reorder requests dynamically, allowing faster I/O requests to be committed before slower ones when conditions permit, thus adapting processing behavior to actual system state and performance characteristics
2Device complexity
If all storage I/O requests are processed in the same queue without differentiation, then queue management is simplified, but fairness between different classes of I/O requests is compromised
Solution Approach 1:
The system applies local quality by assigning different reserved LSN ranges to different classes of storage I/O requests (e.g., VM write requests vs. resync write requests). This allows each class to have tailored processing characteristics while sharing the same physical queue, providing fairness and priority handling without requiring separate queues or complex multi-queue management structures
Solution Approach 2:
The reserved log sequence numbers serve as an intermediary mechanism that mediates between different classes of I/O requests. By using reserved LSNs as a intermediary layer, the system can indirectly control processing order and fairness without directly managing complex priority queues or scheduling mechanisms, thus maintaining queue simplicity while achieving fairness through the LSN assignment and reordering process
Data Source
AI summary
System and method for managing different classes of storage input/output (I/O) requests for a two-phase commit operation in a distributed storage system assigns reserved log sequence values to each of storage I/O requests of a first class, which are added to a two-phase commit queue. The reserved log sequence values of the storage I/O requests of the first class in the two-phase commit queue are assigned to some of the storage I/O requests of the second class, which are added to the two-phase commit queue.


