patents.google.com

CN113300979B - Network card queue creation method and device under RDMA (remote direct memory Access) network - Google Patents

  • ️Tue Sep 17 2024

Detailed Description

In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present description. This description may be embodied in many other forms than described herein and similarly generalized by those skilled in the art to whom this disclosure pertains without departing from the spirit of the disclosure and, therefore, this disclosure is not limited by the specific implementations disclosed below.

The terminology used in the one or more embodiments of the specification is for the purpose of describing particular embodiments only and is not intended to be limiting of the one or more embodiments of the specification. As used in this specification, one or more embodiments and the appended claims, the singular forms "a," "an," and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used in one or more embodiments of the present specification refers to and encompasses any or all possible combinations of one or more of the associated listed items.

It should be understood that, although the terms first, second, etc. may be used in one or more embodiments of this specification to describe various information, these information should not be limited by these terms. These terms are only used to distinguish one type of information from another. For example, a first may also be referred to as a second, and similarly, a second may also be referred to as a first, without departing from the scope of one or more embodiments of the present description. The word "if" as used herein may be interpreted as "at … …" or "at … …" or "in response to a determination" depending on the context.

First, terms related to one or more embodiments of the present specification will be explained.

RDMA (Remote Direct Memory Access ): the RDMA directly transmits data into a storage area of a computer through a network, and the data is quickly moved from a system to a remote system memory without affecting an operating system, so that the processing function of the computer is not needed. It eliminates the overhead of external memory copying and context switching, thus freeing up memory bandwidth and CPU cycles for improved application system performance.

The RoCE protocol: is a network protocol supporting RDMA, there are two versions RoCEv and RoCEv, the main difference RoCEv is that RDMA protocol implemented based on ethernet link layer (switch needs to support flow control technology such as PFC (Priority-based Flow Control, priority-based flow control) and guarantee reliable transport at physical layer), while RoCEv is UDP (User Datagram Protocol ) layer implementation in ethernet TCP/IP protocol.

QP (Queue Pairs, queue pair): the RDMA protocol enabled transmit queues, specifically include a transmit Queue (Sent Queue, SQ) and a Receive Queue (RQ), and SQ and RQ are typically created in pairs.

MMU (Memory Management Unit ): sometimes referred to as a paged memory management unit (paged memory management unit, PMMU). It is computer hardware responsible for handling memory access requests of a Central Processing Unit (CPU). Its functions include virtual to physical address translation (i.e. virtual memory management), memory protection, central processor cache control, and in simpler computer architectures, bus arbitration and bank switching.

In this specification, a method for creating a network card queue under an RDMA network is provided, and one or more embodiments of the present specification relate to an apparatus for creating a network card queue under an RDMA network, a computing device, and a computer-readable storage medium, which are described in detail in the following embodiments.

The embodiment of the network card queue creation method under the RDMA network provided by the specification is as follows:

Fig. 1 shows a process flow diagram of a network card queue creation method under an RDMA network according to an embodiment of the present disclosure, which specifically includes the following steps:

Step 102, receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information.

In practical applications, before the two communication parties perform data transmission, a network connection (i.e., a network card queue) for communication needs to be established between the two communication parties, and therefore, the network card queue for communication between the two communication parties needs to be created based on the queue creation request.

The queue creation request is a request for creating a network card queue for data transmission, and the queue creation request carries queue address information and queue port information, where the queue address information may be understood as an IP address (i.e., a source IP address and a destination IP address) of both communication parties, and the queue port information may be understood as a port number of the communication party. Because the port number of the home terminal (i.e. the source port number) can be determined separately in the creation process, the queue port information at least comprises the port number of the opposite communication terminal (i.e. the destination port number), and when the method is implemented, the IP addresses and the port numbers of the two communication terminals are the data required for creating the network card queue.

Specifically, the network card queue refers to a transmission queue (also understood as RDMA network connection) supporting RDMA protocol. In practical application, the transmitting end performs data transmission between the transmitting end and the receiving end by scheduling Queue elements in a network card Queue, and further, the network card Queue includes a Queue pair (Queue Pairs, QP) formed by a transmitting Queue (SQ) and a Receiving Queue (RQ), where the SQ is used to transmit data to the opposite communication end and the RQ is used to Receive data transmitted by the opposite communication end.

And 104, creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information.

