IP Library Granted Patent US 11,288,196
Granted Patent B2
US 11,288,196 · App. 16/742,947 · Granted Mar 29, 2022

Efficient data read operation

Inventors: Gabriel Benhanokh (Tel-Aviv, IL); Ian Wigmore (Westborough, MA); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F12/0835G06F9/544G06F12/084G06F13/1663G06F2212/7207
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 11,288,196
App. No.
16/742,947
Granted
Mar 29, 2022
Kind
B2
Abstract

In response to receiving a read metadata request from the host system for a data portion, the storage system may determine a status and location of the data portion, including determining whether the data portion is in a cache of the storage system. If the data portion is in the cache, the storage system may send a response that includes the data portion itself along with the status and location of the data portion. If the data portion is not in the cache, the storage system may send a response to the read metadata request that includes the status and location of the data portion, but not the data portion itself. The host system may be configured to determine whether the data portion has been returned with the metadata response, and if so, refrain from sending a separate data request, for example, to retrieve the data portion from cache.

Claims (49)

1. A method comprising:

receiving on a host system a read request from a host application, the read request specifying to read a data portion from a data storage system;

in response to receiving the read request from the host application, the host system sending an instruction to the data storage system, the instruction specifying to read metadata for the data portion in association with the read request made by the host application;

receiving the instruction on the data storage system;

in response to receiving the instruction, determining whether the data portion is present in a cache of the data storage system; and

responsive to determining that the data portion is present in the cache, sending a response to the instruction that includes a location of the data portion in the cache and the data portion itself,

wherein the host system includes an operating system and a storage system interface directly connected to an internal fabric of the data storage system,

wherein the operating system communicates with the storage system interface over one or more peripheral device interconnects,

wherein the operating system receives the read request specifying a read operation, and, in response to receiving the read request, sends an IO communication specifying the read operation over one of the one or more peripheral device interconnects to the storage system interface, and

wherein the storage system interface sends the instruction in response to receiving the TO communication from the operating system.

2. The method of claim 1 , further comprising:

refraining from sending a separate read instruction to the cache to retrieve the data portion based on the data portion being included in the response to the instruction.

3. The method of claim 1 , wherein the instruction is sent from the host system to the global memory of the data storage system on the internal fabric independent of any director of the data storage system.

4. A system comprising:

one or more processors; and

a memory comprising code thereon that, when executed, performs a method comprising:

receiving on a host system a read request from a host application, the read request specifying to read a data portion from a data storage system,

in response to receiving the read request from the host application, the host system sending an instruction to the data storage system, the instruction specifying to read metadata for the data portion in association with the read request made by the host application,

receiving the instruction on the data storage system,

in response to receiving the instruction, determining whether the data portion is present in a cache of the data storage system, and

responsive to determining that the data portion is present in the cache, sending a response to the instruction that includes a location of the data portion in the cache and the data portion itself,

wherein the host system includes:

an operating system; and

a storage system interface directly connected to an internal fabric of the data storage system,

wherein the operating system communicates with the storage system interface over one or more peripheral device interconnects,

and wherein the method further includes:

the operating system receiving the read request specifying a read operation;

in response to receiving the read request, the operating system sending an TO communication specifying the read operation over one of the one or more peripheral device interconnects to the storage system interface; and

the storage system interface sending the instruction in response to receiving the IO communication from the operating system.

5. The system of claim 4 , wherein the method further includes: responsive to determining that the data portion is not present in the cache, sending a response to the instruction that includes a location of the data portion on a physical storage device of the data storage system, and does not include the data portion itself.

6. The system of claim 4 , wherein the method further includes:

refraining from sending a separate read instruction to the cache to retrieve the data portion based on the data portion being included in the response to the instruction.

7. The system of claim 4 , wherein the instruction is sent from the host system to the global memory of the storage system on the internal fabric independent of any director of the data storage system.

8. Non-transitory computer-readable media having software stored thereon, the software comprising:

executable code that receives on a host system a read request from a host application, the read request specifying to read a data portion from a data storage system;

executable code that, in response to receiving the read request from the host application, controls the host system sending an instruction to the data storage system, the instruction specifying to read metadata for the data portion in association with the read request made by the host application;

executable code that receives the instruction on the data storage system;

executable code that, in response to receiving the instruction, determines whether the data portion is present in a cache of the data storage system; and

executable code that, responsive to determining that the data portion is present in the cache, sends a response to the instruction that includes a location of the data portion in the cache and the data portion itself,

wherein the host system includes an operating system and a storage system interface directly connected to an internal fabric of the data storage system,

wherein the operating system communicates with the storage system interface over one or more peripheral device interconnects, and

wherein the software further comprises:

executable code that controls the operating system to receive the read request specifying a read operation, and, in response to receiving the read request, to send an TO communication specifying the read operation over one of the one or more peripheral device interconnects to the storage system interface; and

executable code that controls the storage system interface to send the instruction in response to receiving the IO communication from the operating system.

9. The non-transitory computer-readable media of claim 8 , wherein the software further comprises:

executable code that, responsive to determining that the data portion is not present in the cache, controls sending a response to the instruction that includes a location of the data portion on a physical storage device of the data storage system, and does not include the data portion itself.

10. The non-transitory computer-readable media of claim 8 , wherein the software further comprises:

executable code that refrains from sending a separate read instruction to the cache to retrieve the data portion based on the data portion being included in the response to the instruction.

11. The non-transitory computer-readable media of claim 8 , wherein the instruction is sent from the host system to the global memory of the data storage system on the internal fabric independent of any director of the data storage system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052216/0758) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2020
From: BENHANOKH, GABRIEL; WIGMORE, IAN; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051517/0351 →