Persistent memory based caching for intelligent network interface cards

US12346565B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12346565-B2
Application numberUS-202318318457-A
CountryUS
Kind codeB2
Filing dateMay 16, 2023
Priority dateMay 18, 2022
Publication dateJul 1, 2025
Grant dateJul 1, 2025

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.

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • G06F3/0613Primary

    in relation to throughput · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · 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 US12346565B2 cover?
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…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F3/0613. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 01 2025 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).