One-sided reliable remote direct memory operations

US11379403B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11379403-B2
Application numberUS-202017071174-A
CountryUS
Kind codeB2
Filing dateOct 15, 2020
Priority dateAug 6, 2018
Publication dateJul 5, 2022
Grant dateJul 5, 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.

Techniques are provided to allow more sophisticated operations to be performed remotely by machines that are not fully functional. Operations that can be performed reliably by a machine that has experienced a hardware and/or software error are referred to herein as Remote Direct Memory Operations or “RDMOs”. Unlike RDMAs, which typically involve trivially simple operations such as the retrieval of a single value from the memory of a remote machine, RDMOs may be arbitrarily complex. The techniques described herein can help applications run without interruption when there are software faults or glitches on a remote system with which they interact.

First claim

Opening claim text (preview).

What is claimed is: 1. A method of performing an operation on a first computing device, comprising: executing, on the first computing device, an application capable of performing the operation; wherein the first computing device includes a network interface controller with an execution candidate capable of interpreting instructions that, when interpreted, cause performance of the operation; wherein the application and the execution candidate have access to a shared memory of the first computing device; wherein the operation requires multiple accesses to data in the shared memory; selecting, by a requesting entity executing on a second computing device that is remote relative to the first computing device, a target from among the application and the execution candidate; responsive to the application being selected as the target, the requesting entity sending the application a request to perform the operation; and responsive to the execution candidate being selected as the target, the requesting entity causing the execution candidate to interpret instructions that, when interpreted by the execution candidate, cause performance of the operation. 2. The method of claim 1 further comprising sending, from the second computing device to the first computing device, data that specifies the instructions that, when interpreted by the execution candidate, cause performance of the operation. 3. The method of claim 1 wherein the execution candidate is a JAVA virtual machine and the instructions are byte-code. 4. The method of claim 3 wherein the execution candidate is implemented in firmware of the network interface controller. 5. The method of claim 3 wherein the execution candidate is software executing on one or more processors within the network interface controller. 6. The method of claim 1 , wherein the shared memory associated with the first computing device is volatile memory contained by the first computing device. 7. The method of claim 1 wherein the application is implemented within an operating system executing on the first computing device. 8. The method of claim 1 wherein the application is implemented within a privileged domain on the first computing device. 9. The method of claim 1 , wherein: said selecting, by the requesting entity, the target from among the application and the execution candidate is based on one or more factors; the one or more factors comprise one or more of: relative amount of resources available to the application and to the execution candidate; likelihood of failure; likelihood of crashing; an indication of unavailability of the application; or complexity of the operation. 10. One or more non-transitory computer-readable media storing one or more sequences of instructions for performing an operation on a first computing device, the one or more sequences of instructions comprising instructions that, when executed by one or more processors, cause: executing, on the first computing device, an application capable of performing the operation; wherein the first computing device includes a network interface controller with an execution candidate capable of interpreting instructions that, when interpreted, cause performance of the operation; wherein the application and the execution candidate have access to a shared memory of the first computing device; wherein the operation requires multiple accesses to data in the shared memory; selecting, by a requesting entity executing on a second computing device that is remote relative to the first computing device, a target from among the application and the execution candidate; responsive to the application being selected as the target, the requesting entity sending the application a request to perform the operation; and responsive to the execution candidate being selected as the target, the requesting entity causing the execution candidate to interpret instructions that, when interpreted by the execution candidate, cause performance of the operation. 11. The one or more non-transitory computer-readable media of claim 10 , wherein the one or more sequences of instructions further comprise instructions that, when executed by one or more processors, cause sending, from the second computing device to the first computing device, data that specifies the instructions that, when interpreted by the execution candidate, cause performance of the operation. 12. The one or more non-transitory computer-readable media of claim 10 wherein the execution candidate is a JAVA virtual machine and the instructions are byte-code. 13. The one or more non-transitory computer-readable media of claim 10 , wherein the shared memory associated with the first computing device is volatile memory contained by the first computing device. 14. The one or more non-transitory computer-readable media of claim 12 wherein the execution candidate is implemented in firmware of the network interface controller. 15. The one or more non-transitory computer-readable media of claim 12 wherein the execution candidate is software executing on one or more processors within the network interface controller. 16. The one or more non-transitory computer-readable media of claim 10 wherein the application is implemented within an operating system executing on the first computing device. 17. The one or more non-transitory computer-readable media of claim 10 wherein the application is implemented within a privileged domain on the first computing device. 18. The one or more non-transitory computer-readable media of claim 10 , wherein: said selecting, by the requesting entity, the target from among the application and the execution candidate is based on one or more factors; the one or more factors comprise one or more of: relative amount of resources available to the application and to the execution candidate; likelihood of failure; likelihood of crashing; an indication of unavailability of the application; or complexity of the operation.

Assignees

Inventors

Classifications

  • Hypervisors; Virtual machine monitors · CPC title

  • Failover techniques · CPC title

  • using centralised failover control functionality · CPC title

  • G06F15/167Primary

    using a common memory, e.g. mailbox · CPC title

  • where the redundant components share persistent storage (G06F11/2043 takes precedence) · 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 US11379403B2 cover?
Techniques are provided to allow more sophisticated operations to be performed remotely by machines that are not fully functional. Operations that can be performed reliably by a machine that has experienced a hardware and/or software error are referred to herein as Remote Direct Memory Operations or “RDMOs”. Unlike RDMAs, which typically involve trivially simple operations such as the retrieval…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification G06F11/2023. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 05 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).