IP Library Granted Patent US 11,431,647
Granted Patent B2
US 11,431,647 · App. 17/204,318 · Granted Aug 30, 2022

Resource allocation using distributed segment processing credits

Inventor: Keyur B. Desai (Cary, NC)
Assignee: EMC IP HOLDING COMPANY LLC
H04L47/783G06F16/907G06F21/64H04L47/822H04L67/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 11,431,647
App. No.
17/204,318
Granted
Aug 30, 2022
Kind
B2
Abstract

Systems and methods for allocating resources are disclosed. Resources as processing time, writes or reads are allocated. 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. Segment credits are associated with identifying unique fingerprints or segments 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 (30)

1. A method for allocating resources of a cluster of servers to connected clients, the method comprising:

receiving a request for credits from a client, wherein each credit corresponds to resources of the cluster;

determining, by the cluster, whether the credits requested by the client result in a safe allocation state for all of the clients, wherein the cluster determines whether the allocation state is safe by finding a hypothetical set of credit requests by all the clients that allows each of the clients to request and use credits, wherein the allocation state is safe when the set of credit requests is found and wherein the allocation state is not safe when the set of credit requests is not found; and

issuing the credits to the client such that the allocation state is safe.

2. The method of claim 1 , further comprising determining that the allocation state is safe when the set of credit requests allows each of the clients to request and use their maximum allowed credits.

3. The method of claim 1 , further comprising determining that the allocation state is unsafe and issuing the credits in a number that is one of:

less than a number of the credits requested by the client;

zero; or

negative.

4. The method of claim 1 , wherein the cluster maintains matrices including a total availability matrix identifying a maximum number of credits available from each server in the cluster, a current availability matric identifying a number of credits available from each of the servers, a current demand matrix identifying the maximum allowed credits of each of the clients, and a current need matrix identifying credit needs for each of the clients, further comprising determining whether the allocation state is safe based on the matrices.

5. The method of claim 1 , further comprising determining whether the allocation state is safe by considering whether each of the clients can request and use their maximum allowed credits in succession.

6. The method of claim 5 , further comprising determining whether a first client can request and use their maximum allowed credits and then determining whether a second client can request and use their maximum allowed credits.

7. The method of claim 1 , wherein the credits are one of segment credits for segment processing operations, stream credits for streaming operations, or restore credits for restoring operations.

8. The method of claim 1 , further comprising throttling the client when the number of credits issued is zero or negative.

9. The method of claim 1 , further comprising releasing credits by the client.

10. A non-transitory computer readable medium including computer executable instructions configured to be executed by a processor for performing a method, the method comprising:

receiving a request for credits from a client, wherein each credit corresponds to resources of a cluster of servers connected to clients including the client;

determining, by the cluster, whether the credits requested by the client result in a safe allocation state for all of the clients, wherein the cluster determines whether the allocation state is safe by finding a hypothetical set of credit requests by all the clients that allows each of the clients to request and use credits, wherein the allocation state is safe when the set of credit requests is found and wherein the allocation state is not safe when the set of credit requests is not found; and

issuing the credits to the client such that the allocation state is safe.

11. The non-transitory computer readable medium of claim 10 , further comprising determining that the allocation state is safe when the set of credit requests allows each of the clients to request and use their maximum allowed credits.

12. The non-transitory computer readable medium of claim 10 , further comprising determining that the allocation state is unsafe and issuing the credits in a number that is one of:

less than a number of the credits requested by the client;

zero; or

negative.

13. The non-transitory computer readable medium of claim 10 , wherein the cluster maintains matrices including a total availability matrix identifies a maximum number of credits available from each server in the cluster, a current availability matric identifies a number of credits available from each of the servers, a current demand matrix identifies the maximum allowed credits of each of the clients, and a current need matrix identifies credit needs for each of the clients, further comprising determining whether the allocation state is safe based on the matrices.

14. The non-transitory computer readable medium of claim 10 , further comprising determining whether the allocation state is safe by considering whether each of the clients can request and use their maximum allowed credits in succession.

15. The non-transitory computer readable medium of claim 14 , further comprising determining whether a first client can request and use their maximum allowed credits and then determining whether a second client can request and use their maximum allowed credits.

16. The non-transitory computer readable medium of claim 10 , wherein the credits are one of segment credits for segment processing operations, stream credits for streaming operations, or restore credits for restoring operations.

17. The non-transitory computer readable medium of claim 10 , further comprising throttling the client when the number of credits issued is zero or negative.

18. The non-transitory computer readable medium of claim 10 , further comprising releasing credits by the client.

Assignments (10)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0001) 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 062021/0844 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0124) 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/0012 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056295/0280) 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/0255 →
RELEASE OF SECURITY INTEREST Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058297/0332 →
SECURITY INTEREST Recorded May 19, 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 056295/0001 →
SECURITY INTEREST Recorded May 19, 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 056295/0124 →
SECURITY INTEREST Recorded May 19, 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 056295/0280 →
CORRECTIVE ASSIGNMENT TO CORRECT THE MISSING PATENTS THAT WERE ON THE ORIGINAL SCHEDULED SUBMITTED BUT NOT ENTERED PREVIOUSLY RECORDED AT REEL: 056250 FRAME: 0541. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded May 17, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056311/0781 →
SECURITY AGREEMENT Recorded May 14, 2021
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 056250/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2021
From: DESAI, KEYUR B.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 055625/0207 →
Continuity (2)
Continuation 16154671 · Oct 8, 2018
Related Publication 20210203614A1 · Jul 1, 2021