Packet transmission credit allocation
US-2019068515-A1 · Feb 28, 2019 · US
US12506694B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12506694-B2 |
| Application number | US-202418437988-A |
| Country | US |
| Kind code | B2 |
| Filing date | Feb 9, 2024 |
| Priority date | Oct 8, 2018 |
| Publication date | Dec 23, 2025 |
| Grant date | Dec 23, 2025 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods for allocating resources are disclosed. Resources such as streams are allocated using a stream credit system. 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 a request. Zero or negative credits can also be issued to throttle clients.
Opening claim text (preview).
What is claimed is: 1 . A method for allocating resources of a cluster of servers, the method comprising: predetermining maximum stream credits associated with each client of the cluster of servers; receiving a request for stream credits from a client at the cluster, wherein the stream credits are for using streams provided by the cluster of servers; determining, by the cluster, an allocation state of the cluster in response to the request for stream credits from the client, wherein the cluster has a number of stream resources, wherein the allocation state is unsafe when the streams allocated by the cluster exceeds the number of stream resources, wherein determining the allocation state includes: determining a number of streams available from the cluster; assuming that the request for stream credits is granted; and determining whether at least one other client could request and use their maximum stream credits; wherein the allocation state of the cluster is safe when the at least one other client can request and use their maximum stream credits without exceeding the number of stream resources and wherein the allocation state of the cluster is unsafe when the at least one other client cannot request and use their maximum stream credits without exceeding the number of stream resources; issuing, by the cluster, the stream credits to the client in response to the request for stream credits based on the allocation state; and providing streams to the client according to the stream credits issued to the client, wherein the client uses the provided streams. 2 . The method of claim 1 , further comprising streaming one or more streams to the clients, wherein each of the one or more streams consumes resources of the cluster of servers. 3 . The method of claim 1 , further comprising determining a current allocation matrix that identifies streams currently allocated to each of the clients from each of the servers in the cluster of servers. 4 . The method of claim 3 , further comprising determining a current demand matrix that specifies a maximum number of streams that can be requested by each of the clients from each of the servers in the cluster of servers. 5 . The method of claim 4 , further comprising determining a current need matrix based on the current demand matrix and the current allocation matrix, wherein the current need matrix identifies a number of stream credits that each of the clients can request to acquire their maximum number of stream credits. 6 . The method of claim 1 , further comprising defining a maximum number of streams for allocation for each of the servers, wherein the maximum number of streams for each of the servers is based on a number of write or read parameters. 7 . The method of claim 1 , wherein each stream credit corresponds to a percentage of a CPU (central processing unit), percent of CPU consumed by a data transmission rate, or a percent of CPU consumed by a predetermined number of writes. 8 . The method of claim 1 , wherein issuing the stream credits based on the allocation state includes at least one of: issuing stream credits in an amount equal to the request when the allocation state is safe; and when the allocation state is unsafe, issuing stream credits in an amount greater than the request; issuing stream credits in an amount greater than zero and less than the request; issuing zero stream credits; or issuing negative stream credits. 9 . The method of claim 1 , further comprising: throttling the client when the allocation state is not safe until the allocation state is safe; or self-throttling by the clients. 10 . A method for allocating resources of a cluster of servers, the method comprising: predetermining maximum credits associated with each client of the cluster of servers; receiving a request for credits from a client at the cluster, wherein the credits are for using resources provided by the cluster of servers; determining, by the cluster, an allocation state of the cluster in response to the request for credits from the client, wherein the cluster has a number of resources, wherein the allocation state is unsafe when the resources allocated by the cluster exceeds the number of resources, wherein determining the allocation state includes: determining resources available from the servers; assuming that the request for credits is granted; and determining whether at least one other client could request and use their maximum credits; wherein the allocation state of the cluster is safe when the at least one other client can request and use their maximum credits without exceeding the number of resources and wherein the allocation state of the cluster is unsafe when the at least one other client cannot request and use their maximum credits without exceeding the number of resources; issuing the credits, by the cluster, to the client in response to the request for credits based on the allocation state; and providing resources to the client according to the credits issued to the client, wherein the client uses the provided resources. 11 . The method of claim 10 , further comprising streaming one or more streams to the clients, wherein each of the one or more streams consumes resources of the cluster of servers. 12 . The method of claim 10 , further comprising determining a current allocation matrix that identifies resources currently allocated to each of the clients from each of the servers in the cluster of servers. 13 . The method of claim 12 , further comprising determining a current demand matrix that specifies a maximum number of resources that can be requested by each of the clients from each of the servers in the cluster of servers. 14 . The method of claim 13 , further comprising determining a current need matrix based on the current demand matrix and the current allocation matrix, wherein the current need matrix identifies a number of credits that each of the clients can request to acquire their maximum number of credits. 15 . The method of claim 10 , further comprising defining a maximum amount of resources for allocation for each of the servers, wherein the maximum amount of resources for each of the servers is based on a number of write or read parameters. 16 . The method of claim 10 , wherein each credit corresponds to a percentage of a CPU (central processing unit), percent of CPU consumed by a data transmission rate, or a percent of CPU consumed by a predetermined number of writes. 17 . The method of claim 10 , wherein issuing the credits based on the allocation state includes at least one of: issuing credits in an amount equal to the request when the allocation state is safe; and when the allocation state is unsafe, issuing credits in an amount greater than the request; issuing credits in an amount greater than zero and less than the request; issuing zero credits; or issuing negative credits. 18 . The method of claim 10 , wherein: the credits are stream credits for performing streaming operations with the resources; the credits are restore credits for performing restore operations with the resources; or the credits are distributed segment processing credits for performing distributed segment processing operations with the resources. 19 . The method of claim 18 , wherein the resources include one or more of streams, reads, writes, processing, or deduplication. 20 . A non-transitory computer readable medium including instructions for implementing a method for allocating resources of a clust
for unicast · CPC title
Responding to QoS · CPC title
Broadcast or multicast traffic · CPC title
Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title
Credit based · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.