IP Library Granted Patent US 12,013,761
Granted Patent B2
US 12,013,761 · App. 17/746,184 · Granted Jun 18, 2024

Adaptive throttling in a universal backup host

Inventors: Haihong Wang (Fremont, CA); Gopikrishnan Aditya Suresh (Culver City, CA)
Assignee: Rubrik, Inc.
G06F11/1435G06F9/3009G06F9/5027G06F11/1461G06F11/1464G06F11/1469G06F16/128G06F2209/5011G06F2209/5018
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 12,013,761
App. No.
17/746,184
Granted
Jun 18, 2024
Kind
B2
Abstract

Systems and methods to throttle a universal backup host are described. The system receives responses, over a network, corresponding to one or more requests by utilizing one or more threads from a thread pool. The threads include a first thread. The requests include a first request. The receiving the responses includes receiving a first response corresponding to the first request by utilizing the first thread, the first response includes a first metadata item. The system processes the responses by generating a first latency based on the first response and incrementing a number for registering requests based on the first response. Next, the system aggregates samples. The samples include the first latency and the number of requests. Next, the system resizes the thread pool based on the aggregating and backs up the file set from the source host based on the metadata.

Claims (69)

1. A system for backing up a file set from a source host, the system comprising:

at least one processor and memory having instructions that, when executed, cause the at least one processor to perform operations comprising:

receiving responses, over a network, corresponding to one or more requests by utilizing one or more threads from a thread pool, the one or more threads including a first thread, the one or more requests including a first request, the receiving the responses including receiving a first response corresponding to the first request by utilizing the first thread, the first response including a first metadata item;

processing the responses including processing the first response, comprising:

generating a first latency based on the first response; and

incrementing a number of requests based on the first response;

aggregating samples, the samples including the first latency and the number of requests;

resizing the thread pool based on the aggregating; and

backing up the file set from the source host based on the first metadata item.

2. The system of claim 1 , wherein the operations are further comprising:

executing a job, at a backup host, to back up the file set from the source host responsive to a triggering event, the backing up of the file set including fetching metadata from the source host;

identifying a first operation set from a plurality of operation sets responsive to identifying a file sharing protocol being utilized by the backup host and the source host, wherein the first operation set includes a first operation, the identifying being performed by the at least one processor; and

communicating, in parallel, the one or more requests, over the network, to the source host by utilizing the one or more threads from the thread pool, the communicating the one or more requests including communicating the first request, over the network, to the source host by utilizing the first thread to fetch the first metadata item, wherein the file sharing protocol is a Network File System protocol and the first operation set is a Unix operation set.

3. The system of claim 2 , wherein the file sharing protocol is Server Message Block protocol and the first operation set is a Windows operation set.

4. The system of claim 3 , wherein the first request includes the first operation, for execution on the source host, to generate the first metadata item.

5. The system of claim 1 , wherein the generating the first latency further comprises:

identifying a receive time responsive to the first thread receiving the first response;

subtracting a transmit time from the receive time to generate the first latency; and

storing the first latency in a first sample in a first moving average including a first plurality of samples.

6. The system of claim 5 , wherein the aggregating the samples further comprises:

aggregating the first latency over the first plurality of samples to generate a first average latency of requests;

storing the first average latency of requests in a first sample in a second moving average including a second plurality of samples;

aggregating the number of requests over the first plurality of samples to generate a first average number of requests; and

storing the first average number of requests in the first sample in the second moving average including the second plurality of samples.

7. The system of claim 6 , wherein the resizing further comprises:

computing an average latency ratio based on the first average latency of requests and a second average latency of requests; and

computing an average number of requests ratio based on the first average number of requests and a second average number of requests.

8. The system of claim 7 , wherein the resizing further comprises increasing a size of the thread pool responsive to identifying the average number of requests ratio as being greater than the average latency ratio, and wherein the increasing the size of the thread pool includes increasing the size of the thread pool by one thread.

9. The system of claim 7 , wherein the resizing further comprises decreasing a size of the thread pool responsive to identifying the average number of requests ratio as being less than the average latency ratio, and wherein the decreasing the size of the thread pool includes decreasing the thread pool by a percentage of the size of the thread pool and wherein the percentage is configurable.

10. A method for backing up a file set from a source host, the method comprising:

