Forwarding incoming IO to SCM namespaces

US11836095B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11836095-B2
Application numberUS-202117305630-A
CountryUS
Kind codeB2
Filing dateJul 12, 2021
Priority dateMay 27, 2021
Publication dateDec 5, 2023
Grant dateDec 5, 2023

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.

Techniques for intelligently routing IO to a storage class memory (SCM) namespace are disclosed. A configuration for a namespace is determined, where the configuration indicates a type of IO that the namespace is structured to handle. Details about the configuration of the namespace are stored in a repository. A forwarding rule is generated based on the namespace's stored configuration. When incoming IO having attributes similar to that type is received, implementation of the forwarding rule causes the incoming IO to be directed to the namespace. Attributes of a particular incoming IO are determined. As a result of the attributes satisfying a similarity threshold relative to the type, the forwarding rule is implemented such that the particular incoming IO is directed to the namespace.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for forwarding, in real-time, input/output (IO) to storage class memory (SCM) namespaces that are optimized to handle IO having different attributes, the method comprising: determining, by a processor namespace attributes for each SCM namespace included in a set of SCM namespaces; storing, by the processor, namespace attributes for each of the SCM namespaces in a database; in response to receiving network IO from a remote source, determining, by the processor, IO attributes for the network IO; based on the determined IO attributes for the network IO, querying, by the processor, the database to determine which specific SCM namespace in the set of SCM namespaces is a best fit namespace for managing incoming IO having the determined IO attributes, wherein determining which SCM namespace is the best fit to manage incoming IO having the determined IO attributes is based on a comparison between the determined IO attributes and the namespace attributes stored in the database; based on a result of querying the database, selecting, by the processor, a particular SCM namespace from the set of SCM namespaces to manage the network IO, the particular SCM namespace being selected as a result of determining the particular SCM namespace is the best fit namespace for the network IO as compared to other SCM namespaces in the set of SCM namespaces; and redirecting, by the processor, the network IO to the selected particular SCM namespace. 2. The method of claim 1 , wherein the SCM namespaces support memory modes, storage modes, and app-direct modes. 3. The method of claim 1 , wherein the selected particular SCM namespace is selected based on an identified workload pattern associated with a client application that provided the network IO. 4. The method of claim 1 , wherein the incoming IO is in a form of a block. 5. The method of claim 1 , wherein the namespace attributes that are stored in the database include a bandwidth for the SCM namespaces. 6. The method of claim 1 , wherein the method further includes analyzing incoming IO from network traces and estimating future IO behavior using a machine learning algorithm. 7. The method of claim 6 , wherein the machine learning algorithm is a Markov Transition State machine learning algorithm. 8. The method of claim 1 , wherein the namespace attributes that are stored in the database include one or more of: persistent memory input/output operations per second (IOPS) for the SCM namespaces, latency for the SCM namespaces, and bandwidth for the SCM namespaces. 9. The method of claim 1 , wherein determining which specific SCM namespace is optimized for managing incoming IO having the determined IO attributes is further based on client application behavior for a client application that transmitted the network IO. 10. The method of claim 1 , wherein determining the IO attributes for the network IO is performed using a machine learning algorithm. 11. A method for redirecting an incoming network input/output (IO) to a particular storage class memory (SCM) namespace based on a determination that the particular SCM namespace is optimized to handle IO having attributes that are common to attributes of the incoming network IO, said method comprising: receiving, at a processor, first IO from a first client application and second IO from a second client application; determining, by the processor, first attributes associated with the first IO and second attributes associated with the second IO, wherein the first attributes include a pattern of workload behavior for the first client application, and wherein the second attributes include a size of workloads for the second client application; using the first attributes and the second attributes, by the processor, to query a lookup table comprising SCM namespace attributes for a set of SCM namespaces, wherein querying the lookup table includes (i) identifying a first SCM namespace optimized to handle IO having a similar pattern of workload behavior as the pattern of workload behavior associated with the first client application and (ii) identifying a second SCM namespace optimized to handle IO having a similar size of workloads as the size of workloads associated with the second client application; and selecting, by the processor, the first SCM namespace from the set of SCM namespaces to handle the first IO; selecting, by the processor, the second SCM namespace from the set of SCM namespaces to handle the second IO; and directing, by the processor, the first IO to the first SCM namespace and the second IO to the second SCM namespace. 12. The method of claim 11 , wherein determining the first attributes associated with the first IO is performed using a machine learning algorithm. 13. The method of claim 12 , wherein the machine learning algorithm is a Markov transition state machine learning algorithm. 14. The method of claim 11 , wherein the first SCM namespace is associated with a first device node and the second SCM namespace is associated with a second device node, and wherein the first device node is mounted at a different file system location than a file system location where the second device node is mounted. 15. The method of claim 14 , wherein the lookup table includes information identifying the file system location of the first device node and information identifying the file system location of the second device node. 16. The method of claim 11 , wherein the first attributes include one or more of: data atomicity of the first IO, hardware access pattern for a client device that transmitted the first IO, or health of the client device that transmitted the first IO. 17. The method of claim 11 , wherein the method further includes generating a forwarding rule that, when implemented, automatically causes the first IO to be redirected to the first SCM namespace. 18. One or more non-transitory hardware storage devices that store instructions that are executable by one or more processors of a computer system to cause the computer system to: determine a configuration for a namespace, wherein the configuration indicates a type of input/output (IO) that the namespace is structured to handle; store details about the configuration of the namespace in a repository; generate a forwarding rule based on the namespace's stored configuration, wherein, when incoming IO having attributes similar to said type is received, implementation of the forwarding rule causes the incoming IO to be directed to the namespace; determine attributes of a particular incoming IO; and as a result of the attributes satisfying a similarity threshold relative to said type, implement the forwarding rule such that the particular incoming IO is directed to the namespace. 19. The one or more non-transitory hardware storage devices of claim 18 , wherein determining the attributes of the particular incoming IO is performed using a machine learning algorithm. 20. The one or more non-transitory hardware storage devices of claim 18 , wherein the forwarding rule establishes a mapping between the type of IO that the namespace is structured to handle and the attributes of the particular incoming IO.

Assignees

Inventors

Classifications

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 US11836095B2 cover?
Techniques for intelligently routing IO to a storage class memory (SCM) namespace are disclosed. A configuration for a namespace is determined, where the configuration indicates a type of IO that the namespace is structured to handle. Details about the configuration of the namespace are stored in a repository. A forwarding rule is generated based on the namespace's stored configuration. When in…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F13/1668. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 05 2023 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 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).