The network card queue pool may be understood as a virtual transmission queue (virtual Queue Pairs, VQP) provided by an upper layer application, or may be understood as an abstract entity, where the network card queue pool is a transmission queue supporting RDMA, and is used to encapsulate a network card queue actually performing data transmission. That is, the network card queue pool does not directly perform data transmission, and the network card queue pool is not provided for the opposite communication end, but only provided for the upper layer application of the local end, so that for the upper layer application of the local end, the data transmission is performed through the network card queue pool, but actually, the data transmission is performed through the network card queue in the network card queue pool.

Based on this, the manner of creating the network card queue pool of the queue creation request queue according to the queue address information and the queue port information is various, and the network card queue pool is not used for data transmission, so the network card queue pool may be in the form of a data record or a data list, and may also be in other data forms, which is not limited herein.

In a specific implementation, in an optional implementation manner provided in the embodiment of the present disclosure, the at least two network card queues are created by:

determining queue sending port information according to a preset port selection rule;

updating the queue port information according to the queue sending port information;

and creating at least two network card queues based on the queue address information and the queue port information.

Specifically, the preset port selection rule may be to randomly select an unoccupied port number in a preset port interval, or select a port number according to the size of the port number, or the like, and may also designate the port number as the transmission port information of the network card queue.

When the communication peer (i.e., the receiving end) is determined, since the source IP address of the transmitting end, and the destination IP address and destination port number of the receiving end are already determined, by configuring different source port numbers for the network card queues, different network card queues for communication with the same receiving end can be created, that is, the created network card queues belonging to the same network card queue pool are identical except for the source port number, and other queue address information and queue port information are identical.

In practical application, after the network card queue is created, a queue identifier for uniquely identifying the network card queue can be also created for the network card queue.

In the embodiment of the specification, at least two network card queues are created by determining different source port numbers, so that network card queues (i.e. network connection) which are mutually backup are formed, the failure recovery efficiency is improved, and the stability of data transmission is improved.

And step 106, associating the at least two network card queues with the network card queue pool to serve as the network card queues of the network card queue pool.

Specifically, the association manner of associating the at least two network card queues with the network card queue pool is various, for example, a label of the corresponding network card queue pool is added to each network card queue, or the correspondence relationship between the at least two network card queues and the network card queue pool may also be recorded, which is not limited herein.

In a specific implementation, in an optional implementation manner provided in this embodiment of the present disclosure, the associating the at least two network card queues with the network card queue pool is implemented as a network card queue of the network card queue pool, specifically in the following manner:

associating the at least two network card queues with the network card queue pool to serve as network card queues of the network card queue pool;

And selecting the first network card queue from the at least two network card queues according to a preset selection rule.

The preset selection rule refers to a preset selection rule of a network card queue for data transmission, specifically, the preset selection rule may be selected randomly or according to the size of the queue identifier, and the like, where the purpose of selecting the first network card queue in practical application is not limited: and taking the first network card queue as a main network card queue, namely preferentially adopting the first network card queue for data transmission when the network port network card queue in the network card queue pool is required for data transmission, and taking other network card queues in the network card queue pool as backup network card queues under the condition that the data transmission of the first network card queue fails.

In specific implementation, after the first network card queue is selected, the first network card queue may be marked, or the queue identifier of the first network card queue may be recorded, so that the first network card queue is directly determined from the network card queue pool in the subsequent process of data transmission through the network card queue in the network card queue pool.

According to the embodiment of the specification, the first network card queue is selected in advance from the network card queues in the network card queue pool for data transmission, and other network card queues in the network card queue pool are used as backup network card queues, so that the situation that different network card queues are determined to perform data transmission before each data transmission is avoided, the stability of the data transmission is ensured, and the other network card queues are used as backup network card queues of the first network card queue, so that the situation that the data transmission is interrupted for a long time is greatly avoided.

Because the purpose of creating the network card queue is to perform data transmission, in an optional implementation manner provided in the embodiment of the present disclosure, after creating the network card queue pool and creating the network card queue of the network card queue pool, the method further includes:

a transmission request for target data is received.

Determining a first network card queue from the network card queues in the network card queue pool according to the transmission request, and transmitting the target data through the first network card queue;

And under the condition that the receiving response for the target data is not received through the first network card queue within the preset time length, modifying the network card queue corresponding to the transmission request into a target network card queue, and transmitting the target data through the target network card queue, wherein the target network card queue is a network card queue except the first network card queue in the network card queue pool.

Wherein, the target data can be understood as data to be transmitted; the transmission request comprises a data reading request or a data writing request; specifically, the data reading request may be understood as a request for reading data in the receiving end; a data write request may be understood as a request to write data to a receiving end.

In practical applications, the transmission request may carry data information of the target data, and specifically, the data information includes: a storage address of the target data and/or a data identification of the target data, the target data to be transmitted can be determined according to the data information.

In a specific implementation, in an optional implementation manner provided in this embodiment of the present disclosure, the determining, according to the transmission request, a first network card queue from network card queues in the network card queue pool is implemented in the following manner:

Determining a network card queue pool corresponding to the queue information according to the queue information carried in the transmission request;

and determining the first network card queue from the network card queues in the network card queue pool.

Specifically, the transmission request carries queue information of the network card queue, such as an IP address and a port number of the communication end, or information of an identifier of the network card queue pool, and then a network card queue pool can be uniquely determined according to the carried queue information, where the network card queue pool includes at least two network card queues, that is, at least two network card queues are associated with the network card queue pool and are used as the network card queues in the network card queue pool.

Further, after determining the network card queue pool, the first network card queue in the network card queue pool is determined, and specifically, the first network card queue may be determined from the network card queues in the network card queue pool according to a transmission tag (used to identify a main network card queue in the network card queue pool) pre-added to the first network card queue, which is not limited herein.

According to the embodiment of the specification, the network card queue pool is determined according to the transmission request, and then the first network card queue is determined from the network card queue pool, so that the network card queue for data transmission is selected based on the network card queue pool, and the backup network card queue for data transmission can be determined based on the network card queue pool under the condition that the first network card queue is disconnected.

In practical application, if the receiving response to the target data is not received beyond the preset duration, which indicates that the transmission to the target data fails, and the network path corresponding to the first network card queue may fail, data transmission is performed through other network card queues; if a receiving response to the target data is received within a preset duration, which indicates that the transmission to the target data is successful, no operation is performed, wherein the receiving response can be an acknowledgement character (Acknowledge character, ACK) or other types of self-defined acknowledgement messages, which are used for indicating that the receiving end receives the target data, and is not limited herein.

In particular, the mode of modifying the network card queue corresponding to the transmission request into the target network card queue is various, and may be modifying a tag or data for marking the first network card queue as the main network card queue for data transmission, for example, removing a transmission tag corresponding to the first network card queue (for marking the main network card queue for data transmission), adding the transmission tag to the target network card queue, or marking the first network card queue as the data record of the main network card queue, updating the data record of the target network card queue as the main network card queue, and the like, which is not limited herein.

It should be noted that, data in the same network card queue (such as QP) will pass through several continuously fixed switch paths on the network, that is, the network Path (denoted as Path < s1..sn >) reaches the receiving end (the opposite node), that is, if a certain hop switch Si in the Path < s1..sn >) has a network failure such as a port black hole, MMU blocking, persistent packet loss, or unavailable switch, the data in the same network card queue (such as QP) will not reach the far end until the switch Si in the Path < s1..sn > -resumes service, and then the network card queue (such as QP) can continue to be used to send and receive data on the network Path < s1..sn >. The switch usually has a minute level of fault recovery, at this time, the original network card queue (such as QP) will be disconnected due to the timeout of the data ACK, at this time, if the message of the re-connection continues to pass through the fault Path < s1..sn >, the re-connection will fail to be established through the timeout of the new round, so that the next round of re-connection is entered, after the connection is successfully established, the network card queue (such as QP) used in communication still will select one port from the two ports as a new fixed Path because of the random network card, send the data to the upstream switch, at this time, still will continue to pass through the fault Path < s1..sn >, and enter the process of disconnecting and re-establishing the timeout again. Therefore, when an upper layer application encounters a switch failure during communication with a peer node using a network card queue (such as QP), the service quality of the upper layer will be greatly affected.

And the switch in the network path performs hash operation according to the five-tuple (source IP address, source port, destination IP address, destination port and transport layer protocol) of the transmission connection (i.e. network card queue), so as to determine the next hop switch of the switch, and the network paths corresponding to each network card queue are different if the source port information corresponding to different network card queues are different.

On the basis of the first network card queue determined from the network card queue pool, correspondingly, modifying the network card queue corresponding to the transmission request into a target network card queue, wherein the method is realized in the following manner:

And determining a target network card queue from the network card queues in the network card queue pool, and modifying the network card queue corresponding to the transmission request into the target network card queue.

In practical applications, the manner of determining the target network card queue from the network card queues in the network card queue pool is also various, one network card queue can be randomly determined as the target network card queue from the network card queues included in the network card queue pool except the first network card queue, and in addition, the network card queue corresponding to the same network port in the network card queue pool can be determined as the target network card queue according to the network port corresponding to the first network card queue, which is not limited herein.

The network ports may be understood as external connection interfaces of network devices (such as network cards), where each network port has a corresponding network port identifier (for example, a network port number), specifically, for example, 0, 1, or port0, port1, etc., and when implementing, the network card queue and the network port have a corresponding relationship, and when data is transmitted through one network card queue, the transmitted data is sent from the network port corresponding to the network card queue to the receiving end, where the network port identifier refers to an identifier that can uniquely identify the network port of one network card.

According to the embodiment of the specification, the target network card queue is determined from the network card queue pool, so that the new network card queue is prevented from being re-created, and the efficiency of recovering data transmission is improved.

As shown in fig. 2, the network cards of the transmitting end and the receiving end are respectively provided with two network ports, the network Port identifiers of the two network ports are respectively Port0 and Port1, the network card queue pool (i.e. virtual network card queue VQP) created at the transmitting end contains 4 QPs which are respectively QP1, QP2 and QP3 and QP4, wherein QP1 is a first network card queue (i.e. main network card queue) and performs data transmission with the receiving end, the network ports corresponding to QP1 and QP3 are network Port0, the network ports corresponding to QP2 and QP4 are network Port1, wherein the network Port0 at the transmitting end is connected with a switch 1 (such as an access layer switch), the switch 1 is connected with eight switches 11 and 12 and … … switches 18, and the network Port1 at the transmitting end is connected with a switch 2 (such as an access layer switch), the switches 21 and 22 and … … are respectively connected with the switch 3 or the switch 3, and the network Port 2 is connected with the receiving end as a network Port 2, and the network Port 2 is modified to perform data transmission with the network Port 2 at the receiving end through the network Port 1.

Further, because there is a backup network card queue in the network card queue pool, in an optional implementation manner provided in the embodiment of the present disclosure, the network card queue creating method under the RDMA network further includes:

sending heartbeat signals through any network card queue except a first network card queue in the network card queue pool according to a preset time interval;

and deleting any network card queue under the condition that the receiving response aiming at the heartbeat signal is not received through any network card queue within the preset time length.

The preset time interval refers to a preset time interval for sending the heartbeat signal, for example, 10 seconds, 2 seconds, etc., which is not limited herein. The heartbeat signal refers to sending a small data packet, such as 64 bytes, to the other party of the interconnection at intervals, and judging whether the communication link (i.e. the network card queue) between the two parties of the interconnection is disconnected or not through the reply condition of the other party; any network card queue except the first network card queue in the network card queue pool can be understood as a backup network card queue (backup connection) in the network card queue pool, and when the network card queue pool is implemented, the backup network card queues can be formed into a backup network card queue set for unified management of the backup network card queues.

Specifically, the preset duration refers to a preset longest duration for receiving the receiving response. The receiving response may be an acknowledgement character (Acknowledge character, ACK), or may be a customized acknowledgement message of other types, which is used to indicate that the receiving end receives the heartbeat information, which is not limited herein.

Further, if the receiving response to the heartbeat signal is not received beyond the preset duration, the failure of the transmission to the heartbeat signal is indicated, and if the failure of the transmission path corresponding to any network card queue is possible, that is, the unavailability of any network card queue is indicated, any network card queue is deleted; if the receiving response to the heartbeat signal is received within the preset time length, the heartbeat signal is successfully transmitted, namely, the transmission path between the sending end and the receiving end (namely, any network card queue) is normally transmitted, and the operation is not performed.

It should be noted that, the transmission Path may be understood as a network Path through which data is transmitted, for example, the network Path is Path < S1, S2 … … Sn >, where S1, S2, sn respectively represent switches passing from a transmitting end to a receiving end in the data transmission process, and a heartbeat signal is sent through a network card queue (backup connection) in the network card queue pool, so as to detect whether the network Path < S1, S2 … … Sn > through which the backup connection passes has a fault.

In the embodiment of the specification, the backup network card queue in the network card queue pool is used for sending the heartbeat signal, determining whether the backup network card queue receives the receiving response of the heartbeat signal or not, determining whether the backup network card queue (namely backup network connection) between the two communication parties is disconnected, and deleting the disconnected network card queue if the backup network card queue is disconnected, so that the backup network card queue in the network card queue pool is available.

