CN113326154B - Connection management method, device, electronic equipment and storage medium - Google Patents

Connection management method, device, electronic equipment and storage medium Download PDF

Info

Publication number
CN113326154B
CN113326154B CN202110720140.6A CN202110720140A CN113326154B CN 113326154 B CN113326154 B CN 113326154B CN 202110720140 A CN202110720140 A CN 202110720140A CN 113326154 B CN113326154 B CN 113326154B
Authority
CN
China
Prior art keywords
connection
rdma
event
request
connection request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110720140.6A
Other languages
Chinese (zh)
Other versions
CN113326154A (en
Inventor
周炜
雍帅
霍道安
刘烨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110720140.6A priority Critical patent/CN113326154B/en
Publication of CN113326154A publication Critical patent/CN113326154A/en
Application granted granted Critical
Publication of CN113326154B publication Critical patent/CN113326154B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer And Data Communications (AREA)

Abstract

The embodiment of the application provides a connection management method, a device, electronic equipment and a storage medium, wherein the method comprises the following steps: receiving a connection request of a remote direct memory access, RDMA, connection of an application, the connection request being for requesting establishment of an RDMA connection with a second device through a first device; acquiring a connection list of RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter; when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list, establishing RDMA connection of the first device and the second device according to the connection structure body corresponding to the target connection multiplexing parameter. Based on the connection management method provided by the application, the resource overhead of the thread resource in the RDMA connection establishment process can be reduced.

Description

Connection management method, device, electronic equipment and storage medium
Technical Field
The embodiment of the application relates to the technical field of distributed storage, in particular to a connection management method, a device, electronic equipment and a computer storage medium.
Background
With the rapid rise of Cloud Computing (Cloud Computing), key business for users gradually go up to the Cloud. In the three-basic of cloud computing, distributed storage (Distributed Memory) faces challenges in terms of reliability, availability, and performance. The nature of distributed storage is a network storage that requires individual storage nodes to be built into clusters (clusters) using a network interconnection to provide more reliable high performance storage services to the outside.
In high-performance distributed storage, a conventional transmission control protocol (Transmission Control Protocol, TCP) network is used to perform network interconnection between storage nodes, so that network overhead exists in terms of Input/Output (I/O) delay of the distributed storage, and a network transmission bottleneck is easily formed. With the rapid increase in network bandwidth, remote direct data access (Remote Direct Memory Access, RDMA) networks that enable high performance transmission by bypassing central processing units (central processing unit, CPUs) are the choice for distributed storage.
In the related art, after a client initiates a connection request of an RDMA connection, it is necessary to create a connection after waiting for a response of a server, and for a scenario in which the client and the server are located in the same thread, there is a resource overhead for network resources in the RDMA connection process. Therefore, how to reduce the resource overhead of creating RDMA connections to thread resources is an important issue to be addressed.
Disclosure of Invention
The embodiment of the application provides a connection management method, a device, electronic equipment and a computer storage medium, which can reduce the resource overhead of the thread resource in the process of creating RDMA connection.
The connection management method provided by the embodiment of the application is applied to the first equipment and comprises the following steps:
Receiving a connection request of a remote direct memory access, RDMA, connection of an application, the connection request for requesting establishment of an RDMA connection with the second device through the first device;
acquiring a connection list of the RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter;
and when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list, establishing RDMA connection of the first device and the second device according to a connection structure body corresponding to the target connection multiplexing parameter.
In one implementation manner, the establishing, according to the connection structure body corresponding to the target connection multiplexing parameter, RDMA connection between the first device and the second device includes:
detecting RDMA events corresponding to the connection structure body at fixed time, and obtaining detection results of the RDMA events;
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event;
in the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection for the first device and the second device in accordance with the RDMA connection request and the connection fabric.
In one implementation, the timing detects an RDMA event corresponding to the connection fabric, including:
acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time;
and determining the RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event.
In one implementation, the determining whether to send the RDMA connection request to the second device according to the detection result of the RDMA event includes:
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event and the event type of the RDMA event.
In one implementation, the determining whether to send the RDMA connection request to the second device according to the detection result of the RDMA event includes:
acquiring detection duration of RDMA events corresponding to the connection structure;
and determining whether to send an RDMA connection request to the second device according to the comparison result of the detection duration and the first duration threshold.
In one implementation, before receiving a connection request for a remote direct memory access, RDMA, connection for an application, the method further comprises:
the descriptor of the RDMA event channel is determined to be the descriptor corresponding to the non-blocking mode.
In one implementation, the method further comprises:
receiving a connection response message sent by the second equipment; the connection response message is used for indicating that the RDMA connection establishment fails or that the RDMA connection establishment is successful;
under the condition that the RDMA connection establishment fails, re-acquiring a detection result of the RDMA event at intervals of a second duration threshold;
and determining whether to continue sending RDMA connection requests to the second device according to the detection result of the reacquiring the RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
In one implementation, the second duration threshold is positively correlated to a number of RDMA connection requests sent to the second device.
In one implementation, the value range of the second duration threshold is between a first preset duration and a second preset duration.
The embodiment of the application provides a connection management device, which is applied to a first device, and includes:
a receiving module, configured to receive a connection request of a remote direct memory access RDMA connection of an application, where the connection request is used to request establishment of an RDMA connection with the second device through the first device;
The acquisition module is used for acquiring a connection list of the RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter;
and the processing module is used for establishing RDMA connection of the first equipment and the second equipment according to a connection structure body corresponding to the target connection multiplexing parameter when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list.
In one implementation manner, the processing module is configured to establish an RDMA connection between the first device and the second device according to a connection structure corresponding to the target connection multiplexing parameter, and includes:
detecting RDMA events corresponding to the connection structure body at fixed time, and obtaining detection results of the RDMA events;
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event;
in the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection for the first device and the second device in accordance with the RDMA connection request and the connection fabric.
In one implementation, the processing module is configured to detect, in a timing manner, an RDMA event corresponding to the connection fabric, and includes:
Acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time;
and determining the RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event.
In one implementation, the processing module is configured to determine whether to send an RDMA connection request to the second device according to a detection result of the RDMA event, including:
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event and the event type of the RDMA event.
In one implementation, the processing module is configured to determine whether to send an RDMA connection request to the second device according to a detection result of the RDMA event, including:
acquiring detection duration of RDMA events corresponding to the connection structure;
and determining whether to send an RDMA connection request to the second device according to the comparison result of the detection duration and the first duration threshold.
In one implementation, before receiving a connection request for a remote direct memory access, RDMA, connection of an application, the receiving module is further to:
the descriptor of the RDMA event channel is determined to be the descriptor corresponding to the non-blocking mode.
In one implementation, the processing module is further configured to:
Receiving a connection response message sent by the second equipment; the connection response message is used for indicating that the RDMA connection establishment fails or that the RDMA connection establishment is successful;
under the condition that the RDMA connection establishment fails, re-acquiring a detection result of the RDMA event at intervals of a second duration threshold;
and determining whether to continue sending RDMA connection requests to the second device according to the detection result of the reacquiring the RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
In one implementation, the second duration threshold is positively correlated to a number of RDMA connection requests sent to the second device.
In one implementation, the value range of the second duration threshold is between a first preset duration and a second preset duration.
The embodiment of the application provides electronic equipment, which comprises a memory, a processor and a computer program stored on the memory and capable of running on the processor, wherein the processor realizes the connection management method provided by one or more of the technical schemes when executing the program.
Embodiments of the present application provide a computer storage medium storing a computer program; the computer program, when executed, is capable of implementing the connection management method provided by one or more of the foregoing technical solutions.
Based on the connection management method provided by the application, receiving a connection request of Remote Direct Memory Access (RDMA) connection of an application, wherein the connection request is used for requesting establishment of RDMA connection with a second device through a first device; acquiring a connection list of RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter; when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list, establishing RDMA connection of the first device and the second device according to the connection structure body corresponding to the target connection multiplexing parameter. The connection structure body corresponding to the target connection multiplexing parameter does not need to be created when the RDMA connection is established every time, so that the resource overhead of the thread resource caused by the RDMA connection creation process can be reduced.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the application.
Drawings
Fig. 1 is an application scenario diagram of a connection management method provided in an embodiment of the present application;
fig. 2 is a flow chart of a connection management method according to an embodiment of the present application;
fig. 3 is a flow chart of another connection management method according to an embodiment of the present application;
FIG. 4 is a graph of a second time period threshold variation provided in an embodiment of the present application;
fig. 5 is an interaction schematic diagram of a connection management method according to an embodiment of the present application;
fig. 6 is a flowchart of another connection management method according to an embodiment of the present application;
fig. 7 is a schematic diagram of a connection management device according to an embodiment of the present application;
fig. 8 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
The present application will be described in further detail with reference to the accompanying drawings and examples. It should be understood that the examples provided herein are for the purpose of illustrating the present application only and are not intended to limit the present application. In addition, the embodiments provided below are some of the embodiments for implementing the present application, and not all of the embodiments for implementing the present application, and the technical solutions described in the embodiments of the present application may be implemented in any combination without conflict.
Fig. 1 shows an application scenario diagram of a connection management method provided in an embodiment of the present application. Referring to fig. 1, the data transfer modes include a legacy mode, an RDMA mode. Here, the RDMA mode is a computer communication mode, and may be based on a shared memory, a communication coprocessor, and an RDMA controller, so as to implement data reading and writing to a storage device in a remote computer.
When data is transmitted in the traditional mode, network interconnection among storage nodes is realized based on a transmission control protocol, network overhead exists in the aspect of input/output delay of distributed storage, and network transmission bottlenecks are easy to form. In the RDMA mode, an RDMA network interface controller (RDMA-aware Network Interface Controller, RNIC) is adopted to directly perform data transmission with the registered memory area participating in the data transmission, so that the network transmission efficiency can be improved, and the network delay in the data transmission process can be reduced.
For a first device, a second device in a distributed system, an RDMA connection may be established for the first device and the second device prior to data transfer using RDMA mode. For example, an RDMA connection between a first device and a second device is established over ethernet, and an Infiniband (IB) technology is used to apply to service scenarios such as high performance computing.
In the related art, the first device needs to create an RDMA connection of the first device and the second device after waiting for a response of the second device after initiating a connection request of the RDMA connection to the second device. In the case where the first device and the second device are located in the same thread, there is a resource overhead on the line resources when creating the RDMA connection, resulting in network congestion for the threads of the first device and the second device. In the event of network congestion at the thread, the RDMA connection initiated by the first device is in a latency wait state for a long time, which may result in RDMA connection creation failure for the first device and the second device.
Fig. 2 is a flow chart illustrating a connection management method according to an embodiment of the present application. Referring to fig. 2, the connection management method provided in the embodiment of the present application, applied to a first device, may include the following steps:
step a201: a connection request is received for a remote direct memory access, RDMA, connection of an application, the connection request for requesting establishment of an RDMA connection with the second device through a first device.
Here, the application may be an application that performs data interaction based on a transport protocol of an RDMA service, which is denoted as an RDMA application. The first device and the second device may belong to two different functional units in the same network device, and are integrated in the same network device; or belong to two different network devices, for example, the first device is a client device and the second device is a server device.
In practical applications, the first device and the second device may be network cards supporting RDMA services.
In an example, at least one virtual machine running an RDMA application is deployed in a first device, and at least one virtual machine running an RDMA application is deployed in a second device. Data interactions may be performed between an RDMA application on a virtual machine in the first device, and an RDMA application on a virtual machine in the second device based on a transport protocol of the RDMA service.
In an example, the transport protocol of the RDMA service may include any of the following: iWARP protocol, roCE v1 protocol, roCE v2 protocol. Where RoCE is an acronym for RDMA (RDMA over Converged Ethernet) converged ethernet.
In an example, an RDMA application may invoke an application programming interface (Application Programming Interface, API) to initiate a connection request for an RDMA connection to a first device. Accordingly, the first device receives a connection request initiated by the RDMA application.
In an example, the RDMA application may specify a network address, network port, connection multiplexing parameter set of the second device when invoking a connection request of the application programming interface to initiate an RDMA connection to the first device. The RDMA application may establish RDMA connections with different server devices through the first device by inputting different connection multiplexing parameters to the application program interface.
In an example, the RDMA application may query, via an application program interface, whether the connection state of the first device and the second device is connected.
Step A202: acquiring a connection list of RDMA connection according to the connection request; the connection list includes at least one connection multiplexing parameter.
Here, the connection list of RDMA connections may store at least one connection multiplexing parameter set. The connection multiplexing parameter set may contain one connection multiplexing parameter, or a plurality of connection multiplexing parameters.
In an example, according to an application scenario of RDMA connection, a parameter number of connection multiplexing parameters and a parameter type of the connection multiplexing parameters are set in a connection multiplexing parameter set. The application scenario of RDMA connection may include application of RDMA technology in large-scale clusters, application of RDMA technology in data centers.
In an example, a first device obtains a connection list of an RDMA connection upon receiving a connection request of the RDMA connection initiated by an RDMA application, determines whether a target connection multiplexing parameter consistent with a connection parameter in the connection request exists in the connection list.
It should be appreciated that the resource overhead of RDMA connections to network resources is reduced in cases where there are multiple sub-modules communicating within a process based on connection multiplexing parameters.
Step A203: when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list, establishing RDMA connection of the first device and the second device according to the connection structure body corresponding to the target connection multiplexing parameter.
Here, a connection structure corresponding to the target connection multiplexing parameter is defined using a work queue element (Work Queue Element, WQE). A WQE contains a pointer to the buffer. Work queue elements are classified into work queue elements in a transmit queue and work queue elements in a receive queue. The WQE in the sending queue comprises a pointer pointing to data to be sent and a buffer area pointing to the data to be sent; pointers in WQEs in the receive queue point to buffers used to store data to be received.
In an example, the first device, upon receiving a request to create a connection for an application, checks whether there are target connection multiplexing parameters in the connection list that are consistent with the connection parameters in the connection request. The first device sends a connection request to the second device if it is determined that there is a target connection multiplexing parameter in the connection list that matches the connection parameter in the connection request.
In an example, the first device creates a connection structure corresponding to the target connection multiplexing parameter and adds the connection multiplexing parameter corresponding to the connection structure to the connection list of the first device when it is determined that the target connection multiplexing parameter consistent with the connection parameter in the connection request does not exist in the connection list.
In an example, in the case of creating a connection structure corresponding to the target connection multiplexing parameter, the first device sets the connection state of the RDMA connection to the unconnected state, and sets the reference count of the connection structure corresponding to the target connection multiplexing parameter to 1.
Based on the connection management method provided by the application, under the condition that a connection request of an applied RDMA connection is received, a connection list of the RDMA connection is obtained; the connection list comprises at least one connection multiplexing parameter set; when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list, establishing RDMA connection of the first device and the second device according to the connection structure body corresponding to the target connection multiplexing parameter. The connection structure body corresponding to the target connection multiplexing parameter does not need to be created when the RDMA connection is established every time, so that the resource overhead of the thread resource caused by the RDMA connection creation process can be reduced.
In practical applications, the above steps a201 to a203 may be implemented by a processor, which may be at least one of an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a digital signal processor (Digital Signal Processor, DSP), a digital signal processing device (Digital Signal Processing Device, DSPD), a programmable logic device (Programmable Logic Device, PLD), a field programmable gate array (Field Programmable Gate Array, FPGA), a central processing unit (Central Processing Unit, CPU), a controller, a microcontroller, and a microprocessor.
In one implementation manner, the establishing RDMA connection between the first device and the second device according to the connection structure body corresponding to the target connection multiplexing parameter, referring to fig. 3, may include the following steps:
step a301: and detecting RDMA events corresponding to the connection structure body at fixed time, and obtaining detection results of the RDMA events.
In an example, a time period is preset to be T, and in a first time period threshold, an RDMA event corresponding to a connection structure is detected at regular time according to the time period T, and a detection result of the RDMA event is obtained. That is, within the first time period, the RDMA event corresponding to the connection structure is detected every time period T, and the detection result of the RDMA event is obtained.
It should be appreciated that controlling the timing of detecting the time interval of RDMA events corresponding to the connection fabric based on the preset time period T may reduce the resource overhead of creating RDMA connection procedures on thread resources relative to detecting RDMA events corresponding to the connection fabric in real time.
In an example, within a first time length threshold, a file descriptor of an RDMA event channel rdma_cm_event_channel is detected once every interval time period T, and an RDMA event corresponding to a connection structure is determined according to the file descriptor, so that a detection result of the RDMA event is obtained.
Step a302: according to the detection result of the RDMA event, whether to send the RDMA connection request to the second device is determined.
In an example, an RDMA connection request is sent to the second device where the detection of the RDMA event indicates that the network address of the second device is normal and that the network route between the first device and the second device is normal.
For example, in the case where the detection result of the RDMA EVENT is that the rdma_cm_event_addr_limited EVENT is detected, it is determined that the network address of the second device is normal.
And determining that the network ROUTE between the first device and the second device is normal under the condition that the RDMA EVENT detection result is that the RDMA_CM_event_route_reduced EVENT is detected.
In an example, in a case where the detection of the RDMA event indicates that the network address of the second device is abnormal and the network route between the first device and the second device is abnormal, the RDMA connection request is not sent to the second device.
Step a303: in the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection of the first device and the second device based on the RDMA connection request and the connection fabric.
In an example, in the event that it is determined to send an RDMA connection request to a second device, an RDMA library function rdma_connect () is invoked, initiating the RDMA connection request to the second device. Here, the identification information of the RDMA connection is rdma_cm_id.
In an example, in the event that it is determined to send an RDMA connection request to the second device, the RDMA library function RDMA_create_id () is called to create an RDMA connection according to the RDMA event channel RDMA_cm_event_channel, setting a connection request parameter of the RDMA connection. Sending an RDMA connection request to the second device according to the connection request parameters of the RDMA connection.
In an example, a first device sends an RDMA connection request to a second device, calling RDMA library function RDMA_create_qp () to create a connection structure in the EVENT an RDMA_CM_EVENT_ESTABLISHED EVENT is detected. RDMA connections of the first device and the second device are established according to the connection fabric.
In one implementation, after a first device sends a connection request to a second device, the second device detects an RDMA connection request event on an event channel of the RDMA connection. And under the condition that the RDMA connection request event is detected, analyzing the connection request parameter of the first device, creating an RDMA resource corresponding to the connection request parameter, adding the RDMA connection into a connection list of the second device, and returning a connection response to the first device.
In an example, the second device detects an RDMA connection request event on a File Descriptor (FD) of an RDMA event channel rdma_event_channel. Here, the RDMA connection REQUEST EVENT may be denoted as rdma_cm_event_connect_request EVENT.
In an example, when detecting an RDMA connection request event, the second device parses a connection request parameter of the first device, creates an RDMA resource corresponding to the connection request parameter, adds an RDMA connection to a connection list of the second device, and calls an RDMA library function rdma_accept () to return a connection answer to the first device.
Here, the connection request parameter includes a queue length of a remote procedure call (Remote Procedure Call, RPC) request queue of the first device.
In an example, the second device creating an RDMA resource corresponding to the connection request parameter may include the steps of: the second device calls RDMA library function RDMA_create_qp () to create an RDMA queue; the second device creates an RPC request queue for the RDMA connection.
In an example, where the second device creates an RPC request queue for an RDMA connection, the minimum of the queue lengths in the RPC request queue of the first device and the RPC request queue of the second device is taken as the queue length of the RPC request queue.
In an example, a first device detects an rdma_cm_event_established EVENT on a file descriptor of an RDMA EVENT channel rdma_event_channel, creates an RPC request queue for the RDMA connection, updates a connection state of the RDMA connection to a connected state. Thus, an RDMA connection is established for the first device and the second device.
In one implementation, the timing detects an RDMA event corresponding to the connection fabric, including:
acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time; and determining the RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event.
In an example, RDMA library function RDMA_bind_addr () is called, RDMA_cm_id is bound to a listening port set by an application, RDMA library function RDMA_listen () is called, and a file descriptor of RDMA event channel RDMA_event_channel is listened to.
In an example, within a first time period, a file descriptor of an RDMA event channel rdma_event_channel is detected once every interval time period T, whether event generation exists on the file descriptor of the RDMA event channel rdma_event_channel is confirmed, and when event generation exists on the file descriptor, an RDMA event corresponding to a connection structure is determined according to the file descriptor.
It should be appreciated that based on timing detection of RDMA events corresponding to a connection fabric, resource overhead of creating RDMA connection procedures on thread resources may be reduced relative to detecting RDMA events corresponding to a connection fabric in real-time.
In one implementation, the determining whether to send the RDMA connection request to the second device according to the detection result of the RDMA event includes:
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event and the event type of the RDMA event.
In an example, a network address of a second device connected by an application request is analyzed, an RDMA library function RDMA_resolve_addr () is called, a file descriptor of an RDMA event channel RDMA_cm_event_channel is detected once in a first time period T within a first time period, and a detection result of an RDMA event is obtained.
In an example, the event type of the RDMA event includes any of the following: RDMA event corresponding to network address of first device, network route between first device and second device.
Wherein, the RDMA EVENT corresponding to the network address of the first device is referred to as an RDMA_CM_EVENT_ADDR_RESOLVED EVENT, and the RDMA EVENT corresponding to the network ROUTE between the first device and the second device is referred to as an RDMA_CM_EVENT_ROUTE_RESOLVED EVENT.
It should be appreciated that based on the detection result of the RDMA event and the event type of the RDMA event, it may be identified whether the network address of the first device is normal, whether the network route between the first device and the second device is normal, and in the case that the network address of the first device is normal and the network route between the first device and the second device is normal, the RDMA connection request is sent to the second device. Thus, the resource overhead of creating RDMA connections to thread resources is reduced.
In an example, in the EVENT that an rdma_cm_event_addr_reduced EVENT is detected, rdma_cm_event_route_reduced EVENT continues to be detected. In the EVENT that an RDMA_CM_EVENT_ADDR_RESOLVED EVENT is not detected, the resources of the RDMA connection are released.
In an example, routing information between a first device and a second device is analyzed, an RDMA library function RDMA_resolve_route () is called, and in a first time length threshold, file descriptors of RDMA_cm_event_channel are detected once in an interval time period T, and a detection result of an RDMA event is obtained.
Here, the routing information of the network address of the first device to the second device specified by the application may be the routing information of the network address of the first device to the second device specified by the application.
In an example, in the EVENT of detecting an rdma_cm_event_route_reduced EVENT, an RDMA queue is created by calling RDMA library function rdma_create_qp (), a connection request parameter for an RDMA connection is set, an RDMA library function rdma_connect (), and a connection request is initiated to a second device.
In an example, when an rdma_cm_event_addr_reserved EVENT is not detected, the resources of the RDMA connection are released.
In one implementation, the determining whether to send the RDMA connection request to the second device according to the detection result of the RDMA event includes:
acquiring detection duration of RDMA events corresponding to the connection structure; and determining whether to send an RDMA connection request to the second device according to the comparison result of the detection duration and the first duration threshold.
In an example, a detection duration of an RDMA event corresponding to a detection connection fabric is obtained; and stopping detecting the RDMA event corresponding to the connection structure body and not sending the RDMA connection request to the second device under the condition that the detection duration is greater than the first duration threshold.
In an example, a detection duration of an RDMA event corresponding to a detection connection fabric is obtained; and stopping detecting the RDMA event corresponding to the connection structure body under the condition that the detection duration is smaller than the first duration threshold value. And sending an RDMA connection request to the second device under the condition that the network address of the second device is normal and the network route between the first device and the second device is normal as indicated by the detection result of the RDMA event.
It should be appreciated that, according to the comparison result of the detection duration and the first duration threshold, the detection duration of the RDMA event corresponding to the detection connection structure may be controlled such that the detection duration is less than the first duration threshold, thereby reducing the resource overhead of the thread resource in the process of creating the RDMA connection.
In one implementation, before receiving a connection request for a remote direct memory access, RDMA, connection for an application, the method further comprises: the descriptor of the RDMA event channel is determined to be the descriptor corresponding to the non-blocking mode.
In an example, a first device initializes RDMA resources including RDMA event channel rdma_cm_event_channel and RDMA completion queue ibv _cq.
In an example, the file descriptor of RDMA event channel RDMA_event_channel is set to non-blocking mode, and the file descriptor of RDMA_event_channel is added to polfd.
Here, the file descriptor of RDMA event channel rdma_event_channel may be used to track RDMA events defined by RDMA programming libraries.
In the embodiment of the application, the RDMA connection is created in a non-blocking mode, and when the application calls the application program interface to create the RDMA connection, the connection pointer returned by the first device is obtained, and the connection of the first device to the second device is not required to be completed. Thus, the method is suitable for a scene of connecting a second device of the same thread in a high-performance polling programming mode.
In an example, in a high performance polling programming mode, a storage performance development kit (Storage Performance Development Kit, SPDK) poller may be employed to communicate with the same node for multiple sub-modules that exist within the program, sharing RDMA connections to save network resources.
Accordingly, within the threads of the first device and the second device, multiple RDMA connections may share RDMA event channel rdma_cm_event_channel.
In one implementation, the establishing an RDMA connection between the first device and the second device according to the sending an RDMA connection request to the second device includes:
receiving a connection response message sent by the second equipment; the connection response message is used for indicating that the RDMA connection establishment fails or that the RDMA connection establishment is successful; under the condition that the RDMA connection establishment fails, re-acquiring a detection result of the RDMA event at intervals of a second duration threshold; and determining whether to continue sending RDMA connection requests to the second device according to the detection result of the reacquiring the RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
In an example, in the event of an RDMA connection failure, the resources of the RDMA connection are released. Creating an RDMA (remote direct memory access) connected timer, and re-acquiring a detection result of an RDMA event after the timer passes a preset time; and determining whether to continue sending the RDMA connection request to the second device according to the detection result of the reacquiring RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
It should be appreciated that the first device re-acquires the detection result of the RDMA event after the RDMA connection fails, with the interval of the second duration threshold; according to the detection result of the RDMA event, whether to continue sending the RDMA connection request to the second device is determined, and compared with sending the RDMA connection request to the second device in real time, the resource cost of the thread resource in the process of creating the RDMA connection can be reduced.
In one implementation, the second duration threshold is positively correlated to a number of RDMA connection requests sent to the second device.
In an example, referring to fig. 4, the second duration threshold is lengthened as the number of reconnections increases, the size of the second duration threshold is dynamically set, and the second duration threshold is positively correlated with the number of RDMA connection requests sent to the second device. Here, the time length corresponding to the second duration threshold is a reconnection time interval.
It should be appreciated that since the second duration threshold is positively correlated with the number of RDMA connection requests sent to the second device, the greater the number of RDMA connection requests sent by the first device to the second device, the greater the corresponding length of time for the second duration threshold. Thus, the resource overhead of creating RDMA connections to thread resources may be reduced.
In an example, according to the application scenario of RDMA connection, a threshold range of the number of reconnections is set, for example, the minimum value of the number of reconnections is 10, and the maximum value of the number of reconnections is 100.
In one implementation, the value range of the second duration threshold is between a first preset duration and a second preset duration.
In an example, the value range of the second duration threshold is [ Min, max ], where Min corresponds to the first preset duration and Max corresponds to the second preset duration.
In an example, a range of values for the second duration threshold is set according to an application scenario of the RDMA connection. For example, the second duration threshold has a value ranging from [50ms,5s ], where the first preset duration is 50ms and the second preset duration is 5s.
It should be appreciated that, based on setting the numerical range of the second duration threshold, the duration of the second duration threshold may be flexibly controlled, so as to reduce the resource overhead of creating the RDMA connection process on the thread resource.
In one implementation manner, in the above connection management method, the method may further include the following steps:
and releasing the resources of the RDMA connection according to the running state information of the RDMA connection.
In an example, a first device determines operating state information for an RDMA connection based on a reference count for the RDMA connection. The first device decrements the reference count of the RDMA connection by 1 upon receiving an application-initiated request to delete the RDMA connection.
In an example, where the reference count of the RDMA connection is greater than 0, the operating state information of the RDMA connection is determined to be that the RDMA application is using the RDMA connection. In the case where the reference count of the RDMA connection is equal to 0, the operating state information of the RDMA connection is determined as not having the RDMA application using the RDMA connection.
In an example, where the reference count of the RDMA connection is equal to 0, the first device invokes the RDMA library function rdma_disconnect (), disconnects the RDMA connection of the first device and the second device, and releases the resources of the RDMA connection.
Further, the RDMA connection is deleted from the connection list of the first device, releasing the connection fabric of the RDMA connection.
In an example, after a first device disconnects from a second device, the second device detects an interrupt event of the RDMA connection on a file descriptor of rdma_cm_event_channel.
In an example, the second device releases RDMA resources related to the RDMA connection, deletes the RDMA connection from a connection list of the second device, and releases a connection structure of the RDMA connection if an interrupt event of the RDMA connection is detected.
Here, the RDMA connection interrupt EVENT may be defined as an rdma_cm_event_disconnected EVENT.
In one implementation manner, in the above connection management method, before receiving a connection request of the remote direct memory access RDMA connection of the application, the first device may further include the following steps:
initializing the resources of the RDMA connection.
In an example, initializing RDMA resources includes the steps of:
step 1.1: create RDMA event channel rdma_event_channel, call RDMA library function rdma_create_event_channel () create event channel of RDMA connection.
It should be appreciated that the RDMA_create_event_channel () library function may be used to create an event channel (event channel) that is a channel used by an RDMA device to notify an application when an event such as a connection request occurs or after an operation is completed.
In an example, there is one file descriptor inside the event channel, which is monitored using a poll function.
Step 1.2: calling an RDMA library function ibv _create_cq (), creating a completion queue ibv _cq for the RDMA connection; and calling an RDMA library function RDMA_get_devices () according to the device handle ibv _context corresponding to the RDMA connection to acquire resources of the RDMA connection.
Step 1.3: according to the device handle ibv _context, the RDMA connected protection domain ibv _pd is created, the RDMA library function ibv _alloc_pd () is called, and a memory protection unit is created (protection domain).
It should be understood that the memory protection unit is configured to directly establish an association between the memory area and the queue, so as to prevent unauthorized access.
Step 1.4: the RDMA library function RDMA_create_id () is called, creating the identification information RDMA_cm_id of the RDMA connection.
In an example, the second device initializes the RDMA resource and the binding port to snoop, and the first device initializes the RDMA resource to wait for the application to initiate the connection. The second device and the first device respectively set the file descriptors of the RDMA event channel into a non-blocking mode; in the case of an application call creating an RDMA connection application program interface, the first device creates a connection fabric return application, starting to asynchronously connect the second device.
Correspondingly, after receiving the connection request of the first device, the second device creates a connection structure body of the second device and returns a response of the first device; after the first device receives the response, the RDMA connection of the first device and the second device is completed, and the connection state of the first device and the second device is updated.
Based on the same technical concept as the foregoing embodiments, referring to fig. 5, the connection management method provided in the embodiment of the present application may include:
step a501: the first device initializes RDMA resources.
Step A502: the first device sets a file descriptor of the RDMA connection channel to a non-blocking mode;
step A503: the first device creates a connection fabric for the RDMA connection.
Step A504: the first device creates a resource for the RDMA connection.
Step A505: the first device sends a connection request to the second device.
Step A506: the second device creates a connection fabric for the RDMA connection and resources for the RDMA connection.
In an example, the second device may initialize RDMA resources, set file descriptor FD of RDMA connection channel to non-blocking mode, before creating connection fabric of RDMA connection and resources of RDMA connection.
Step A507: the second device returns a connection reply to the first device.
Step A508: the first device updates a connection state of the RDMA connection.
Based on the same technical concept as the foregoing embodiments, referring to fig. 6, the connection management method provided in the embodiment of the present application may include:
step A601: the first device receives a connection request for an applied RDMA connection.
Step A602: the first device creates a connection fabric for the RDMA connection.
Step A603: the first device creates identification information for the RDMA connection.
Step A604: the network address of the second device to which the application requests the connection is resolved.
Step a605: whether an RDMA event corresponding to a network address is detected.
In an example, the RDMA EVENT corresponding to the network address may be the rdma_cm_event_addr_reserved EVENT described above.
In an example, in the EVENT that an rdma_cm_event_addr_reduced EVENT is detected, the following step a606 is performed, otherwise the following step a611 is performed.
Step A606: and analyzing the route information between the first device and the second device.
Step a607: whether an RDMA event corresponding to the routing information is detected.
In an example, the RDMA EVENT corresponding to the routing information may be the rdma_cm_event_route_limited EVENT described above.
In an example, in the EVENT that an rdma_cm_event_route_limited EVENT is detected, the following step a608 is performed, otherwise the following step a611 is performed.
Step a608: the first device sends an RDMA connection request to the second device.
Step a609: whether an RDMA connection creation completion corresponding RDMA event is detected.
In an example, the RDMA connection creation completion corresponding RDMA EVENT may be the rdma_cm_event_established EVENT described above.
In an example, in case an rdma_cm_event_established EVENT is detected, the following step a610 is performed, otherwise the following step a611 is performed.
Step a610: connection state information for the RDMA connection is updated.
Step A611: network resources of the RDMA connection are released.
Based on the same technical concept as the foregoing embodiments, referring to fig. 7, the connection management apparatus provided in the embodiment of the present application may include:
a receiving module 701, configured to receive a connection request of a remote direct memory access RDMA connection of an application, where the connection request is used to request establishment of an RDMA connection with the second device through the first device;
an obtaining module 702, configured to obtain a connection list of the RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter;
a processing module 703, configured to, when there is a target connection multiplexing parameter in the connection list that matches the connection parameter in the connection request, establish an RDMA connection between the first device and the second device according to a connection structure corresponding to the target connection multiplexing parameter.
In one implementation, the processing module 703 is configured to establish an RDMA connection between the first device and the second device, including:
detecting RDMA events corresponding to the connection structure body at fixed time, and obtaining detection results of the RDMA events;
Determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event;
in the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection of the first device and the second device in accordance with the RDMA connection request.
In one implementation, the processing module 703 is configured to detect, in a timing manner, an RDMA event corresponding to the connection structure, including:
acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time; and determining the RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event.
In one implementation, the processing module 703 is configured to determine whether to send an RDMA connection request to the second device according to a detection result of the RDMA event, including:
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event and the event type of the RDMA event.
In one implementation, the processing module 703 is configured to determine whether to send an RDMA connection request to the second device according to a detection result of the RDMA event, including:
acquiring detection duration of RDMA events corresponding to the connection structure; and determining whether to send an RDMA connection request to the second device according to the comparison result of the detection duration and the first duration threshold.
In one implementation, before receiving a connection request for a remote direct memory access RDMA connection of an application, the receiving module 701 is further configured to:
the descriptor of the RDMA event channel is determined to be the descriptor corresponding to the non-blocking mode.
In one implementation, the processing module 703 is configured to establish an RDMA connection between the first device and the second device according to the sending an RDMA connection request to the second device, and includes:
receiving a connection response message sent by the second equipment; the connection response message is used for indicating that the RDMA connection establishment fails or that the RDMA connection establishment is successful;
under the condition that the RDMA connection establishment fails, re-acquiring a detection result of the RDMA event at intervals of a second duration threshold;
and determining whether to continue sending RDMA connection requests to the second device according to the detection result of the reacquiring the RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
In one implementation, the second duration threshold is positively correlated to a number of RDMA connection requests sent to the second device.
In one implementation, the value range of the second duration threshold is between a first preset duration and a second preset duration.
In practical applications, the receiving module 701, the obtaining module 702, and the processing module 703 may be implemented by a processor of an electronic device, where the processor may be at least one of ASIC, DSP, DSPD, PLD, FPGA, CPU, a controller, a microcontroller, and a microprocessor, which is not limited in this embodiment of the present application.
In some embodiments, functions or modules included in the apparatus provided in the embodiments of the present application may be used to perform the methods described in the foregoing method embodiments, and specific implementations thereof may refer to descriptions of the foregoing method embodiments, which are not repeated herein for brevity.
Based on the same technical concept as the foregoing embodiments, referring to fig. 8, an electronic device 800 provided in the embodiment of the present application may include: memory 810 and processor 820; wherein,,
memory 810 for storing computer programs and data;
a processor 820 for executing a computer program stored in a memory to implement any of the connection management methods of the foregoing embodiments.
In actual applications, the memory 810 may be a volatile memory (RAM), for example; or a non-volatile memory (non-volatile memory), exemplified by ROM, flash memory (flash memory), hard Disk (HDD) or Solid State Drive (SSD); or a combination of memories of the above kind. The memory 810 may provide instructions and data to the processor 820.
The foregoing description of various embodiments is intended to emphasize the differences between the various embodiments, which may be the same or similar as each other and are not repeated herein for brevity
The methods disclosed in the method embodiments provided by the application can be arbitrarily combined under the condition of no conflict to obtain a new method embodiment.
The features disclosed in the embodiments of the products provided by the application can be arbitrarily combined under the condition of no conflict, so as to obtain new embodiments of the products.
The features disclosed in the embodiments of the method or the apparatus provided in the application may be arbitrarily combined without conflict to obtain a new embodiment of the method or the apparatus.
In the several embodiments provided in this application, it should be understood that the disclosed apparatus and method may be implemented in other ways. The above described device embodiments are merely illustrative, and exemplary, the division of units is merely a logical function division, and there may be other manners of division in actual implementation, such as: multiple units or components may be combined or may be integrated into another system, or some features may be omitted, or not performed. In addition, the various components shown or discussed may be coupled or directly coupled or communicatively coupled to each other via some interface, whether indirectly coupled or communicatively coupled to a device or unit, whether electrically, mechanically, or otherwise.
The units described above as separate components may or may not be physically separate, and components displayed as units may or may not be physical units, may be located in one place, or may be distributed over a plurality of grid units; the object of the present embodiment can be achieved according to the fact that some or all of the units thereof can be selected.
In addition, each functional unit in each embodiment of the present application may be integrated in one processing module, or each unit may be separately used as one unit, or two or more units may be integrated in one unit; the integrated units may be implemented in hardware or in hardware plus software functional units.
Those of ordinary skill in the art will appreciate that: all or part of the steps of implementing the above method embodiments may be implemented by hardware associated with program instructions, and the above program may be stored in a computer readable storage medium, which when executed, performs steps including the above method embodiments.
The foregoing is merely specific embodiments of the present application, but the scope of protection of the present application is not limited thereto, and any person skilled in the art can easily think about changes or substitutions within the technical scope of the present application, and all changes and substitutions are intended to be covered in the scope of protection of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims (10)

1. A method of connection management, for use in a first device, the method comprising:
receiving a connection request of a remote direct memory access, RDMA, connection of an application, the connection request for requesting establishment of an RDMA connection with a second device through the first device;
acquiring a connection list of the RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter;
establishing RDMA connection between the first device and the second device according to a pre-established connection structure corresponding to the target connection multiplexing parameter under the condition that the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list;
the establishing RDMA connection between the first device and the second device according to the pre-created connection structure corresponding to the target connection multiplexing parameter includes:
acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time; determining an RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event, and acquiring a detection result of the RDMA event;
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event;
In the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection for the first device and the second device in accordance with the RDMA connection request and the connection fabric.
2. The method of claim 1, wherein the determining whether to send an RDMA connection request to the second device based on the detection of the RDMA event comprises:
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event and the event type of the RDMA event.
3. The method of claim 1, wherein the determining whether to send an RDMA connection request to the second device based on the detection of the RDMA event comprises:
acquiring detection duration of RDMA events corresponding to the connection structure;
and determining whether to send an RDMA connection request to the second device according to the comparison result of the detection duration and the first duration threshold.
4. The method of claim 1, wherein prior to receiving a connection request for a remote direct memory access, RDMA, connection for an application, the method further comprises:
the descriptor of the RDMA event channel is determined to be the descriptor corresponding to the non-blocking mode.
5. The method according to claim 1, wherein the method further comprises:
receiving a connection response message sent by the second equipment; the connection response message is used for indicating that the RDMA connection establishment fails or that the RDMA connection establishment is successful;
under the condition that the RDMA connection establishment fails, re-acquiring a detection result of the RDMA event at intervals of a second duration threshold;
and determining whether to continue sending RDMA connection requests to the second device according to the detection result of the acquired RDMA event until the connection response message indicates that the RDMA connection establishment is successful.
6. The method of claim 5, wherein the second time period threshold is positively correlated with a number of RDMA connection requests sent to the second device.
7. The method of claim 5 or 6, wherein the second duration threshold has a value ranging between a first predetermined duration and a second predetermined duration.
8. A connection management apparatus, for use in a first device, comprising:
a receiving module, configured to receive a connection request of a remote direct memory access RDMA connection of an application, where the connection request is used to request establishment of an RDMA connection with a second device through the first device;
The acquisition module is used for acquiring a connection list of the RDMA connection according to the connection request; the connection list comprises at least one connection multiplexing parameter;
the processing module is used for establishing RDMA connection of the first equipment and the second equipment according to a pre-established connection structure body corresponding to the target connection multiplexing parameter when the target connection multiplexing parameter consistent with the connection parameter in the connection request exists in the connection list;
the processing module is configured to establish RDMA connection between the first device and the second device according to a pre-created connection structure corresponding to the target connection multiplexing parameter, and includes:
acquiring file descriptors of RDMA events corresponding to the connection structure body at fixed time; determining an RDMA event corresponding to the connection structure according to the file descriptor of the RDMA event, and acquiring a detection result of the RDMA event;
determining whether to send an RDMA connection request to the second device according to the detection result of the RDMA event;
in the event that it is determined to send an RDMA connection request to the second device, establishing an RDMA connection for the first device and the second device in accordance with the RDMA connection request and the connection fabric.
9. An electronic device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, the processor implementing the connection management method of any one of claims 1 to 7 when the program is executed.
10. A computer storage medium storing a computer program; characterized in that the computer program, when executed, is capable of implementing the connection management method of any one of claims 1 to 7.
CN202110720140.6A 2021-06-28 2021-06-28 Connection management method, device, electronic equipment and storage medium Active CN113326154B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110720140.6A CN113326154B (en) 2021-06-28 2021-06-28 Connection management method, device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110720140.6A CN113326154B (en) 2021-06-28 2021-06-28 Connection management method, device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN113326154A CN113326154A (en) 2021-08-31
CN113326154B true CN113326154B (en) 2023-07-14

Family

ID=77424960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110720140.6A Active CN113326154B (en) 2021-06-28 2021-06-28 Connection management method, device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN113326154B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114090483B (en) * 2021-09-30 2024-08-09 上海浦东发展银行股份有限公司 RDMA communication method, device and storage medium based on coroutine
CN114268654B (en) * 2021-11-26 2024-08-09 上海浦东发展银行股份有限公司 Network communication method, apparatus, device, storage medium, and program product
CN114780465B (en) * 2022-03-01 2024-04-16 阿里巴巴(中国)有限公司 Creation method and device for sharable remote direct data access link
CN116594951B (en) * 2023-07-13 2023-09-26 北京芯通未来科技发展有限公司 FPGA-based data transmission system and method

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104506416B (en) * 2014-12-17 2017-11-28 东软集团股份有限公司 A kind of method, apparatus and system for realizing the stable push of message
CN105518611B (en) * 2014-12-27 2019-10-25 华为技术有限公司 A kind of remote direct data access method, equipment and system
US9842083B2 (en) * 2015-05-18 2017-12-12 Red Hat Israel, Ltd. Using completion queues for RDMA event detection
CN110291839B (en) * 2019-05-17 2023-06-06 北京小米移动软件有限公司 Unicast connection establishment method, device and storage medium
CN111988241B (en) * 2020-08-20 2022-09-30 恒生电子股份有限公司 Message queuing method, system, device and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
光纤通道的高速低延迟RDMA协议研究;童薇等;华中科技大学学报(自然科学版);第39卷(第6期);第72-74页 *

Also Published As

Publication number Publication date
CN113326154A (en) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113326154B (en) Connection management method, device, electronic equipment and storage medium
CN102447624B (en) Load balancing method in server cluster, as well as node server and cluster
CN111654519B (en) Method and device for transmitting data processing requests
CN108494676B (en) Data transmission method, data transmission device, data transceiving equipment, data transceiving system and storage medium
CN108023829B (en) Message processing method and device, storage medium and electronic equipment
CN109561054B (en) Data transmission method, controller and access device
US11212368B2 (en) Fire-and-forget offload mechanism for network-based services
US8527661B1 (en) Gateway for connecting clients and servers utilizing remote direct memory access controls to separate data path from control path
US20160094636A1 (en) System and method for supporting asynchronous request/response in a network environment
US11231983B2 (en) Fault tolerance processing method, apparatus, and server
CN111131470B (en) Terminal device, data processing method thereof and data processing system
EP3891687A1 (en) Method and system for determining a state of an account in a network device running a light client protocol of a distributed ledger technology network
WO2024078050A1 (en) Method and apparatus for performing data transmission
CN109831467B (en) Data transmission method, equipment and system
Carvalho et al. Dynamic adaptation of Byzantine consensus protocols
CN113726723B (en) UDP-based data transmission method, device and equipment
CN109510864B (en) Forwarding method, transmission method and related device of cache request
CN108055305B (en) Storage expansion method and storage expansion device
CN115208590A (en) Cross-domain communication system, method and storage medium
CN111240867A (en) Information communication system and method
CN113746574B (en) Information interaction method, system and equipment
WO2024183524A1 (en) Mobile terminal-based unified communication method, electronic device, and medium
CN112783959B (en) Data transmission method and device based on heterogeneous storage systems
WO2018233844A1 (en) Methods and apparatus for responding to a dns query and handling a connection request
CN109819274B (en) Data transmission method, data processing method and device

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant