Object sharing by entities using a data structure

US11507559B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11507559-B2
Application numberUS-202016882590-A
CountryUS
Kind codeB2
Filing dateMay 25, 2020
Priority dateMay 25, 2020
Publication dateNov 22, 2022
Grant dateNov 22, 2022

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.

In some examples, a system provides a data structure containing an entry to store information for an object for sharing by a plurality of entities. The system allocates the object to a first entity of the plurality of entities based on an atomic access of the entry, the atomic access to update, in one operation, multiple information elements in the entry relating to allocation of the object. The system returns, to the first entity, a handle to the object, the handle based on a value in the entry.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory machine-readable storage medium comprising instructions that upon execution cause a system to: provide a data structure containing a first entry to store information for a first object for sharing by a plurality of entities; allocate the first object to a first entity of the plurality of entities based on an atomic access of the first entry, the atomic access to update, in one operation, multiple information elements in the first entry relating to the allocation of the first object to the first entity, wherein the updated multiple information elements in the first entry indicate that the first object has been allocated, and wherein the data structure further contains a second entry to store information for a second object, and the information in the second entry indicates that the second object is unallocated to any entity; return, to the first entity, a handle to the first object, the handle based on a value in the first entry and containing information from which a representation of a storage location of the first object is derivable; and access the first object at the storage location in response to a request comprising the handle. 2. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to: receive a lookup operation from a second entity of the plurality of entities, wherein the second entity received the handle from the first entity, and the lookup operation is for accessing the first object using the handle received by the second entity from the first entity. 3. The non-transitory machine-readable storage medium of claim 2 , wherein the first entry comprises a count advanced responsive to the lookup operation, the count representing a quantity of accesses of the first object. 4. The non-transitory machine-readable storage medium of claim 3 , wherein the instructions upon execution cause the system to: cause retreat of the count in the first entry responsive to an entity no longer accessing the first object. 5. The non-transitory machine-readable storage medium of claim 3 , wherein the instructions upon execution cause the system to: responsive to a request to free the first object: check a value of the count, and deny the request to free the first object responsive to the value of the count indicating an active access of the first object. 6. The non-transitory machine-readable storage medium of claim 5 , wherein the instructions upon execution cause the system to: responsive to the request: free the first object responsive to the value of the count indicating no active access of the first object, and update the multiple information elements of the first entry to indicate that the first object is unallocated. 7. The non-transitory machine-readable storage medium of claim 5 , wherein the instructions upon execution cause the system to: responsive to the value of the count indicating an active access of the first object, prevent a new access of the first object. 8. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to: responsive to a request to drain accesses of the first object, prevent a new access of the first object. 9. The non-transitory machine-readable storage medium of claim 8 , wherein the instructions upon execution cause the system to: responsive to the request to drain accesses of the first object, change a drain indicator in the first entry from a first value to a second value, the drain indicator when set to the second value indicating that the accesses of the first object are to be drained, and the drain indicator when set to the first value indicating that a new access of the first object is permitted. 10. The non-transitory machine-readable storage medium of claim 1 , wherein the handle is based on a combination of the value and an index to the first entry. 11. The non-transitory machine-readable storage medium of claim 10 , wherein the value comprises a random number. 12. The non-transitory machine-readable storage medium of claim 1 , wherein the second entry contains a pointer to a third entry of the data structure, the third entry to store information for a third object, wherein the information in the third entry indicates that the third object is unallocated, and wherein the first entry contains a count representing a quantity of accesses of the first object. 13. The non-transitory machine-readable storage medium of claim 12 , wherein the data structure comprises a header that comprises: a first indicator of a quantity of entries of the data structure that are associated with objects that have not been allocated, and a second indicator that points to an entry of the data structure that is associated with an object that has not been allocated. 14. The non-transitory machine-readable storage medium of claim 1 , wherein the atomic access is lock-free and does not block. 15. The non-transitory machine-readable storage medium of claim 1 , wherein the instructions upon execution cause the system to: derive a pointer to the first object based on the handle, wherein the representation of the storage location of the first object comprises the pointer. 16. A system comprising: a processor; and a non-transitory storage medium storing instructions executable on the processor to: store a data structure comprising a plurality of entries, wherein a first entry of the plurality of entries contains first information indicating that a first object is unallocated, and a second entry of the plurality of entries contains second information indicating that a second object has been allocated and is for sharing by a plurality of entities, set a count in the second entry that indicates a quantity of active accesses of the second object, receive a lookup operation from a first entity for accessing the second object, the lookup operation using a handle received by the first entity from a second entity that has allocated the second object, wherein the handle is based on a value in the second entry, and responsive to the lookup operation, update the second entry using an atomic access. 17. The system of claim 16 , wherein the update of the second entry comprises updating the count. 18. A method comprising: storing, in a storage medium, a data structure containing an entry to store information for an object for sharing by a plurality of entities, wherein the entry comprises a count advanced responsive to a lookup of the object, the count representing a quantity of accesses of the object; allocating, in a system comprising a hardware processor, the object to a first entity of the plurality of entities based on an atomic access of the entry, the atomic access to update, in one operation, multiple information elements in the entry relating to allocation of the object; returning, to the first entity, a handle to the object, the handle based on a value in the entry and containing information from which a representation of a storage location of the object is derivable; accessing the object at the storage location in response to a request comprising the handle; and responsive to a request to free the object: check a value of the count, and deny the request to free the object responsive to the value of the count indicating an active access of the object. 19. The method of claim 18 , comprising: responsive to the denying of the request to free the object: setting a drain indicator in the entry, and starting a draining process ind

Assignees

Inventors

Classifications

  • Locking methods, e.g. distributed locking or locking implementation details · CPC title

  • G06F9/449Primary

    Object-oriented method invocation or resolution · CPC title

  • for counting the input from several sources; for counting inputs of different amounts · 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 US11507559B2 cover?
In some examples, a system provides a data structure containing an entry to store information for an object for sharing by a plurality of entities. The system allocates the object to a first entity of the plurality of entities based on an atomic access of the entry, the atomic access to update, in one operation, multiple information elements in the entry relating to allocation of the object. Th…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F16/2343. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 22 2022 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).