After determining the target network card queue, in a first optional implementation manner provided in the embodiment of the present disclosure, after modifying the network card queue corresponding to the transmission request to the target network card queue, the method further includes:

deleting the first network card queue;

Creating a second network card queue based on the queue information corresponding to the network card queue pool;

And associating the second network card queue with the network card queue pool to be used as a network card queue of the network card queue pool.

In practical application, if the first network card queue fails to transmit data, possibly due to a failure of a switch in a network path corresponding to the first network card queue, an available target network card queue is determined from a network card queue pool for data transmission through the target network card queue, and the unavailable first network card queue can be directly deleted, and it is noted that in a processing process of deleting the first network card queue, an association relationship between the first network card queue and the network card queue pool is deleted.

And creates a new network card queue (i.e., a second network card queue) in place of the deleted first network card queue.

According to the embodiment of the specification, after the data transmission network card queue is modified into the target network card queue, the first network card queue is deleted, and the network card queue pool is expanded through newly-built second network card queues, so that the number of network card queues serving as backup in the network card queue pool is ensured, and the stability of data transmission is improved.

In a second optional implementation manner provided in this embodiment of the present disclosure, after modifying the network card queue corresponding to the transmission request to the target network card queue, the method further includes:

Deleting the association relation between the first network card queue and the network card queue pool;

And under the condition that a recovery instruction aiming at the first network card queue is received, associating the first network card queue with the network card queue pool to be used as a network card queue of the network card queue pool.

Specifically, deleting the association relationship between the first network card queue and the network card queue pool can be understood as removing the first network card queue from the network card queue pool, and when data transmission is performed, the first network card queue is not selected from the network card queue pool.

The recovery instruction may be understood as a recovery completion instruction for the fault path corresponding to the first network card queue, and under the condition that the recovery instruction is received, the first network card queue is added into the network card queue pool to become a network card queue backed up in the network card queue pool.

It should be noted that, under the condition that the switch fails, more than one network card queue may be unavailable, the available network card queue is restored and added into the network card queue pool, so that the number of network card queues serving as backup in the network card queue pool is ensured, and the stability of data transmission is increased.

In practical application, because the network card queues need to pass through a physical network port in the process of data transmission, in an alternative implementation manner provided in the embodiments of the present disclosure, after creating at least two network card queues, the method further includes:

distributing corresponding network ports to the at least two network card queues according to a preset network port distribution rule;

Correspondingly, the step of transmitting the target data through the first network card queue includes:

Transmitting the target data through the first network card queue from a network port corresponding to the first network card queue;

Correspondingly, the step of transmitting the target data through the target network card queue includes:

And transmitting the target data through the target network card queue and from a network port corresponding to the target network card queue.

The network port allocation rule may be to allocate network ports sequentially according to a network port circulation mode, for example, there are two network ports: the network Port0 and the network Port1 are used for distributing the network Port0 to the first established network card queue, distributing the network Port1 to the second established network card queue, distributing the network Port to the third network card queue, distributing the network Port0, and the like; the network ports may be allocated in proportion, or may be allocated by a designated network port, and the like, and the present invention is not limited thereto.

In practical application, different network ports (network port numbers of network ports, such as 1,0,1,0,1 …) can be allocated to each network card queue (such as QP), that is, two adjacent network card queues (such as QP) with different numbers in the network card queue pool (can be understood as queue identification) use the network ports with different numbers, so that the two network card queues (such as QP) pass through different uplink switches, and thus pass through different network paths Path < S1..Sn >, in this case, if one network Path fails, switching of the network paths can be realized by switching the network card queues, and repeated entry of the failure Path is avoided, thereby causing unsuccessful long-time data transmission.

Further, in an optional implementation manner provided in the embodiment of the present disclosure, the transmitting the target data through the first network card queue includes:

Transmitting the target data through the first network card queue from a network port corresponding to the first network card queue;

Correspondingly, the step of transmitting the target data through the target network card queue includes:

Transmitting the target data through the target network card queue and from a network port corresponding to the target network card queue;

correspondingly, the creating a second network card queue based on the queue information corresponding to the network card queue pool includes:

Creating a second network card queue based on the queue information corresponding to the network card queue pool;

and distributing the network port corresponding to the first network card queue to the second network card queue as the network port corresponding to the second network card queue.

Specifically, the data transmission is performed on the target data from the network port corresponding to the first network card queue, which can be understood as that the target data is sent from the network port corresponding to the first network card queue to the sending end, that is, when determining which network card queue is used for data transmission, it is also determined which network card queue is used for sending data from the network port corresponding to the first network card queue.

