Nanoservices—a programming design pattern for managing the state of fine-grained object instances

US11334246B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11334246-B2
Application numberUS-202016840872-A
CountryUS
Kind codeB2
Filing dateApr 6, 2020
Priority dateApr 6, 2020
Publication dateMay 17, 2022
Grant dateMay 17, 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.

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.

First claim

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.

Assignees

Inventors

Classifications

  • 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

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 US11334246B2 cover?
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…
Who is the assignee on this patent?
Emc Ip Holding Co Llc, Dell Products Lp
What technology area does this patent fall under?
Primary CPC classification H04L67/1097. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 17 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).