Ledger-based resource tracking

US9411650B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9411650-B2
Application numberUS-201514810288-A
CountryUS
Kind codeB2
Filing dateJul 27, 2015
Priority dateJun 5, 2012
Publication dateAug 9, 2016
Grant dateAug 9, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Disclosed are systems, methods, and non-transitory computer-readable storage media for tracking and managing resource usage through a ledger feature that can trigger complex real-time reactions. The resource tracking can be managed through a ledger module and a ledger data structure. The ledger data structure can be updated each time a task requests a resource. Additionally, as part of the update, the ledger module can verify whether a resource has been over consumed. In response to the detection of an over consumption, the ledger module can set a flag. At some later pointer when the thread is in a stable, well-understood point, the ledger module can check if the flag has been set. If the flag has been set, the ledger module can call the appropriate callback function, which can react to the over consumption in a resource specific manner.

First claim

Opening claim text (preview).

We claim: 1. A non-transitory computer-readable storage media storing instructions which, when executed by a computing device, causes the computing device to perform steps comprising: receiving, at a processor, a resource request from a task, the task associated with a resource tracking object including: (i) a reference to a template including an entry identifying the task and a pointer to a callback function, wherein the callback function is specific to the resource requested, and (ii) an entries object including an entry for the resource requested with a corresponding balance of current resources consumed and a corresponding predefined resource limit of the resource requested, wherein values of the balance and the limit are defined specific to the resource; registering, at the processor, the resource for tracking in the template; and updating, at the processor, the balance of resources consumed, wherein the updating comprises comparing the balance of resources consumed against the predefined resource limit, and setting a flag when the balance exceeds the predefined resource limit. 2. The non-transitory computer-readable storage media of claim 1 , further comprising: in response to detecting, at the processor, prior to returning the task to user space, that the flag is set, calling a first callback function associated with a first resource entry in the entries object, wherein a first balance associated with the first resource entry exceeds a first predefined limit associated with the first resource entry. 3. The non-transitory computer-readable storage media of claim 2 , further comprising: identifying, at the processor, a second resource entry in the entries object, wherein a second balance associated with the second resource entry exceeds a second predefined limit associated with the second resource entry; and calling, at the processor, a second callback function associated with the second resource entry. 4. The non-transitory computer-readable storage media of claim 2 , wherein detecting that the flag is set occurs in response to detecting that execution of the task has reached an Asynchronous System Trap boundary. 5. The non-transitory computer-readable storage media of claim 1 , further comprising: registering a second resource, the registering comprising cloning the template to create a second template and adding a new entry to the second template for the second resource. 6. The non-transitory computer-readable storage media of claim 5 , wherein the new entry comprises a unique resource identifier and a reference to a callback function. 7. The non-transitory computer-readable storage media of claim 1 , further comprising: identifying, at the processor, a second resource entry in the entries object, wherein a second balance associated with the second resource entry exceeds a second predefined limit associated with the second resource entry; and calling, at the processor, a second callback function associated with the second resource entry. 8. The non-transitory computer-readable storage media of claim 1 , further comprising: allocating the resource tracking object associated with the task prior to processing an initial request for a resource from the task, the allocating including allocating an entries object with a number of entries corresponding to a current number of entries in the template. 9. The non-transitory computer-readable storage media of claim 1 , wherein the entries object comprises at least one entry and the at least one entry is of a double-entry type. 10. The non-transitory computer-readable storage media of claim 1 , wherein the entries object comprises at least one entry and the at least one entry is of a declining entry type. 11. The non-transitory computer-readable storage media of claim 1 , wherein the balance is calculated on demand. 12. The non-transitory computer-readable storage media of claim 1 , wherein the template is referenced by a plurality of resource tracking objects. 13. The non-transitory computer-readable storage media of claim 1 , further comprising: the task including one or more threads; the threads being associated with the resource tracking object. 14. The non-transitory computer-readable storage media of claim 1 , further comprising: prohibiting the removal of the resource from the template. 15. The non-transitory computer-readable storage media of claim 1 , wherein the resource request is a request to allocate or deallocate the resource and performing the resource request includes allocating or deallocating the resource. 16. The non-transitory computer-readable storage media of claim 1 , wherein the resource is at least one of CPU cycles, memory, disk I/O, network I/O, or Mach ports. 17. A system comprising: a processor; a task associated with a resource tracking object; the resource tracking object including: (i) a reference to a template, the template including an entry identifying the task and a pointer to a callback function, wherein the callback function is specific to a resource requested, and (ii) an entries object including an entry for the resource requested with a corresponding balance of current resources consumed and a corresponding predefined resource limit of the resource requested, wherein values of the balance and the limit are defined specific to the resource; the processor receiving the resource request from the task; and the processor updating the balance of resources consumed related to the task, wherein the updating comprises setting a flag when the resource consumption balance exceeds the predefined resource limit. 18. A computer-implemented method comprising: receiving, at a processor, a resource request from a task, the task associated with a resource tracking object including: (i) a reference to a template including an entry identifying the task and a pointer to a callback function, wherein the callback function is specific to the resource requested, and (ii) an entries object including an entry for the resource requested with a corresponding balance of current resources consumed and a corresponding predefined resource limit of the resource requested, wherein values of the balance and the limit are defined specific to the resource; registering, at the processor, the resource for tracking in the template; and updating, at the processor, the balance of resources consumed, wherein the updating comprises comparing the balance of resources consumed against the predefined resource limit, and setting a flag when the balance exceeds the predefined resource limit. 19. A non-transitory computer-readable storage media storing instructions which, when executed by a computing device, causes the computing device to perform steps comprising: updating, by a processor, an entry corresponding to a resource in a resource tracking object, the resource tracking object including: (i) a reference to a template including an entry identifying a task and a pointer to a callback function, wherein the callback function is specific to the resource, and (ii) an entries object including an entry for the resource with a corresponding balance of current resources consumed and a corresponding predefined resource limit of the resource, wherein values of the balance and the limit are defined specific to the resource; the updating includes recording the balance for the entry specified in a request for the resource from the task, and setting a flag when the balance for the entry exceeds the resource limit defined in the entry; identifying, by a processor,

Assignees

Inventors

Classifications

  • G06Q10/06Primary

    Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling · CPC title

  • Resource planning in a project environment · CPC title

  • the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title

  • the resource being the memory · CPC title

  • G06F9/5011Primary

    the resources being hardware resources other than CPUs, Servers and Terminals · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9411650B2 cover?
Disclosed are systems, methods, and non-transitory computer-readable storage media for tracking and managing resource usage through a ledger feature that can trigger complex real-time reactions. The resource tracking can be managed through a ledger module and a ledger data structure. The ledger data structure can be updated each time a task requests a resource. Additionally, as part of the upda…
Who is the assignee on this patent?
Apple Inc
What technology area does this patent fall under?
Primary CPC classification G06Q10/06. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 09 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).