In practical application, after the second network card queue is created, the network port corresponding to the first network card queue is allocated to the newly created second network card queue so as to keep the balance of the network ports corresponding to the network card queues in the network card queue pool, thereby promoting the flow balance of each network port of the sending end.

In summary, the present disclosure provides a network card queue creation method under an RDMA network, including: receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information; creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information; the at least two network card queues are associated with the network card queue pool and serve as network card queues of the network card queue pool, so that the network card queue pool and the at least two network card queues associated with the network card queue pool are created based on a queue creation request, and under the condition that data transmission is overtime, the network card queue for data transmission is switched to the other network card queue in the network card queue pool, data transmission from a fault path corresponding to the network card queue with overtime transmission is avoided, new network card queues are not required to be created again, and fault recovery efficiency is improved.

The following description will further explain, by taking an application of the network card queue creation method under an RDMA network in the RDMA network transmission scenario as an example, with reference to fig. 3. Fig. 3 shows a process flow chart of a network card queue creation method under an RDMA network applied to an RDMA network transmission scene according to an embodiment of the present disclosure, which specifically includes the following steps:

in step 302, an RDMA queue creation request is received, wherein the RDMA queue creation request carries queue address information and queue port information.

Specifically, the RDMA queue creation request refers to a creation request for requesting to create an RDMA network card queue, where the RDMA network card queue refers to a transmission queue supporting an RDMA protocol.

In practice, the data center network may use the RoCE protocol to provide data transmission of the RDMA network, while the current data center network mainly uses RoCEv protocols in the RoCE protocol to provide high-performance RDMA network transmission services upwards, and for an upper layer application, a QP (one RDMA network connection) is typically used to perform data communication with a receiving end, and is usually a long connection, and the application does not actively disconnect.

Step 304, creating a network card queue pool corresponding to the RDMA queue creation request according to the queue address information and the queue port information.

Step 306, creating at least two RDMA network card queues based on the queue address information and the queue port information.

Step 308, associating the at least two RDMA network card queues with the network card queue pool, as RDMA network card queues of the network card queue pool.

Step 310, selecting a first network card queue from the at least two RDMA network card queues according to a preset selection rule.

Specifically, the backup RDMA network card queues except the first network card queue in the network card queue pool also need to periodically perform connection test (heartbeat keep-alive) to ensure that the RDMA network card queues in the network card queue pool are all available, and the method is implemented specifically as follows:

sending heartbeat signals through any network card queue except a first network card queue in the network card queue pool according to a preset time interval;

and deleting any network card queue under the condition that the receiving response aiming at the heartbeat signal is not received through any network card queue within the preset time length.

At step 312, a transmission request for target data is received.

And step 314, determining a network card queue pool corresponding to the queue information according to the queue information carried in the transmission request.

Step 316, determining the first network card queue from the network card queues in the network card queue pool, and transmitting the target data through the first network card queue.

Step 318, determining a target network card queue from the network card queues in the network card queue pool, and modifying the network card queue corresponding to the transmission request into the target network card queue if the receiving response to the target data is not received through the first network card queue within the preset time period.

And 320, transmitting the target data through the target network card queue.

And step 322, deleting the first network card queue.

Step 324, creating a second network card queue based on the queue information corresponding to the network card queue pool.

And step 326, associating the second network card queue with the network card queue pool to be used as an RDMA network card queue of the network card queue pool.

In summary, the present disclosure provides a network card queue creation method under an RDMA network, including: receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information; creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information; the at least two network card queues are associated with the network card queue pool and serve as network card queues of the network card queue pool, so that the network card queue pool and the at least two network card queues associated with the network card queue pool are created based on a queue creation request, and under the condition that data transmission is overtime, the network card queue for data transmission is switched to the other network card queue in the network card queue pool, data transmission from a fault path corresponding to the network card queue with overtime transmission is avoided, new network card queues are not required to be created again, and fault recovery efficiency is improved.

The embodiment of a network card queue creation device under an RDMA network provided in the present specification is as follows:

Corresponding to the method embodiment, the present disclosure further provides an embodiment of a network card queue creating device under an RDMA network, and fig. 4 shows a schematic diagram of a network card queue creating device under an RDMA network provided in one embodiment of the present disclosure. As shown in fig. 4, the apparatus includes:

A receiving module 402, configured to receive a queue creation request, where the queue creation request carries queue address information and queue port information;

