×

Scalable resource allocation

  • US 8,127,295 B1
  • Filed: 08/03/2007
  • Issued: 02/28/2012
  • Est. Priority Date: 08/03/2007
  • Status: Active Grant
First Claim
Patent Images

1. A system for managing a limited resource, comprising:

  • a plurality of hardware processing units;

    a plurality of buckets, each of the plurality of buckets corresponding to a single respective hardware processing unit of the plurality of hardware processing units;

    program instructions operative to cause the plurality of hardware processing units to perform actions, the actions including;

    receiving, in a thread executing at a first hardware processing unit of the plurality of hardware processing units, a first request for resource units;

    identifying a wallet allocated to the thread, wherein the wallet is allocated only to the thread, wherein the wallet comprises credits, allocated to the thread, for resource units;

    determining that the wallet allocated to the thread does not comprise enough credits to fulfill the first request, wherein each credit is representative of a number of resource units;

    selecting, in response to determining that the wallet does not comprise enough credits, a first bucket of the plurality of buckets based on the first bucket corresponding to the first hardware processing unit and based on the first hardware processing unit executing the thread, wherein the first bucket comprises credits, allocated to the first hardware processing unit, for resource units;

    selectively determining that the first bucket corresponding to the first hardware processing unit comprises enough credits to fulfill the first request;

    selectively retrieving at least one credit from the first bucket and adding the retrieved at least one credit to the wallet;

    deducting at least one credit from the wallet to fulfill the first request;

    receiving, in the thread, a second request for resource units;

    determining that the wallet allocated to the thread does not comprise enough credits to fulfill the second request;

    selectively determining that the first bucket does not comprise enough credits to fulfill the second request; and

    selectively retrieving at least one credit from a second bucket corresponding to a second hardware processing unit, based on determining that the wallet allocated to the thread and the first bucket do not comprise enough credits to fulfill the second request.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×