Method and apparatus for consistent and highly available data storage using local and fabric attached non-volatile memory storage devices
US-2020264954-A1 · Aug 20, 2020 · US
US12346565B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12346565-B2 |
| Application number | US-202318318457-A |
| Country | US |
| Kind code | B2 |
| Filing date | May 16, 2023 |
| Priority date | May 18, 2022 |
| Publication date | Jul 1, 2025 |
| Grant date | Jul 1, 2025 |
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.
The disclosed systems, methods, and computer readable media relate to managing persistent memory within a smart network interface card (smartNIC) of a cloud-computing environment, or at storage device of the host instance on which the smartNIC operates and to which the smartNIC has access. The smartNIC may be configured with various modes that enable passthrough of input/output operations to or from non-volatile remote storage (e.g., a block storage data plane volume) or storage of at least some of the data corresponding to the input/output operations within the persistent memory managed by the smartNIC. The smartNIC may be configured to select a storage location for data between a pool of candidate storage including the persistent storage managed by the smartNIC or the non-volatile remote storage. These techniques improve communications between the smartNIC and the non-volatile remote storage and reduce the risk of network jitters and overall network latency.
Opening claim text (preview).
What is claimed is: 1. A method, comprising: managing, by a software agent executing at a smart network interface card configured at a host machine of a cloud computing environment, a persistent storage at the host machine that is accessible to the software agent at the smart network interface card, the persistent storage at the host machine being configured to store or provide data by request of the smart network interface card, the persistent storage being associated with a storage volume that is further associated with a remote storage device of the cloud computing environment, the remote storage device being accessible to the software agent via a network; obtaining, by the software agent, configuration parameters that specify whether to utilize the persistent storage at the host machine for read operations or write operations; receiving, by the software agent executing at the smart network interface card from the host machine, a data request being associated with an input/output operation comprising a read operation or a write operation; responsive to identifying that the data request comprises the read operation or the write operation, determining, by the software agent executing at the smart network interface card and based at least in part on the configuration parameters, whether to utilize the persistent storage at the host machine or the remote storage device to fulfill the data request; and responsive to determining that the persistent storage at the host machine is to be utilized to fulfill the data request, executing, by the software agent executing at the smart network interface card, one or more operations to cause the persistent storage to be utilized to fulfill the data request. 2. The method of claim 1 , wherein the software agent executing at the smart network interface card executes as part of a non-volatile memory express (NVMe) controller of the smart network interface card, the NVMe controller being configured to utilize a NVMe protocol to process requests for accessing non-volatile remote storage accessible to the smart network interface card by a Peripheral Component Interconnect Express (PCIe) bus. 3. The method of claim 2 , wherein determining that the persistent storage at the host machine is to be utilized to fulfill the data request comprises selecting the persistent storage from a pool of candidate storage comprising the persistent storage and the non-volatile remote storage, the non-volatile remote storage being hosted by a remote server. 4. The method of claim 1 , wherein the persistent storage at the host machine and accessible to the software agent executing at the smart network interface card is a local storage device of the host machine. 5. The method of claim 1 , wherein the persistent storage at the host machine and accessible to the software agent executing at the smart network interface card is local to the smart network interface card. 6. The method of claim 1 , wherein the persistent storage at the host machine and accessible to the smart network interface card is configured to process over a threshold number of input/output operations per second. 7. The method of claim 1 , wherein the configuration parameters indicate one or more policies that indicate a particular combination of input/output operations for which the persistent storage at the host machine is to be utilized by the software agent executing at the smart network interface card, the configuration parameters comprising a mode indicator indicating one of: a first mode corresponding to utilizing the persistent storage at the host machine for both read operations and write operations, a second mode indicating that the persistent storage at the host machine is not to be used for either the read operations or the write operations, or a third mode indicating that the persistent storage at the host machine is to be used for the write operations. 8. The method of claim 1 , wherein the software agent implements a cache for the storage volume using the persistent storage, and wherein the cache may be activated or deactivated at run time. 9. The method of claim 8 , further comprising persisting a payload of the data request previously stored in the persistent storage to the one or more remote storage devices based at least in part on a predefined frequency or schedule. 10. The method of claim 1 , further comprising: determining, by the software agent and based on network conditions of the network, whether to initiate a processing thread to purge data that is stored only at the persistent storage to the one or more remote storage devices; and initiating, by the software agent, the processing thread for purging data that is stored only at the persistent storage to the one or more remote storage devices. 11. The method of claim 1 , wherein the configuration parameters further comprise a storage threshold value for the persistent storage, wherein the method further comprises: determining an amount of data of the storage volume that is stored only at the persistent storage; and based on determining that the amount of data that is stored only at the persistent storage has breached the storage threshold value, initiating a processing thread for purging the data that is stored only at the persistent storage to the one or more remote storage devices. 12. A system, comprising: memory configured to store instructions; and one or more processors configured to execute the instructions to at least: manage, by a software agent executing at a smart network interface card configured at a host machine of a cloud computing environment, a persistent storage at the host machine that is accessible to the software agent at the smart network interface card, the persistent storage being configured to store or provide data by request of the smart network interface card, the persistent storage being associated with a storage volume that is further associated with a remote storage device of the cloud computing environment, the remote storage device being accessible to the software agent via a network; obtain, by the software agent, configuration parameters that specify whether to utilize the persistent storage at the host machine for read operations or write operations; receive, by the software agent executing at the smart network interface card, from the host machine, a data request being associated with an input/output operation comprising a read operation or a write operation; responsive to identifying that the data request comprises the input/output operation, determine, by the software agent executing at the smart network interface card and based at least in part on the configuration parameters, whether to utilize the persistent storage at the host machine or the remote storage device to fulfill the data request; and responsive to determining that the persistent storage at the host machine is to be utilized to fulfill the data request, execute, by the software agent executing at the smart network interface card, one or more operations to cause the persistent storage to be utilized to fulfill the data request. 13. The system of claim 12 , wherein the input/output operation comprises the read operation and wherein executing the one or more operations between the software agent executing at the smart network interface card and the persistent storage that is accessible to the software agent to fulfill the data request causes the system to: determine, by the software agent executing at the smart network interface card and based at least in part on the data request, that a data payload corresponding to the read operation is stored in the persistent storage that is accessible to the softw
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Single storage device · CPC title
Storing data temporarily at an intermediate stage, e.g. caching · CPC title
in relation to throughput · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.