Optimization of Data Access and Communication in Memory Systems
US-2019253520-A1 · Aug 15, 2019 · US
US11334246B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11334246-B2 |
| Application number | US-202016840872-A |
| Country | US |
| Kind code | B2 |
| Filing date | Apr 6, 2020 |
| Priority date | Apr 6, 2020 |
| Publication date | May 17, 2022 |
| Grant date | May 17, 2022 |
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.
Subscriber-managed nanoservices enable the states of multiple instances of an object to be contemporaneously updated without requiring an object-wide mutex or per-instance dedicated threads. A separate subscriber-managed nanoservice is implemented for each object instance. Each subscriber-managed nanoservice includes a first function that adds requests to update state of an object instance to a FIFO queue and provides a lock to only one subscriber thread at a time. Each subscriber-managed nanoservice includes a second function that combines queued requests and performs object instance state updates response to calls from the lock-holding subscriber thread. Each subscriber-managed nanoservice functions independently so multiple instances of an object can be contemporaneously updated. Further, it is not necessary to have a dedicated thread for management of each object instance because the subscriber threads call the functions.
Opening claim text (preview).
What is claimed is: 1. In a data storage system in which host applications are deployed and un-deployed to containers by a container orchestration system and host application data is logically stored on storage group object instances that each include a plurality of logical production volume object instances representative of non-volatile storage of a storage node, wherein each production volume object instance is associated with a different host application instance, a method for managing state, comprising: implementing a separate subscriber-managed nanoservice for each storage group object instance; each subscriber-managed nanoservice responding to calls to a first function by ones of a plurality of subscriber threads initiated by the container orchestration system by adding a request to an input stream to update the state of the storage related a corresponding one of the storage group object instances and providing a lock to only a first one of the subscriber threads; and each subscriber-managed nanoservice responding to calls to a second function by ones of the plurality of subscriber threads holding the lock by performing object instance state updates of the corresponding one of the storage group object instances as indicated in the requests added to the input stream. 2. The method of claim 1 comprising implementing the input stream as a first-in, first-out queue. 3. The method of claim 1 comprising implementing the input stream as a channel. 4. The method of claim 3 comprising the first function returning update status for each request in a separate error channel output stream. 5. The method of claim 1 wherein providing the lock comprises implementing a Boolean channel with a Boolean value indicative of lock status. 6. The method of claim 1 comprising the second function combining a plurality of the requests into a single request. 7. The method of claim 1 comprising the second function releasing the lock. 8. An apparatus comprising: a container orchestration system comprising a driver with a separate subscriber-managed nanoservice for each instance of a plurality of storage group object instances that each include a plurality of logical production volume object instances representative of non-volatile storage, wherein each production volume object instance is associated with a different host application instance, wherein each subscriber-managed nanoservice is responsive to calls to a first function by ones of a plurality of subscriber threads initiated by the container orchestration system to add a request to update state of a corresponding one of the storage group object instances to an input stream and provide a lock to only a first one of the subscriber threads; and wherein each subscriber-managed nanoservice is responsive to calls to a second function by ones of the plurality of subscriber threads holding the lock to perform state updates of the corresponding one of the storage group object instances as indicated in the requests added to the input stream. 9. The apparatus of claim 8 wherein the input stream comprises a first-in, first-out queue. 10. The apparatus of claim 8 wherein the input stream comprises a channel. 11. The apparatus of claim 10 wherein the first function returns update status for each request in a separate error channel output stream. 12. The apparatus of claim 8 wherein the lock comprises a Boolean channel with a Boolean value indicative of lock status. 13. The apparatus of claim 8 wherein the second function combines a plurality of the requests into a single request. 14. The apparatus of claim 8 wherein the second function releases the lock. 15. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for using a computer system to update object instance state in a system comprising a plurality of storage group object instances that each include a plurality of logical production volume object instances representative of non-volatile storage, wherein each production volume object instance is associated with a different host application instance, the method comprising: implementing a separate subscriber-managed nanoservice for each storage group object instance; each subscriber-managed nanoservice responding to calls to a first function by ones of a plurality of subscriber threads initiated by the container orchestration system by adding a request to an input stream to update state of a corresponding one of the storage group object instances and providing a lock to only a first one of the subscriber threads; and each subscriber-managed nanoservice responding to calls to a second function by ones of the plurality of subscriber threads holding the lock by performing state updates of the corresponding one of the storage group object instances as indicated in the requests added to the input stream. 16. The non-transitory computer-readable storage medium of claim 15 wherein the method further comprises implementing the input stream as a channel. 17. The non-transitory computer-readable storage medium of claim 16 wherein the method further comprises the first function returning update status for each request in a separate error channel output stream. 18. The non-transitory computer-readable storage medium of claim 15 wherein providing the lock comprises implementing a Boolean channel with a Boolean data type indicative of lock status. 19. The non-transitory computer-readable storage medium of claim 15 wherein the method further comprises the second function combining a plurality of the requests into a single request. 20. The non-transitory computer-readable storage medium of claim 15 wherein the method further comprises the second function releasing the lock.
the resources being hardware resources other than CPUs, Servers and Terminals · CPC title
Disk arrays, e.g. RAID, JBOD · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices · CPC title
Management of space entities, e.g. partitions, extents, pools · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.