Batch Number Request Ordering in Storage Clusters

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage system clusters face challenges in managing the execution order of requests, particularly when dealing with long-running or lost requests, as existing protocols lack the ability to specify arbitrary or exact orderings of requests within channels, leading to potential throughput issues and congestion.

Innovation Solution

The introduction of a batch number in the request ID allows for flexible execution ordering within channels, enabling arbitrary or concurrent execution of requests with the same batch number, while ensuring that requests with higher batch numbers are executed only after those with lower batch numbers, thus imposing a clear ordering constraint.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If requests are processed in strict sequence within channels, then ordering is maintained, but throughput decreases due to long-running requests blocking subsequent requests

Engineering Contradiction:
Improverequest orderingVSAvoidthroughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the request processing into batches using batch numbers. Requests with the same batch number can be processed concurrently or in any order, while maintaining ordering between different batches. This segmentation allows the system to process multiple requests within a batch simultaneously without violating the ordering constraint between batches, thereby improving throughput while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic batch number assignment that allows flexibility in request processing. The batch number provides a dynamic ordering mechanism where requests can be grouped into batches that can be processed in parallel, and the batch number dynamically controls the ordering constraint. This dynamic approach allows the system to adapt between strict ordering and concurrent processing based on batch boundaries.

Inventive Principle:
Principle #15Dynamics

2Productivity

If requests are processed in arbitrary order to improve throughput, then concurrency increases, but explicit ordering constraints are violated

Engineering Contradiction:
ImprovethroughputVSAvoidrequest ordering
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent changes the parameter of request identification by adding batch numbers to the request ID structure. This parameter change enables the system to distinguish between requests that can be processed in any order (same batch) and requests that require ordering (different batches). The batch number parameter provides a new dimension for controlling execution order without preventing concurrent processing of requests within the same batch.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If strict ordering is enforced for all requests, then ordering accuracy is maintained, but system complexity increases due to congestion management

Engineering Contradiction:
Improveordering accuracyVSAvoidcongestion management
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent extracts the ordering constraint from individual request processing and applies it at the batch level instead. By taking out the ordering requirement from each individual request and applying it only between batches, the system reduces the complexity of congestion management while maintaining ordering accuracy. Requests within a batch can be processed without strict ordering constraints, simplifying the management logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8762416B1System and method for specifying batch execution ordering of requests in a storage system cluster
Publication Date: 2014.06.24 NETAPP INC
  • US8762416B1 patent drawing
  • US8762416B1 patent drawing
  • US8762416B1 patent drawing

AI summary

A method for operating a computer data storage system is described. A plurality of requests are received from a client, each request of the plurality of requests having assigned a unique sequence number, each request being an input/output request to a data storage device. The plurality of requests is divided into a plurality of subsets of requests. A unique batch number is assigned to each subset of requests so that each subset of requests is assigned a unique batch number. A first subset of requests having a first batch number is executed in arbitrary order with respect to the sequence number of each request. A second subset of requests is executed in response to a second batch number after execution of all of the first subset of requests has completed.