Storage Array Manager Persistent Connections Reduce Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing storage array management systems experience slowdowns and inefficiencies when managing large numbers of storage arrays, leading to interface timeouts, long wait times, and communication delays due to the need to separately collect configuration state information from each array and the frequent setup and teardown of connections.

Innovation Solution

Implementing a local cache for storage array state information that is accessible by array managers, allowing for persistent connections for read and write operations, and using a thread pool to manage connections, which reduces the need for repeated connection setup and teardown, and employing a standard API for initial probing to determine array availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If separate communication with each storage array is performed to collect configuration state information, then current state information can be obtained, but substantial amounts of time and bandwidth are consumed leading to interface timeouts and long wait times

Engineering Contradiction:
Improveconfiguration state information accuracyVSAvoidtime to collect state information
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs preliminary actions by establishing persistent connections with storage arrays in advance and maintaining them in a pool of available connections. When state information is needed, the array manager can immediately query the pre-established connections without undergoing time-consuming connection setup procedures, thus reducing the time to collect configuration state information while maintaining accurate current state data

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system cushions against potential timeouts and delays by maintaining a pool of persistent connections that are already established and ready for use. This pre-prepared connection pool acts as a buffer that prevents the system from experiencing connection setup delays when needing to query storage array state, thereby cushioning against the time loss that would otherwise occur

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Adaptability or versatility

If frequent connection setup and teardown is performed for read and write operations, then communication can be established when needed, but communication stability deteriorates and latency increases

Engineering Contradiction:
Improveconnection flexibilityVSAvoidcommunication stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The system implements continuity of useful action by maintaining persistent connections with storage arrays over extended periods rather than repeatedly establishing and tearing down connections. The connection pool retains established connections for multiple read and write operations, eliminating the need for frequent connection setup and teardown. This continuous connection state improves communication stability and reduces latency while still allowing flexible access to multiple storage arrays through the persistent connection pool

Inventive Principle:
Principle #20Continuity of useful action

3Quantity of substance

If a large number of storage arrays are registered with the array manager, then storage network capacity increases, but scalability is limited due to slowdowns and timeouts

Engineering Contradiction:
Improvenumber of storage arraysVSAvoidarray management speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system performs preliminary actions by pre-establishing connections with storage arrays and maintaining them in a ready state within the connection pool. When managing a large number of arrays, the array manager can immediately query pre-connected arrays without undergoing time-consuming connection setup procedures. This preliminary connection establishment enables the system to scale to larger numbers of storage arrays while maintaining management speed, as the bulk of the connection overhead is performed in advance rather than on-demand

Inventive Principle:
Principle #10Preliminary action

4Ease of operation

If separate communication channels are used for each storage array, then array-specific management is enabled, but device complexity increases

Engineering Contradiction:
Improvearray-specific configuration capabilityVSAvoidconnection management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system applies universality by creating a unified connection pool that serves multiple storage arrays through a single management interface. Rather than requiring separate connection management logic for each array, the connection pool provides a universal mechanism that handles connections to any number of storage arrays in a standardized way. This multi-functional connection pool reduces device complexity while still enabling array-specific configuration and management operations through the same pooled connections

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10216426B2Highly scalable storage array management with reduced latency
Publication Date: 2019.02.26 ORACLE INT CORP
  • US10216426B2 patent drawing
  • US10216426B2 patent drawing
  • US10216426B2 patent drawing

AI summary

Systems and methods for increasing scalability and reducing latency in relation to managing large numbers of storage arrays of a storage network. Separate, dedicated, communication channels may be established between an array manager running on a server and each of a number of storage arrays for respectively performing reading and writing operations to limit the delays imposed by repeated array connection setup and teardown and improve array communication stability (e.g., as compared to performing read/write operations over the same array connection). The read connection can be used to maintain current state information (e.g., volumes, capacities, and the like) for a plurality of storage arrays in a local cache of the array manager that can be quickly accessed by the array manager, such as for presenting substantially current, summary-type state information of the various storage arrays to a user (e.g., upon the user requesting to configure a particular storage array).