IP Library Granted Patent US 11,860,788
Granted Patent B2
US 11,860,788 · App. 17/468,954 · Granted Jan 2, 2024

Prefetching data in a distributed storage system

Inventors: Gabriel Zvi BenHanokh (Tel-Aviv, IL); Yehoshua Salomon (Kfar Saba, IL)
Assignee: Red Hat, Inc.
G06F12/0862G06F3/061G06F3/0659G06F3/0679G06F2212/602
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,860,788
App. No.
17/468,954
Granted
Jan 2, 2024
Kind
B2
Abstract

Data can be prefetched in a distributed storage system. For example, a computing device can receive a message with metadata associated with at least one request for an input/output operation from a message queue. The computing device can determine, based on the message from the message queue, an additional IO operation predicted to be requested by a client subsequent to the at least one request for the IO operation. The computing device can send a notification to a storage node of a plurality of storage nodes associated with the additional IO operation for prefetching data of the additional IO operation prior to the client requesting the additional IO operation.

Claims (78)

1. A method comprising:

receiving, by a computing device, a message from a message queue, the message comprising metadata associated with at least one request for an IO operation request sent by a client associated with the message queue;

determining, by the computing device and based on the message from the message queue, an additional IO operation predicted to be requested by the client subsequent to the at least one request for the IO operation; and

sending, by the computing device, a notification to a storage node associated with the additional IO operation for prefetching data of the additional IO operation prior to the client requesting the additional IO operation, the storage node being part of a plurality of storage nodes that each lack load information for other storage nodes of the plurality of storage nodes.

2. The method of claim 1 , further comprising:

determining a probability of the client requesting the additional IO operation;

determining the probability exceeds a probability threshold; and

in response to the probability exceeding the probability threshold, sending the notification to the storage node associated with the additional IO operation.

3. The method of claim 1 , further comprising:

determining a probability of the client requesting the additional IO operation;

determining the probability is less than the probability threshold; and

determining the notification is not to be sent to the storage node.

4. The method of claim 1 , further comprising:

determining, by a management node, a number of clients associated with the message queue exceeds a threshold, each client of the clients being associated with a topic of the message queue that serves the client; and

generating a second message queue for servicing at least a portion of the clients.

5. The method of claim 1 , further comprising:

determining, by the management node, that a load associated with the computing device is below a minimum limit; and

disabling the computing device from processing subsequent metadata of the at least one request for the IO operation.

6. The method of claim 1 , further comprising:

in response to the storage node receiving the notification, retrieving the data of the additional IO operation from a storage device of the storage node; and

storing the data in a cache of the storage node prior to the storage node receiving a request for the additional IO operation from the client.

7. The method of claim 1 , wherein determining the additional IO operation that is associated with the client comprises:

inputting the metadata associated with the at least one request for the IO operation to a machine-learning model; and

receiving the additional IO operation as output of the machine-learning model.

8. A distributed storage system comprising:

a client configured to send at least one request for an input/output (IO) operation;

a message queue associated with the client configured to receive a message comprising metadata associated with the at least one request for the IO operation;

a plurality of storage nodes, each storage node of the plurality of storage nodes lacking load information for other storage nodes of the plurality of storage nodes; and

a computing device associated with the message queue and comprising:

a processor; and

a memory storing a prediction engine as instructions that are executable by the processor for causing the processor to:

receive the message from the message queue;

determine, based on the message, an additional IO operation predicted to be requested by the client subsequent to the at least one request for the IO operation; and

send a notification to a storage node of the plurality of storage nodes associated with the additional IO operation for prefetching data of the additional IO operation prior to the client requesting the additional IO operation.

9. The distributed storage system of claim 8 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine a probability of the client requesting the additional IO operation;

determine the probability exceeds a probability threshold; and

in response to the probability exceeding the probability threshold, send the notification to the storage node associated with the additional IO operation.

10. The distributed storage system of claim 8 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

determine a probability of the client requesting the additional IO operation;

determine the probability is less than the probability threshold; and

determine the notification is not to be sent to the storage node.

11. The distributed storage system of claim 8 , wherein the memory is a first memory, the processor is a first processor, and the instructions are first instructions, the distributed storage system further comprising:

a management node comprising:

second memory; and

a second processor including second instructions that are executable by the second processor for causing the second processor to:

determine a load associated with the computing device exceeds a load threshold; and

generate a second computing device for servicing at least a portion of the load.

12. The distributed storage system of claim 11 , wherein the second memory further includes second instructions that are executable by the second processor for causing the second processor to:

determine, by the management node, the load associated with the computing device is below a minimum limit; and

disable the computing device from processing subsequent metadata of the at least one request for the IO operation.

13. The distributed storage system of claim 8 , wherein the memory further includes instructions that are executable by the processor for causing the processor to:

in response to the storage node receiving the notification, retrieve the data of the additional IO operation from a storage device of the storage node; and

store the data in a cache of the storage node prior to the storage node receiving a request for the additional IO operation from the client.

14. The distributed storage system of claim 8 , wherein the memory further includes instructions that are executable by the processor for causing the processor to determine the additional IO operation that is associated with the client by:

inputting the metadata associated with the at least one request for the IO operation to a machine-learning model; and

receiving the additional IO operation as output of the machine-learning model.

15. A non-transitory computer-readable medium comprising program code that is executable by a processor for causing the processor to:

receive, by a computing device, a message from a message queue, the message comprising metadata associated with at least one request for an IO operation request sent by a client associated with the message queue;

determining, by the computing device and based on the message, an additional IO operation predicted to be requested by the client subsequent to the at least one request for the IO operation; and

sending, by the computing device, a notification to a storage node associated with the additional IO operation for prefetching data of the additional IO operation prior to the client requesting the additional IO operation, the storage node being part of a plurality of storage nodes that each lack load information for other storage nodes of the plurality of storage nodes.

16. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to:

determine a probability of the client requesting the additional IO operation;

determine the probability exceeds a probability threshold; and

in response to the probability exceeding the probability threshold, send the notification to the storage node associated with the additional IO operation.

17. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to:

determine a probability of the client requesting the additional IO operation;

determine the probability is less than the probability threshold; and

determine the notification is not to be sent to the storage node.

18. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to:

determine, by a management node, a load associated with the computing device exceeds a load threshold; and

generate a second computing device for servicing at least a portion of the load.

19. The non-transitory computer-readable medium of claim 18 , further comprising program code that is executable by the processor for causing the processor to:

determine, by the management node, the load associated with the computing device is below a minimum limit; and

disable the computing device from processing subsequent metadata of the at least one request for the IO operation.

20. The non-transitory computer-readable medium of claim 15 , further comprising program code that is executable by the processor for causing the processor to:

in response to the storage node receiving the notification, retrieve the data of the additional IO operation from a storage device of the storage node; and

store the data in a cache of the storage node prior to the storage node receiving a request for the additional IO operation from the client.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 8, 2021
From: BENHANOKH, GABRIEL ZVI; SALOMON, YEHOSHUA
To: RED HAT, INC.
Reel/Frame 057411/0577 →