IP Library Granted Patent US 11,775,202
Granted Patent B2
US 11,775,202 · App. 17/372,737 · Granted Oct 3, 2023

Read stream identification in a distributed storage system

Inventor: Doron Tal (Geva Carmel, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0655G06F3/0604G06F3/067
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,775,202
App. No.
17/372,737
Granted
Oct 3, 2023
Kind
B2
Abstract

An apparatus comprises at least a first storage node of a plurality of storage nodes of a distributed storage system. The first storage node comprises a processor coupled to a memory. The first storage node is configured to receive from a host device a read operation directed to a particular portion of a logical address space of the storage system, where the logical address space is divided among the storage nodes. The first storage node is further configured to determine that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space, and to send, to at least a second one of the storage nodes, an indication of the determination made by the first storage node. The stream of multiple read operations may comprise a sequential read stream directed to respective contiguous portions of the logical address space.

Claims (55)

1. An apparatus comprising:

at least a first storage node of a plurality of storage nodes of a distributed storage system, the first storage node comprising a processor coupled to a memory;

the first storage node being configured:

to receive from a host device a read operation directed to a particular portion of a logical address space of the storage system, the logical address space being divided among the storage nodes;

to determine that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space;

to send to at least a second one of the storage nodes an indication of the determination made by the first storage node; and

to maintain a data structure having a plurality of entries, wherein the entries are indexed based at least in part on logical block addresses in the logical address space, and the entries comprise at least respective confidence values for corresponding portions of the logical address space, and further wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises making the determination utilizing one or more of the entries of the data structure;

wherein the data structure comprises a key-value data structure and a given entry of the data structure comprises (i) a key that is determined based at least in part on a logical storage volume identifier and a logical block address in the logical address space, and (ii) a corresponding one of the confidence values.

2. The apparatus of claim 1 wherein the logical address space is divided among the storage nodes in accordance with a specified sharding granularity in which different logical address space shards, each of a particular size given by the sharding granularity, are assigned to different ones of the storage nodes.

3. The apparatus of claim 2 wherein determining that the read operation is potentially part of the stream of read operations comprises determining that the read operation exhibits a predetermined relationship to the sharding granularity.

4. The apparatus of claim 3 wherein the predetermined relationship comprises the particular portion of the logical address space to which the read operation is directed having a size that is the same as the particular size given by the sharding granularity.

5. The apparatus of claim 1 wherein sending to at least a second one of the storage nodes an indication of the determination made by the first storage node comprises:

identifying the second storage node as a particular one of the storage nodes other than the first storage node that is assigned a next contiguous portion of the logical address space; and

sending the indication of the determination to the second storage node.

6. The apparatus of claim 1 wherein the indication of the determination made by the first storage node comprises a read stream identification hint generated by the first storage node for a next contiguous portion of the logical address space.

7. The apparatus of claim 1 wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises:

identifying a next contiguous portion of the logical address space having a same size as the particular portion of the logical address space to which the read operation is directed; and

determining a confidence value for the next contiguous portion.

8. The apparatus of claim 7 wherein the indication sent to at least the second storage node comprises the confidence value determined for the next contiguous portion.

9. The apparatus of claim 7 wherein determining the confidence value comprises:

determining whether or not the next contiguous portion has a corresponding entry in the data structure maintained by the first storage node;

responsive to the next contiguous portion having a corresponding entry in the data structure, updating the confidence value and storing the updated confidence value in the corresponding entry; and

responsive to the next contiguous portion not having a corresponding entry in the data structure, creating a corresponding entry in the data structure, initializing the confidence value and storing the initialized confidence value in the corresponding entry.

10. The apparatus of claim 1 wherein the indication of the determination made by the first storage node is utilized in the second storage node to control prefetching of at least one of read metadata and read data in the second storage node.

11. The apparatus of claim 1 wherein the first storage node is further configured:

to receive from another one of the storage nodes an indication of a determination made by that other storage node that a read operation received by that other storage node is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space; and

to control prefetching of at least one of read metadata and read data in the first storage node based at least in part on the indication received from the other storage node.

12. The apparatus of claim 11 wherein controlling prefetching of at least one of read metadata and read data in the first storage node based at least in part on the indication received from the other storage node comprises:

comparing a confidence value in the indication received from the other storage node to a threshold; and

initiating the prefetching of at least one of read metadata and read data in the first storage node responsive to the confidence value exceeding the threshold.

13. The apparatus of claim 1 wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises determining that the read operation is potentially part of a sequential stream of multiple read operations directed to respective contiguous portions of the logical address space.

14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by a first storage node of a plurality of storage nodes of a distributed storage system, the first storage node comprising a processor coupled to a memory, causes the first storage node:

to receive from a host device a read operation directed to a particular portion of a logical address space of the storage system, the logical address space being divided among the storage nodes;

to determine that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space;

to send to at least a second one of the storage nodes an indication of the determination made by the first storage node; and

to maintain a data structure having a plurality of entries, wherein the entries are indexed based at least in part on logical block addresses in the logical address space, and the entries comprise at least respective confidence values for corresponding portions of the logical address space, and further wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises making the determination utilizing one or more of the entries of the data structure;

wherein the data structure comprises a key-value data structure and a given entry of the data structure comprises (i) a key that is determined based at least in part on a logical storage volume identifier and a logical block address in the logical address space, and (ii) a corresponding one of the confidence values.

15. The computer program product of claim 14 wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises:

identifying a next contiguous portion of the logical address space having a same size as the particular portion of the logical address space to which the read operation is directed; and

determining a confidence value for the next contiguous portion.

16. A method performed by a first storage node of a plurality of storage nodes of a distributed storage system, the first storage node comprising a processor coupled to a memory, the method comprising:

receiving from a host device a read operation directed to a particular portion of a logical address space of the storage system, the logical address space being divided among the storage nodes;

determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space;

sending to at least a second one of the storage nodes an indication of the determination made by the first storage node; and

maintaining a data structure having a plurality of entries, wherein the entries are indexed based at least in part on logical block addresses in the logical address space, and the entries comprise at least respective confidence values for corresponding portions of the logical address space, and further wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises making the determination utilizing one or more of the entries of the data structure;

wherein the data structure comprises a key-value data structure and a given entry of the data structure comprises (i) a key that is determined based at least in part on a logical storage volume identifier and a logical block address in the logical address space, and (ii) a corresponding one of the confidence values.

17. The method of claim 16 wherein determining that the read operation is potentially part of a stream of multiple read operations directed to respective particular portions of the logical address space comprises:

identifying a next contiguous portion of the logical address space having a same size as the particular portion of the logical address space to which the read operation is directed; and

determining a confidence value for the next contiguous portion.

18. The method of claim 17 wherein the indication sent to at least the second storage node comprises the confidence value determined for the next contiguous portion.

19. The method of claim 17 wherein determining the confidence value comprises:

determining whether or not the next contiguous portion has a corresponding entry in the data structure maintained by the first storage node;

responsive to the next contiguous portion having a corresponding entry in the data structure, updating the confidence value and storing the updated confidence value in the corresponding entry; and

responsive to the next contiguous portion not having a corresponding entry in the data structure, creating a corresponding entry in the data structure, initializing the confidence value and storing the initialized confidence value in the corresponding entry.

20. The method of claim 16 wherein the indication of the determination made by the first storage node is utilized in the second storage node to control prefetching of at least one of read metadata and read data in the second storage node.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) Recorded Jun 10, 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) Recorded Jun 10, 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) Recorded Jun 10, 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 12, 2021
From: TAL, DORON
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056821/0781 →
Continuity (1)
Related Publication 20230009138A1 · Jan 12, 2023