IP Library Granted Patent US 10,630,602
Granted Patent B1
US 10,630,602 · App. 16/154,518 · Granted Apr 21, 2020

Resource allocation using restore credits

Inventor: Keyur B. Desai (Cary, NC)
Assignee: EMC IP HOLDING COMPANY LLC
H04L47/783G06F11/1464G06F11/1469H04L47/805H04L47/822H04L67/2842H04L67/10H04L67/42
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 10,630,602
App. No.
16/154,518
Granted
Apr 21, 2020
Kind
B1
Abstract

Systems and methods for allocating resources are disclosed. Resources such as streams are allocated using restore credits. Credits are issued to the clients in a manner that ensure the system is operating in a safe allocation state. The credits can be used not only to allocate resources but also to throttle clients where necessary. Credits can be granted fully, partially, and in a number greater than requested. Zero or negative credits can also be issued to throttle clients. Restore credits are associated with reads and may be allocated by determining how many credits a CPU/cores can support. This maximum number may be divided amongst clients connected with the server.

Claims (35)

1. A method for allocating resources of a server to clients connected to the server and restoring data from the server, the method comprising:

receiving a request for restore credits from a client, wherein the restore credits each correspond to an amount of data to read from the server;

determining a number of credits available to the client, wherein the number of credits available to the client accounts for restore credits already issued to the client;

issuing credits based on the request and the number of credits available to the client and

dynamically adapting a size of a client cache based on the number of restore credits issued to the client.

2. The method of claim 1 , further comprising at least one of:

issuing restore credits equal to a number of restore credits requested by the client;

issuing restore credits greater than the number of restore credits requested by the client;

issuing restore credits less than the number of restore credits requested by the client;

issuing zero restore credits to the client; or

issuing negative restore credits to the client.

3. The method of claim 1 , further comprising including a prefetch flag in the request, wherein the prefetch flag indicates that the data at the server is accessed sequentially by the client.

4. The method of claim 1 , further comprising determining a number of reads that consumes 1% of a CPU on average.

5. The method of claim 4 , further comprising determining an average per core reads allowed based on the number of reads that consume 1% of the CPU and the average free percentage of the CUP and determining a maximum credits per client based on the number of client connections.

6. The method of claim 5 , further comprising determining a calculated number of credits per client based on a tuning factor that is applied to the maximum credits per client.

7. The method of claim 6 , further comprising issuing the restore credits in a number equal to a minimum of the request or the calculated number of credits.

8. The method of claim 6 , further comprising issuing the restore credits in a number equal to a maximum of the request or the calculated number of credits.

9. The method of claim 1 , further comprising throttling all clients when an average free percentage per core of a processor is less than a predetermined threshold.

10. A non-transitory computer readable medium including computer executable instructions for implementing a method, when executed, for allocating resources of a server to clients connected to the server and restoring data from the server, the method comprising:

receiving a request for restore credits from a client, wherein the restore credits each correspond to an amount of data to read from the server;

determining a number of credits available to the client, wherein the number of credits available to the client accounts for restore credits already issued to the client;

issuing credits based on the request and the number of credits available to the client and

dynamically adapting a size of a client cache based on the number of restore credits issued to the client.

11. The non-transitory computer readable medium of claim 10 , further comprising at least one of:

issuing restore credits equal to a number of restore credits requested by the client;

issuing restore credits greater than the number of restore credits requested by the client;

issuing restore credits less than the number of restore credits requested by the client;

issuing zero restore credits to the client; or

issuing negative restore credits to the client.

12. The non-transitory computer readable medium of claim 10 , further comprising including a prefetch flag in the request, wherein the prefetch flag indicates that the data at the server is accessed sequentially by the client.

13. The non-transitory computer readable medium of claim 10 , further comprising determining a number of reads that consume 1% of a CPU on average.

14. The non-transitory computer readable medium of claim 13 , further comprising determining an average per core reads allowed based on the number of reads that consume 1% of the CPU and the average free percentage of the CUP and determining a maximum credits per client based on the number of client connections.

15. The non-transitory computer readable medium of claim 14 , further comprising determining a calculated number of credits per client based on a tuning factor that is applied to the maximum credits per client.

16. The non-transitory computer readable medium of claim 14 , further comprising issuing the restore credits in a number equal to a minimum of the request or the calculated number of credits.

17. The non-transitory computer readable medium of claim 14 , further comprising issuing the restore credits in a number equal to a maximum of the request or the calculated number of credits.

Assignments (4)
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 →
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 21, 2019
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 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2018
From: DESAI, KEYUR B.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 047096/0779 →