The creating module 404 is configured to create a network card queue pool and at least two network card queues corresponding to the queue creating request according to the queue address information and the queue port information;

And the association module 406 is configured to associate the at least two network card queues with the network card queue pool, and serve as a network card queue of the network card queue pool.

Optionally, the network card queue creating device under the RDMA network further includes:

A reception request module configured to receive a transmission request for target data;

The transmission module is configured to determine a first network card queue from the network card queues in the network card queue pool according to the transmission request, and transmit the target data through the first network card queue;

the modification module is configured to modify a network card queue corresponding to the transmission request into a target network card queue and transmit the target data through the target network card queue under the condition that a receiving response for the target data is not received through the first network card queue within a preset time period, wherein the target network card queue is a network card queue except the first network card queue in the network card queue pool.

Optionally, the transmission module is further configured to:

Determining a network card queue pool corresponding to the queue information according to the queue information carried in the transmission request;

Determining the first network card queue from the network card queues in the network card queue pool;

accordingly, the modification module is further configured to:

And determining a target network card queue from the network card queues in the network card queue pool, and modifying the network card queue corresponding to the transmission request into the target network card queue.

Optionally, the association module 406 is further configured to:

associating the at least two network card queues with the network card queue pool to serve as network card queues of the network card queue pool;

And selecting the first network card queue from the at least two network card queues according to a preset selection rule.

Optionally, the network card queue creating device under the RDMA network further includes:

The sending module is configured to send heartbeat signals through any network card queue except the first network card queue in the network card queue pool according to a preset time interval;

The first deleting module is configured to delete any network card queue under the condition that the receiving response for the heartbeat signal is not received through any network card queue within a preset time period.

Optionally, the network card queue creating device under the RDMA network further includes:

The second deleting module is configured to delete the first network card queue;

the creating queue module is configured to create a second network card queue based on the queue information corresponding to the network card queue pool;

and the second association module is configured to associate the second network card queue with the network card queue pool and serve as a network card queue of the network card queue pool.

Optionally, the network card queue creating device under the RDMA network further includes:

The deleting relation module is configured to delete the association relation between the first network card queue and the network card queue pool;

And the third association module is configured to associate the first network card queue with the network card queue pool as a network card queue of the network card queue pool under the condition that a recovery instruction aiming at the first network card queue is received.

Optionally, the creating module 404 is further configured to:

determining queue sending port information according to a preset port selection rule;

updating the queue port information according to the queue sending port information;

and creating at least two network card queues based on the queue address information and the queue port information.

Optionally, the network card queue creating device under the RDMA network further includes:

the distribution module is configured to distribute corresponding network ports to the at least two network card queues according to a preset network port distribution rule;

Accordingly, the transmission module is further configured to:

Transmitting the target data through the first network card queue from a network port corresponding to the first network card queue;

accordingly, the modification module is further configured to:

And transmitting the target data through the target network card queue and from a network port corresponding to the target network card queue.

Optionally, the transmission module is further configured to:

Transmitting the target data through the first network card queue from a network port corresponding to the first network card queue;

accordingly, the modification module is further configured to:

Transmitting the target data through the target network card queue and from a network port corresponding to the target network card queue;

Accordingly, the create queue module is further configured to:

Creating a second network card queue based on the queue information corresponding to the network card queue pool;

and distributing the network port corresponding to the first network card queue to the second network card queue as the network port corresponding to the second network card queue.

In summary, the present disclosure provides a network card queue creation device under an RDMA network, including: receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information; creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information; the at least two network card queues are associated with the network card queue pool and serve as network card queues of the network card queue pool, so that the network card queue pool and the at least two network card queues associated with the network card queue pool are created based on a queue creation request, and under the condition that data transmission is overtime, the network card queue for data transmission is switched to the other network card queue in the network card queue pool, data transmission from a fault path corresponding to the first network card queue is avoided, new network card queues are not required to be created again, and fault recovery efficiency is improved.

The above is an exemplary scheme of a network card queue creation apparatus under the RDMA network of the present embodiment. It should be noted that, the technical solution of the network card queue creation device under the RDMA network and the technical solution of the network card queue creation method under the RDMA network belong to the same concept, and details of the technical solution of the network card queue creation device under the RDMA network, which are not described in detail, can be referred to the description of the technical solution of the network card queue creation method under the RDMA network.

An embodiment of a computing device provided in this specification is as follows:

fig. 5 illustrates a block diagram of a computing device 500 provided in accordance with one embodiment of the present description. The components of the computing device 500 include, but are not limited to, a memory 510 and a processor 520. Processor 520 is coupled to memory 510 via bus 530 and database 550 is used to hold data.

