SDNAS Share Priority Table for IO Scheduling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current Software Defined Network Attached Storage (SDNAS) systems lack the ability to provide differentiated prioritization between shares and protocol clients, leading to unequal data transfer rates and inability to prioritize IO operations on a per-share basis.

Innovation Solution

Implementing a share priority table within the SDNAS process to assign and manage share priority values, which are used to specify IO and CPU priorities, allowing for differentiated access and throughput based on share priority levels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If differentiated share prioritization is implemented using a share priority table, then IO operation prioritization and CPU priority adjustment are improved, but system complexity increases

Engineering Contradiction:
ImproveIO operation prioritization efficiencyVSAvoidshare priority table management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The share priority table is pre-configured with priority values for different shares before IO operations occur. This preliminary assignment of priorities allows the system to quickly reference and apply appropriate priority levels during IO operations, improving throughput while maintaining manageable system complexity through advance planning

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The share priority table acts as an intermediary data structure between the SDNAS process and the operating system scheduling mechanism. It translates share identifiers into priority values that the OS scheduler can use, providing a clean interface that manages complexity by isolating the prioritization logic from both the application layer and the kernel scheduling layer

Inventive Principle:
Principle #24Intermediary (Mediator)

2Speed

If per-share IO priority specification is enabled, then data transfer rate differentiation is improved, but system resource overhead increases

Engineering Contradiction:
Improvedata transfer rateVSAvoidsystem resource overhead
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

Instead of applying uniform priority handling to all shares, the system assigns different priority values to different shares based on their specific requirements. This local differentiation allows critical shares to receive higher priority processing and faster data transfer rates, while non-critical shares use standard handling, optimizing resource utilization and reducing overall system overhead

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes the priority parameter for different shares and IO operations based on the share priority table. By adjusting the priority parameter rather than fundamentally changing system architecture or resource allocation mechanisms, the system achieves differentiated data transfer rates with minimal additional overhead

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11747997B2Method and apparatus for providing differentiated share prioritization in a storage system
Publication Date: 2023.09.05 EMC IP HLDG CO LLC
  • US11747997B2 patent drawing
  • US11747997B2 patent drawing
  • US11747997B2 patent drawing

AI summary

A Software Defined Network Attached Storage (SDNAS) executes on a storage system to provide access to shared file systems, referred to as “shares”, on the storage system. Users access the shares using protocol clients. To enable the SDNAS to provide differentiated prioritization between the various shares, a share priority table is maintained by the SDNAS. As shares are created, or optionally after the shares have been created, each share is assigned a share priority which is stored in the share priority table. When an IO operation is received from a protocol client on a share, the SDNAS process determines a share priority value of the share from the share priority table. The share priority value is used to specify an IO priority which used by the operating system scheduling mechanism to schedule the IO operation and to establish a CPU priority for the IO operation.