EP-3942422-B1 - SYSTEM AND METHOD FOR FACILITATING EFFICIENT MANAGEMENT OF NON-IDEMPOTENT OPERATIONS IN A NETWORK INTERFACE CONTROLLER (NIC)
Inventors
- ROWETH, DUNCAN
- ALVERSON, ROBERT L.
- CHENG, ALBERT
- JOHNSON, TIMOTHY J.
Dates
- Publication Date
- 20260506
- Application Date
- 20200323
Claims (13)
- A network interface controller, NIC (202), comprising: a network interface (22) to receive a request (312) for an operation from a remote device (302) wherein the request includes an acknowledgment corresponding to a sequence of responses successfully received by the remote device and includes an indicator that indicates whether the operation is a non-idempotent operation; a storage management logic block to: store, in a local data structure (330), outcome of operations executed by the network interface controller; obtain, from the request, the acknowledgment corresponding to the sequence of successfully received responses; and remove, from the data structure, a set of outcomes based on the sequence of successfully received responses; and an operation management logic block to: determine whether the operation has been previously executed by the network interface controller and whether the operation is a non-idempotent operation based on the indicator in the request; in response to determining that the operation has previously been executed and is a non-idempotent operation, obtain an outcome of the operation from the data structure; and generate a response comprising the obtained outcome for responding to the request and provide the response to the remote device.
- The network interface controller of claim 1, wherein the operation management logic block is further to determine whether the operation has been previously executed based on a sequence number of the operation and an expected sequence number.
- The network interface controller of claim 1, wherein, in response to determining that the operation has previously not been executed, the operation management logic block is further to execute the operation to generate the outcome.
- The network interface controller of claim 3, wherein the storage management logic block is further to store the generated outcome in the data structure.
- The network interface controller of claim 1, wherein a respective response of the sequence of responses is associated with a respective sequence number.
- The network interface controller of claim 1, wherein the operation is among a set of sequential operations that are to be executed in order.
- A method, comprising: receiving, by a network interface controller, NIC (202), a request (312) for an operation from a remote device (302), wherein the request includes an acknowledgment corresponding to a sequence of responses successfully received by the remote device and includes an indicator that indicates whether the operation is a non-idempotent operation; storing, in a local data structure (330) of the NIC, outcome of operations executed by the NIC; obtaining, from the request, the acknowledgment corresponding to the sequence of successfully received responses; removing, from the data structure, a set of outcomes based on the sequence of successfully received responses; determining whether the operation has previously been executed by the NIC and whether the operation is a non-idempotent operation based on the indicator in the request; in response to determining that the operation has previously been executed and is a non-idempotent operation, obtaining an outcome of the operation from the data structure; and generating a response (314) comprising the obtained outcome for responding to the request and providing the response to the remote device.
- The method of claim 7, further comprising determining whether the operation has been previously executed based on a sequence number of the operation and an expected sequence number.
- The method of claim 7, further comprising, in response to determining that the operation has previously not been executed, executing the operation to generate the outcome.
- The method of claim 9, further comprising storing the generated outcome in the data structure.
- The method of claim 7, wherein a respective response of the sequence of responses is associated with a respective sequence number.
- The method of claim 7, wherein the operation is among a set of sequential operations that are to be executed in order.
- A computer system (550), comprising: a processor (552); a memory device (554); a network interface controller, NIC, (202) according to claims 1-6; and a host interface (210) to couple the NIC.
Description
BACKGROUND Field This is generally related to the technical field of networking. More specifically, this disclosure is related to systems and methods for facilitating a network interface controller (NIC) with efficient management of non-idempotent operations. Related Art As network-enabled devices and applications become progressively more ubiquitous, various types of traffic as well as the ever-increasing network load continue to demand more performance from the underlying network architecture. For example, applications such as high-performance computing (HPC), media streaming, and Internet of Things (IOT) can generate different types of traffic with distinctive characteristics. As a result, in addition to conventional network performance metrics such as bandwidth and delay, network architects continue to face challenges such as scalability, versatility, and efficiency. US 2012/117423 A1 relates, in general, to distributed processing, and in particular, to providing fault tolerance in distributed systems. US 2013/311525 A1 describe systems and methods that facilitate idempotent execution of commands generated by a client for execution by a database server. US 2015/067095 A1 disclose methods and systems for generating an idempotent workflow. SUMMARY A network interface controller (NIC) capable of efficient management of non-idempotent operations is provided. The NIC that can be equipped with a network interface, storage management logic block, and an operation management logic block. During operation, the network interface can receive a request for an operation from a remote device. The storage management logic block can store outcomes of operation executed by the NIC in a local data structure. The operation management logic block can determine whether the NIC has previously executed the operation. If the NIC has previously executed the operation, the operation management logic block can obtain an outcome of the operation from the data structure and generate a response comprising the obtained outcome for responding to the request. The present invention is defined by claims 1, 7 and 13. Exemplary embodiments are further defined in the dependent claims. BRIEF DESCRIPTION OF THE FIGURES FIG. 1 shows an exemplary network.FIG. 2A shows an exemplary NIC chip with a plurality of NICs.FIG. 2B shows an exemplary architecture of a NIC.FIG. 3 shows an exemplary dynamic management process for non-idempotent operations in a NIC.FIG. 4A shows a flow chart of a dynamic management process for non-idempotent operations in a source NIC.FIG. 4B shows a flow chart of a dynamic management process for non-idempotent operations in a target NIC.FIG. 5 shows an exemplary computer system equipped with a NIC that facilitates dynamic management of non-idempotent operations. In the figures, like reference numerals refer to the same figure elements. DETAILED DESCRIPTION Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present invention is not limited to the embodiments shown. Overview The present disclosure describes systems and methods that facilitate dynamic management for non-idempotent operations in a network interface controller (NIC). The NIC allows a host to communicate with a data-driven network. The embodiments described herein solve the problem of ensuring proper execution of remotely-requested non-idempotent operations by (i) storing the outcome (or result) of the non-idempotent operations, which can be issued from a remote source, at a target NIC until acknowledged from the source, and (ii) upon receiving a request for an already-executed operation from the source, generating a response with the stored outcome. In this way, the NIC may avoid re-execution of a non-idempotent operation even if the source reissues the request. During operation, an application, which may run on a source device of a NIC, can request a data operation (e.g., a "GET" or a "PUT" command of remote direct memory access (RDMA)) for a memory location of a remote target device. The NIC of the target device can receive the request, facilitate the execution of the operation, and send a response with the outcome of the execution. Examples of an outcome can include, but are not limited to, one or more values generated from a computation associated with the operation, an indicator that indicates successful or unsuccessful execution of the operation, a memory location or index associated with the operation, and information indicating the state of a data structure based on the execution of the operation on the data structure. The NICs of the source and target devices can be referred to as the source and target NICs, respectively. The operation can be an idempotent or a non-idempotent operation. An idempotent operation may be executed