Computing device 500 also includes access device 540, access device 540 enabling computing device 500 to communicate via one or more networks 560. Examples of such networks include the Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), or a combination of communication networks such as the internet. The access device 540 may include one or more of any type of network interface, wired or wireless (e.g., a Network Interface Card (NIC)), such as an IEEE802.11 Wireless Local Area Network (WLAN) wireless interface, a worldwide interoperability for microwave access (Wi-MAX) interface, an ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a bluetooth interface, a Near Field Communication (NFC) interface, and so forth.

In one embodiment of the present description, the above-described components of computing device 500, as well as other components not shown in FIG. 5, may also be connected to each other, such as by a bus. It should be understood that the block diagram of the computing device shown in FIG. 5 is for exemplary purposes only and is not intended to limit the scope of the present description. Those skilled in the art may add or replace other components as desired.

Computing device 500 may be any type of stationary or mobile computing device, including a mobile computer or mobile computing device (e.g., tablet, personal digital assistant, laptop, notebook, netbook, etc.), mobile phone (e.g., smart phone), wearable computing device (e.g., smart watch, smart glasses, etc.), or other type of mobile device, or a stationary computing device such as a desktop computer or PC. Computing device 500 may also be a mobile or stationary server.

Wherein the processor 520 is configured to execute the following computer-executable instructions:

Receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information;

Creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information;

And associating the at least two network card queues with the network card queue pool to serve as network card queues of the network card queue pool.

The foregoing is a schematic illustration of a computing device of this embodiment. It should be noted that, the technical solution of the computing device and the technical solution of the network card queue creation method under the RDMA network belong to the same concept, and details of the technical solution of the computing device, which are not described in detail, can be referred to the description of the technical solution of the network card queue creation method under the RDMA network.

An embodiment of a computer-readable storage medium provided in the present specification is as follows:

the present description provides a computer-readable storage medium storing computer instructions that, when executed by a processor, are configured to:

Receiving a queue creation request, wherein the queue creation request carries queue address information and queue port information;

Creating a network card queue pool and at least two network card queues corresponding to the queue creation request according to the queue address information and the queue port information;

And associating the at least two network card queues with the network card queue pool to serve as network card queues of the network card queue pool.

The above is an exemplary version of a computer-readable storage medium of the present embodiment. It should be noted that, the technical solution of the storage medium and the technical solution of the network card queue creation method under the RDMA network belong to the same concept, and details of the technical solution of the storage medium which are not described in detail can be referred to the description of the technical solution of the network card queue creation method under the RDMA network.

The foregoing describes specific embodiments of the present disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.

The computer instructions include computer program code that may be in source code form, object code form, executable file or some intermediate form, etc. The computer readable medium may include: any entity or device capable of carrying the computer program code, a recording medium, a U disk, a removable hard disk, a magnetic disk, an optical disk, a computer Memory, a Read-Only Memory (ROM), a random access Memory (RAM, random Access Memory), an electrical carrier signal, a telecommunications signal, a software distribution medium, and so forth. It should be noted that the computer readable medium contains content that can be appropriately scaled according to the requirements of jurisdictions in which such content is subject to legislation and patent practice, such as in certain jurisdictions in which such content is subject to legislation and patent practice, the computer readable medium does not include electrical carrier signals and telecommunication signals.

It should be noted that, for simplicity of description, the foregoing method embodiments are all expressed as a series of combinations of actions, but it should be understood by those skilled in the art that the embodiments are not limited by the order of actions described, as some steps may be performed in other order or simultaneously according to the embodiments of the present disclosure. Further, those skilled in the art will appreciate that the embodiments described in the specification are all preferred embodiments, and that the acts and modules referred to are not necessarily all required for the embodiments described in the specification.

In the foregoing embodiments, the descriptions of the embodiments are emphasized, and for parts of one embodiment that are not described in detail, reference may be made to the related descriptions of other embodiments.

The preferred embodiments of the present specification disclosed above are merely used to help clarify the present specification. Alternative embodiments are not intended to be exhaustive or to limit the invention to the precise form disclosed. Obviously, many modifications and variations are possible in light of the teaching of the embodiments. The embodiments were chosen and described in order to best explain the principles of the embodiments and the practical application, to thereby enable others skilled in the art to best understand and utilize the invention. This specification is to be limited only by the claims and the full scope and equivalents thereof.