Reserved Log Sequence Numbers for Two-Phase Commit Fairness

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

VSEngineering 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

Engineering Contradiction:
Improveprocessing simplicityVSAvoidI/O performance
Core Design Contradiction:
Ease of operationVSProductivity

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improvequeue management complexityVSAvoidI/O fairness
Core Design Contradiction:
Device complexityVSReliability

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

Inventive Principle:
Principle #3Local quality

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

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12164505B2Two-phase commit using reserved log sequence values
Publication Date: 2024.12.10 VMWARE INC
  • US12164505B2 patent drawing
  • US12164505B2 patent drawing
  • US12164505B2 patent drawing

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.