receiving responses, over a network, corresponding to one or more requests by utilizing one or more threads from a thread pool, the one or more threads including a first thread, the one or more requests including a first request, the receiving the responses including receiving a first response corresponding to the first request by utilizing the first thread, the first response including a first metadata item;

processing the responses including processing the first response, comprising:

generating a first latency based on the first response; and

incrementing a number of requests based on the first response;

aggregating samples, the samples including the first latency and the number of requests;

resizing the thread pool based on the aggregating; and

backing up the file set from the source host based on the first metadata item.

11. The method of claim 10 , further comprising:

executing a job, at a backup host, to back up the file set from the source host responsive to a triggering event, the backing up of the file set including fetching metadata from the source host;

identifying a first operation set from a plurality of operation sets responsive to identifying a file sharing protocol being utilized by the backup host and the source host, wherein the first operation set includes a first operation, the identifying being performed by at least one processor; and

communicating, in parallel, the one or more requests, over the network, to the source host by utilizing the one or more threads from the thread pool, the communicating the one or more requests including communicating the first request, over the network, to the source host by utilizing the first thread to fetch the first metadata item, wherein the file sharing protocol is a Network File System protocol and the first operation set is a Unix operation set.

12. The method of claim 11 , wherein the file sharing protocol is Server Message Block protocol and the first operation set is a Windows operation set.

13. The method of claim 12 , wherein the first request includes the first operation, for execution on the source host, to generate the first metadata item.

14. The method of claim 10 , wherein the generating the first latency further comprises:

identifying a receive time responsive to the first thread receiving the first response;

subtracting a transmit time from the receive time to generate the first latency; and

storing the first latency in a first sample in a first moving average including a first plurality of samples.

15. The method of claim 14 , wherein the aggregating the samples further comprises:

aggregating the first latency over the first plurality of samples to generate a first average latency of requests;

storing the first average latency of requests in a first sample in a second moving average including a second plurality of samples;

aggregating the number of requests over the first plurality of samples to generate a first average number of requests; and

storing the first average number of requests in a first sample in the second moving average including the second plurality of samples.

16. The method of claim 15 , wherein the resizing further comprises:

computing an average latency ratio based on the first average latency of requests and a second average latency of requests; and

computing an average number of requests ratio based on the first average number of requests and a second average number of requests.

17. The method of claim 16 , wherein the resizing further comprises increasing a size of the thread pool responsive to identifying the average number of requests ratio as being greater than the average latency ratio, and wherein the increasing the size of the thread pool includes increasing the size of the thread pool by one thread.

18. The method of claim 16 , wherein the resizing further comprises decreasing a size of the thread pool responsive to identifying the average number of requests ratio as being less than the average latency ratio, and wherein the decreasing the size of the thread pool includes decreasing the thread pool by a percentage of the size of the thread pool and wherein the percentage is configurable.

19. A machine-storage medium and storing a set of instructions that, when executed by a processor, causes a machine to perform operations for backing up a file set from a source host, the operations comprising:

receiving responses, over a network, corresponding to one or more requests by utilizing one or more threads from a thread pool, the one or more threads including a first thread, the one or more requests including a first request, the receiving the responses including receiving a first response corresponding to the first request by utilizing the first thread, the first response including a first metadata item;

processing the responses including processing the first response, comprising:

generating a first latency based on the first response; and

incrementing a number of requests based on the first response;

aggregating samples, the samples including the first latency and the number of requests;

resizing the thread pool based on the aggregating; and

backing up the file set from the source host based on the first metadata item.

20. The machine-storage medium of claim 19 , wherein the operations are further comprising:

executing a job, at a backup host, to back up the file set from the source host responsive to a triggering event, the backing up of the file set including fetching metadata from the source host;

identifying a first operation set from a plurality of operation sets responsive to identifying a file sharing protocol being utilized by the backup host and the source host, wherein the first operation set includes a first operation, the identifying being performed by at least one processor; and

communicating, in parallel, the one or more requests, over the network, to the source host by utilizing one or more threads from the thread pool, the communicating the one or more requests including communicating the first request, over the network, to the source host by utilizing the first thread to fetch the first metadata item, wherein the file sharing protocol is a Network File System protocol and the first operation set is a Unix operation set.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2022
From: WANG, HAIHONG; SURESH, GOPIKRISHNAN ADITYA
To: RUBRIK, INC.
Reel/Frame 061902/0296 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
Continuity (2)
Continuation 16879420 · May 20, 2020
Related Publication 20220276932A1 · Sep 1, 2022