IP Library Granted Patent US 9,304,901
Granted Patent B2
US 9,304,901 · App. 13/804,116 · Granted Apr 5, 2016

System and method for handling I/O write requests

Inventor: Bret S Weber (Wichita, KS)
Assignee: DATADIRECT NETWORKS INC.
G06F12/0246G06F11/16G06F12/0868G06F2212/286
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,304,901
App. No.
13/804,116
Granted
Apr 5, 2016
Kind
B2
Abstract

System and methods for managing I/O write requests of host systems to physical storage. A storage subsystem includes a plurality of storage devices where each storage device is configured to provide data storage. At least a pair of redundant controllers is connected to the plurality of storage devices for executing the I/O write requests from the host systems. A received I/O write request is initially saved in a controller memory of one of the controllers and mirrored in controller memory of the other controller. In one embodiment, the I/O write request is transferred to a flash memory device for subsequent transfer to the storage devices. Once transferred to the flash memory device, the I/O write request may be flushed from the controller memories. The I/O write request may then be transferred to the storage devices from the flash memory device as a background operation.

Claims (18)

1. A method of managing write requests of a host system to a plurality of storage subsystems, each storage subsystem comprising a plurality of storage devices configured as one of more logical units configured for providing data storage and each storage subsystem further comprising a pair of storage controllers coupled to the storage devices, the method including:

receiving an I/O write request at a first storage controller of a storage subsystem, the I/O write request addressing a storage location for data within the storage devices of the storage subsystem;

allocating the I/O write request to a first set of allocated storage blocks in a first cache memory of the first controller and a second set of allocated storage blocks in a second cache memory of a second controller;

transferring the I/O write request to both a read cache and a mirror cache of a solid state drive (SSD), wherein the mirror cache mirrors unexecuted I/O write requests in the read cache of the SSD that address storage locations within the storage devices;

subsequent to transferring the I/O write request to the SSD, de-allocating the first and second sets of allocated storage blocks in the first and second cache memories of the first and second controllers and subsequent to transferring the I/O write request data to the storage devices of the storage subsystem, flushing the I/O write request from the mirror cache while maintaining the I/O write request in the read cache for subsequent access.

2. The method of claim 1 , further comprising:

determining, at one of the controllers, a level of cache utilization of the cache memory of the controller; and

upon determining the level of cache utilization being below a predetermined threshold, transferring the I/O write request to the storage devices directly from the controller.

3. The method of claim 1 , further comprising:

determining, at one of the controllers, a level of cache utilization of the cache memory of the controller; and

upon determining the level of cache utilization being above a predetermined threshold, simultaneously transferring the I/O write request to both of the read cache and mirror cache of the SSD.

4. The method of claim 1 , further comprising transferring the I/O write request from the mirror cache of the SSD to the storage devices.

5. The method during of claim 4 , wherein the I/O write request is transferred during idle of one of the first and second controllers.

6. The method of claim 4 , wherein the step of de-allocating occurs prior to the I/O write request being transferred to the storage devices from the mirror cache of the SSD.

7. The method of claim 1 , wherein the transferring step comprises:

transferring the I/O write request to first and second SSDs, wherein each SSD includes a read cache and a mirror cache, wherein a first mirror cache of the first SSD mirrors unexecuted I/O write requests in a second read cache of the second SSD and a second mirror cache of the second SSD mirrors unexecuted I/O write requests in a first read cache of the first SSD.

8. The method of claim 7 , wherein the transferring step comprises transferring the I/O write request to a read cache in a first of the SSDs and transferring the I/O write request to a mirror cache in a second of the SSDs.

9. The method of claim 7 , wherein the transferring step comprises transferring the I/O write request to a read cache and mirror cache of a first of the SSDs and transferring the I/O write request to a read cache and mirror cache of a second of the SSDs.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jun 15, 2026
From: PREFERRED BANK
To: DATADIRECT NETWORKS, INC.
Reel/Frame 074955/0540 →
RELEASE OF SECURITY INTEREST Recorded Jun 12, 2026
From: TRIPLEPOINT CAPITAL LLC
To: DATADIRECT NETWORKS, INC.
Reel/Frame 075737/0508 →
RELEASE OF SECURITY INTEREST Recorded Apr 21, 2026
From: TRIPLEPOINT CAPITAL LLC
To: DATADIRECT NETWORKS, INC.
Reel/Frame 075478/0178 →
SECURITY INTEREST Recorded Oct 13, 2018
From: DATADIRECT NETWORKS, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047228/0734 →
SECURITY INTEREST Recorded Jan 13, 2015
From: DATADIRECT NETWORKS, INC.
To: PREFERRED BANK, AS LENDER
Reel/Frame 034693/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2013
From: WEBER, BRET S
To: DATADIRECT NETWORKS INC
Reel/Frame 031767/0355 →
Continuity (1)
Related Publication 20140281123A1 · Sep 18, 2014