Accelerator, request processing method, device, network device, medium and product
By designing an accelerator for data consistency on the RDMA network card, using the ring request buffer and consistency signal mechanism, the problem of performance degradation when performing RDMA operations by the RDMA network card is solved, efficient request processing and response transmission are achieved, and the System performance and consistency.
Patent Information
- Application Number
- CN202411320653.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-20
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-09-20
AI Technical Summary
When RDMA network cards perform RDMA operations, the performance of some applications is degraded, mainly due to the insufficient memory capacity of smart network cards, and the memory of remote servers needs to be accessed through PCIE links, resulting in increased latency and resource usage.
Design an accelerator for data consistency, including an acceleration controller, scheduler, application processor and RDMA sending queue processor, and realizes the storage, scheduling and processing of request information through a ring request buffer and a consistent signal mechanism. Avoid server CPU intervention and send response information directly from the RDMA network card.
It improves the consistency of server-side applications in the processing of request information and data request processing, reduces dependence on PCIE links, and improves the performance and reliability of the overall system.
Smart Images

Figure CN118842844B_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to the field of computer technology, and in particular to an accelerator for data consistency, a request processing method, a request processing device, a network device, an RDMA network card, a computer-readable storage medium, and a computer program product. Background Art
[0002] RDMA (Remote Direct Memory Access) refers to a technology that allows one computer to directly access the memory of another computer. Since it allows computers to access the memory of remote servers with high bandwidth and low latency, it has been widely deployed in data centers and uses smart network cards (RNIC, RDMA-capable Network Interface Card) to undertake the tasks of the network transmission layer. Although RDMA operations can be performed based on smart network cards, the memory capacity of smart network cards cannot meet the needs of all applications. The processing of application programs needs to be allocated to the smart network card and the server's CPU respectively. This method requires access to the memory of the remote server through a PCIE (Peripheral Component Interconnect Express) link, which results in a decrease in application performance.
[0003] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present disclosure, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0004] The purpose of the present disclosure is to provide an accelerator for data consistency, a request processing method, a request processing device, a network device, an RDMA network card, a computer-readable storage medium and a computer program product, which at least to some extent overcome the problem in the related art that the RDMA network card performs RDMA operations resulting in performance degradation of some applications.
[0005] Other features and advantages of the present disclosure will become apparent from the following detailed description, or may be learned in part by the practice of the present disclosure.
[0006] According to one aspect of the present disclosure, an accelerator for data consistency is provided, comprising: an acceleration controller, configured to receive a consistency signal, the consistency signal being generated by a consistency shared memory space, the consistency shared memory space comprising a ring request buffer, the acceleration controller further configured to identify the ring request buffer receiving request information based on the consistency signal, and to generate a notification signal associated with the ring request buffer based on the identification result; a scheduler, connected to the acceleration controller, configured to obtain the notification signals associated with different ring request buffers, and to schedule the notification signals based on a specified scheduling algorithm to obtain scheduling information, the scheduling information being used to schedule the request information corresponding to the notification signal in timing; and an application A processor, for providing a customized communication interface connected to an application outside the accelerator, so as to schedule the request information to the corresponding application for processing through the customized communication interface based on the acquired scheduling information, and receive response information fed back by the application; an RDMA sending queue processor, respectively connected to the application processor and the RDMA network interface controller RNIC outside the accelerator, for assembling the response information into a work queue element, and triggering the RNIC to feed back the work queue element in the form of a work queue to the client that sent the request information, wherein the client sends the request information again when it tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer.
[0007] In one embodiment of the present disclosure, it also includes: a notification checker, which is arranged in the data path on the port of the acceleration controller, and is used to monitor the index address carried by the consistency signal. The acceleration controller is also used to identify the ring request buffer that receives the request information based on the index address.
[0008] In one embodiment of the present disclosure, it also includes: a tracker, which is connected to the scheduler, the application processor and the ring request buffer respectively, and the tracker is used to compare the current tail position of the ring request buffer with the previous tail position corresponding to the last notification signal generation based on the tracking of the ring request buffer, so as to determine the request information corresponding to the timing of the notification signal.
[0009] In one embodiment of the present disclosure, the consistent shared memory space also includes a pointer buffer, which is registered to the notification checker and stores the index address, and the index address is used to search the corresponding ring request buffer. The ring request buffer also stores a pointer pointing to the index address, and the pointer is used to reversely search the index address from the ring request buffer.
[0010] In one embodiment of the present disclosure, the application processor schedules the request information to the corresponding application for processing through the customized communication interface based on the acquired scheduling information, including: the application processor determines the execution order of the request information based on resource availability and request priority, and schedules the request information to the corresponding application for processing through the customized communication interface based on the execution order and scheduling information.
[0011] In one embodiment of the present disclosure, the application processor determines the execution order of the request information based on resource availability and request priority, including: the application processor is configured with a state table, the state table is used to store the request status of the request information, if the application processor receives new request information or receives the response information fed back by the application, the finite state machine based on the state table updates the request status to determine the priority based on the request status, and determines the execution order of the request information based on the priority and the resource availability.
[0012] In one embodiment of the present disclosure, the RDMA send queue processor triggers the RNIC to feed back the work queue element in the form of a work queue to the client that sent the request information, including: notifying the register of the RNIC to receive the work queue element; receiving the response of the RNIC, writing the work queue elements one by one into the work queue, so that the RNIC feeds back the response information to the client.
[0013] According to another aspect of the present disclosure, a request processing method is provided, which is applied to an RDMA network card of a server, including: receiving request information sent by a client, the request information being cached in a circular request buffer in a consistent shared memory space, and triggering the consistent shared memory space to generate a consistency signal; identifying the circular request buffer that has received the request information based on the consistency signal, and generating a notification signal associated with the circular request buffer based on the identification result; scheduling the notification signal based on a specified scheduling algorithm to obtain scheduling information, wherein the scheduling information is used to schedule the request information that corresponds to the notification signal in timing; scheduling the request information to a corresponding application for processing through a customized communication interface based on the acquired scheduling information, and receiving response information fed back by the application; assembling the response information into a work queue element, and triggering the RDMA network interface controller RNIC to feed back the work queue element to the client in the form of a work queue, wherein the client sends the request information again when it tracks that the tail of the circular request buffer of the server is after the head of the local circular response buffer.
[0014] In one embodiment of the present disclosure, the ring request buffer that has received the request information is identified based on the consistency signal, and a notification signal associated with the ring request buffer is generated based on the identification result, including: monitoring the index address carried by the consistency signal to identify the ring request buffer that has received the request information based on the index address.
[0015] In one embodiment of the present disclosure, it also includes: based on the tracking of the circular request buffer, comparing the current tail position of the circular request buffer with the previous tail position corresponding to the last notification signal generated, so as to determine the request information corresponding to the timing of the notification signal.
[0016] In one embodiment of the present disclosure, the coherent shared memory space further includes a pointer buffer, the pointer buffer stores the index address, and the index address is used to search for the corresponding ring request buffer.
[0017] In one embodiment of the present disclosure, the request information is scheduled to a corresponding application for processing through a customized communication interface based on the acquired scheduling information, including: determining the execution order of the request information based on resource availability and request priority; and scheduling the request information through the customized communication interface to a corresponding application for processing based on the execution order and scheduling information.
[0018] In one embodiment of the present disclosure, the execution order of the request information is determined based on resource availability and request priority, including: the application processor of the RDMA network card is configured with a state table, the state table is used to store the request status of the request information, if the application processor receives new request information or receives the response information fed back by the application, the finite state machine based on the state table updates the request status; the priority is determined based on the request status, and the execution order of the request information is determined based on the priority and the resource availability.
[0019] In one embodiment of the present disclosure, triggering the RNIC to feed back the work queue element in the form of a work queue to the client that sent the request information includes: notifying the register of the RNIC to receive the work queue element; receiving a response from the RNIC, writing the work queue elements one by one into the work queue, so that the RNIC feeds back the response information to the client.
[0020] According to another aspect of the present disclosure, a request processing method is provided, which is applied to an RDMA network card of a client, including: detecting a circular request buffer in a server based on a tracking mechanism; sending request information to the server, and updating a first local record based on confirmation information fed back by the server, the first local record being a local record of the tail of the circular request buffer; updating a second local record in response to received response information to the request information, the second local record being a record of the head of a local circular response buffer; and confirming that the tail of the circular request buffer is after the head of the local circular response buffer based on the first local record and the second local record, and sending the request information again.
[0021] In one embodiment of the present disclosure, in response to the received response information to the request information, updating the second local record further includes: resetting and clearing the entries of the ring response buffer.
[0022] In one embodiment of the present disclosure, it further includes: configuring a pointer buffer, wherein the pointer buffer is used to store an index address pointing to the head of the ring response buffer, so as to determine the head position of the ring response buffer based on the index address.
[0023] In one embodiment of the present disclosure, sending request information to a server includes: publishing at least two consecutive work queue elements and a batch processing prompt instruction to an RDMA network interface controller RNIC as the request information, so as to be sent by the RNIC to the server.
[0024] According to another aspect of the present disclosure, a request processing device is provided, which is applied to an RDMA network card of a server, including: a receiving module, which is used to receive request information sent by a client, the request information is cached in a ring request buffer in a consistent shared memory space, and triggers the consistent shared memory space to generate a consistency signal; an identification module, which is used to identify the ring request buffer that has received the request information based on the consistency signal, and generate a notification signal associated with the ring request buffer based on the identification result; a scheduling module, which is used to schedule the notification signal based on a specified scheduling algorithm to obtain scheduling information, and the scheduling information is used to schedule the request information corresponding to the notification signal in timing; a processing module, which is used to schedule the request information to a corresponding application for processing through a customized communication interface based on the acquired scheduling information, and receive response information fed back by the application; a feedback module, which is used to assemble the response information into a work queue element, and trigger the RNIC to feed back the work queue element to the client in the form of a work queue, wherein the client sends the request information again when it tracks that the tail of the ring request buffer of the server is after the head of the local ring response buffer.
[0025] According to another aspect of the present disclosure, a request processing device is provided, which is applied to an RDMA network card of a client, and includes: a detection module, which is used to detect a circular request buffer in a server based on a tracking mechanism; a sending module, which is used to send request information to the server, and update a first local record based on confirmation information fed back by the server, wherein the first local record is a local record of the tail of the circular request buffer; an updating module, which is used to update a second local record in response to received response information to the request information, wherein the second local record is a record of the head of the local circular response buffer; and a confirmation module, which is used to confirm that the tail of the circular request buffer is after the head of the local circular response buffer based on the first local record and the second local record, and then send the request information again.
[0026] According to another aspect of the present disclosure, a network device is provided, including: a processor; and a memory for storing executable instructions of the processor; the processor is configured to execute the above-mentioned request processing method by executing the executable instructions.
[0027] According to another aspect of the present disclosure, there is provided an RDMA network card, comprising: an accelerator described in any one of the above embodiments.
[0028] According to another aspect of the present disclosure, a computer-readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the above-mentioned request processing method is implemented.
[0029] According to another aspect of the present disclosure, a computer program product is provided, on which a computer program is stored, and when the computer program is executed by a processor, the above-mentioned request processing method is implemented.
[0030] The request processing scheme provided by the embodiments of the present disclosure configures a circular request buffer so that request information can be stored and managed without the intervention of the server CPU. When request information arrives, a consistency signal is automatically generated and received by the acceleration controller. The acceleration controller can directly identify the circular request buffer that has received the request information. The scheduler schedules the notification signal according to the specified scheduling algorithm and determines the processing order of the request information. Then, the application processor schedules the request information to the corresponding application for processing according to the scheduling information. The RDMA send queue processor assembles the response information into a work queue element and writes it into the work queue. The above processes do not require the participation of the server CPU. The response information can be sent directly from the RDMA network card to the client without the introduction of a PCIE link, thereby ensuring the performance of the server-side application in processing the request information and the consistency of the data request processing.
[0031] It is to be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] The accompanying drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present disclosure, and together with the specification are used to explain the principles of the present disclosure. Obviously, the accompanying drawings described below are only some embodiments of the present disclosure, and for ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without creative work.
[0033] Figure 1 A schematic diagram of an accelerator according to an embodiment of the present disclosure is shown;
[0034] Figure 2 A schematic diagram showing a request processing solution according to an embodiment of the present disclosure;
[0035] Figure 3 A schematic diagram showing a circular request buffer in an embodiment of the present disclosure is shown;
[0036] Figure 4 A schematic flow chart showing a request processing method in an embodiment of the present disclosure;
[0037] Figure 5 A schematic flow chart showing another request processing method in an embodiment of the present disclosure;
[0038] Figure 6 A schematic diagram showing a request processing system in an embodiment of the present disclosure is shown;
[0039] Figure 7 A schematic diagram showing a request processing device in an embodiment of the present disclosure;
[0040] Figure 8 A schematic diagram showing another request processing device in an embodiment of the present disclosure is shown;
[0041] Fig. 9 A structural block diagram of a network device in an embodiment of the present disclosure is shown. DETAILED DESCRIPTION
[0042] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that the disclosure will be more comprehensive and complete and to fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0043] In addition, the accompanying drawings are only schematic illustrations of the present disclosure and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0044] RDMA (Remote Direct Memory Access) network card is a network interface controller with special functions. It allows user programs to bypass the operating system kernel and directly interact with the network card for network communication, thereby providing high bandwidth and extremely low latency. Among them, in one-sided RDMA, a process can directly access the memory area of the server without the explicit participation of the process on the server. In two-sided RDMA, both processes on both ends need to actively participate in the communication. Both parties need to explicitly execute send or receive instructions to complete data transmission. RDMA network cards have made special optimizations for one-sided RDMA operations, which can perform more complex remote operations in a single network round trip, providing higher execution and energy efficiency than the host CPU. For example, for memory-sensitive applications (database cache, file system cache, artificial intelligence training, etc.) in servers such as data centers, virtual memory needs to be allocated separately during operation. One-sided RDMA operations can directly transfer data between the client and server memory, avoiding these additional overheads.
[0045] Although RDMA operations can be performed based on smart NICs, the memory capacity of smart NICs cannot meet the needs of all applications. Therefore, the processing of applications needs to be distributed to the smart NIC and the server's CPU respectively. This method requires access to the memory of the remote server through a PCIE (Peripheral Component Interconnect Express) link. The introduction of PCIE links will increase latency and resource usage, and combined with bandwidth limitations, will lead to a decline in application performance.
[0046] The accelerator and each step of the request processing method executed in this example implementation will be described in more detail below with reference to the accompanying drawings and embodiments.
[0047] like Figure 1 As shown, an accelerator 100 for data consistency according to an embodiment of the present disclosure includes:
[0048] The acceleration controller 102 is used to receive a consistency signal, which is generated by a consistent shared memory space. The consistent shared memory space includes a ring request buffer. The acceleration controller 102 is also used to identify the ring request buffer that receives the request information based on the consistency signal, and generate a notification signal associated with the ring request buffer based on the identification result.
[0049] In some embodiments, the acceleration controller 102 is used to receive a consistency signal. This consistency signal is generated by a consistent shared memory space, and the consistent shared memory space contains a ring request buffer. The consistency signal is used to notify the acceleration controller 102 that new request information has arrived at the ring request buffer. After receiving the consistency signal, the acceleration controller 102 can identify the specific ring request buffer that received the request information based on the signal, and based on the identification result, the acceleration controller 102 will generate a notification signal associated with the ring request buffer. This notification signal will be sent to the scheduler 104 to trigger subsequent scheduling operations.
[0050] In some embodiments, the consistent shared memory space is a memory area that is accessed and used by multiple components. The consistent shared memory space includes a circular request buffer, which is a special data structure that has the characteristic of circular use of memory space and can effectively manage and store request information.
[0051] In addition, the consistency signal is generated by the consistent shared memory space, which means that when the data state in the shared memory space changes, the generation of the consistency signal will be triggered.
[0052] The scheduler 104 is connected to the acceleration controller 102, and is used to obtain notification signals associated with different circular request buffers, and schedule the notification signals based on a specified scheduling algorithm to obtain scheduling information, which is used to schedule request information corresponding to the notification signals in timing.
[0053] The scheduling information may include the target application of the request, the resources required for processing, the execution time limit, etc.
[0054] In some embodiments, the scheduler 104 obtains notification signals associated with different ring request buffers and schedules the notification signals based on a specified scheduling algorithm. The selection of the scheduling algorithm can be specified according to different application scenarios and requirements, for example, the priority, time sequence, resource requirements and other factors of the request can be considered. Through the scheduling algorithm, the scheduler 104 can determine which request information should be processed first, thereby realizing reasonable scheduling of the request information.
[0055] The scheduling information obtained by the scheduler 104 will be used to schedule the request information corresponding to the notification signal in timing, so as to ensure efficient processing of the request information by the application program.
[0056] The application processor 106 is used to provide a customized communication interface connected to an application outside the accelerator 100, so as to dispatch the request information to the corresponding application for processing through the customized communication interface based on the acquired scheduling information, and receive response information fed back by the application.
[0057] In some embodiments, the application processor 106 provides a customized communication interface for connecting with an application program outside the accelerator 100 , so that the accelerator 100 can interact with the external application program through the customized communication interface.
[0058] Exemplarily, the application processor 106 schedules the request information to the corresponding application for processing based on the acquired scheduling information, and accurately sends the request information to the appropriate application according to the information provided by the scheduler 104 to ensure that the request can be processed correctly.
[0059] In addition, the application processor 106 is also responsible for receiving response information fed back by the application program, and once the application program has processed the request information, the response information is returned to the application processor 106 .
[0060] The RDMA sending queue processor 108 is connected to the application processor 106 and the RDMA controller outside the accelerator 100 respectively, and is used to assemble the response information into a work queue element, and trigger the RNIC to feed back the work queue element in the form of a work queue to the client that sent the request information, wherein the client sends the request information again when it tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer.
[0061] In some embodiments, the DMA send queue processor 108 is connected to the application processor 106 and the RNIC (RDMA Network Interface Controller) respectively, and is used to assemble the response information into a work queue element. When the application processor 106 receives the response information fed back by the application, the RDMA send queue processor 108 will assemble the response information to make it conform to the format requirements of the work queue, and then the RDMA send queue processor 108 writes the work queue element to the work queue used to perform the RDMA operation, so as to trigger the RDMA controller to feed back the response information in the work queue to the client that sent the request information.
[0062] In this embodiment, the configuration of the circular request buffer allows request information to be stored and managed without the intervention of the server CPU. When request information arrives, a consistency signal is automatically generated and received by the acceleration controller 102. The acceleration controller 102 can directly identify the circular request buffer that has received the request information. The scheduler 104 schedules the notification signal according to the specified scheduling algorithm and determines the processing order of the request information. Then, the application processor 106 schedules the request information to the corresponding application for processing according to the scheduling information. The RDMA send queue processor 108 assembles the response information into a work queue element and writes it into the work queue. The above process does not require the participation of the server CPU. The response information can be sent directly from the RDMA network card to the client without introducing a PCIE link, thereby ensuring the performance of the server-side application in processing the request information and the consistency of the data request processing.
[0063] In addition, the application processor 106 in the accelerator 100 implements customized functions for different application scenarios, and designs different data structures and communication mechanisms for application scenarios such as in-memory databases, chain distributed transactions, and deep learning recommendation model reasoning, which has better adaptability.
[0064] In one embodiment of the present disclosure, it also includes: a notification checker, which is set in the data path on the port of the acceleration controller 102, and is used to monitor the index address carried by the consistency signal. The acceleration controller 102 is also used to identify the ring request buffer that receives the request information based on the index address.
[0065] In this embodiment, a notification checker 110 is inserted into the data path on the port of the acceleration controller 102 for monitoring and processing consistency signals. When the acceleration controller 102 receives a consistency signal from a registered address area, the notification checker 110 first detects it. The notification checker 110 monitors a single address area. If the address of the consistency signal falls in this area, the notification checker 110 can determine the request buffer based on the index address and identify which request buffer has received a new request based on the address. By monitoring only one area and using a continuous, fixed-size buffer, the scalable nature of distribution is achieved.
[0066] In one embodiment of the present disclosure, it also includes: a tracker 112, which is connected to the scheduler 104, the application processor 106 and the ring request buffer respectively. The tracker 112 is used to compare the current tail position of the ring request buffer with the previous tail position corresponding to the generation of the last notification signal based on the tracking of the ring request buffer, so as to determine the request information corresponding to the timing of the notification signal.
[0067] In this embodiment, the scheduler 104 obtains notification signals associated with different request buffers. By setting a tracker 112 to track the previous tail of the circular request buffer, the scheduler 104 can determine how many new requests have been received since the last notification. Based on the structural characteristics of the circular buffer, the position of the previous tail can be used as a reference point to compare with the current state to calculate the number of new requests. When the scheduler 104 determines the number of new requests, it will notify the application processing unit accordingly to ensure that each notification signal can be processed independently to prevent the notification signals from being merged.
[0068] In one embodiment of the present disclosure, the consistent shared memory space also includes a pointer buffer, which is registered to the notification checker 110 and stores an index address, which is used to search the corresponding ring request buffer. The ring request buffer also stores a pointer to the index address, which is used to reversely search the index address from the ring request buffer.
[0069] like Figure 2As shown, a pointer buffer data structure is constructed, each 4-byte index data corresponds to each ring request buffer between machines or within a machine, and a pointer to the index is stored in the request buffer. The data notification mechanism of the pointer buffer includes: (1) registering the pointer buffer allocated to the continuous address space as the notification area; (2) when a new request is written to the buffer in the server memory, the CPU of the client or server will also increase the value of the pointer buffer index corresponding to the request buffer, so that the pointer buffer index points to the tail of the ring request buffer, thereby ensuring the reliability of the tail tracking of the ring request buffer; (3) when processing the request information, corresponding notification signals associated with different request buffers are generated.
[0070] Figure 3 The structure and classification of the circular request buffer are shown. Whether it is a small-scale request data buffer or a large-scale request data buffer, the pointer buffer is used to compress the space occupied by the cache data, solving the problem that the request buffer size is limited by the accelerator's local cache size.
[0071] In some embodiments, during the initialization of the accelerator 100, the device components and the communication request pointer buffer within the device are allocated in a continuous area of the server memory. The continuous memory area is easy to manage and access, which can improve memory utilization and access efficiency. Concentrating the pointer buffer in a continuous area can reduce the generation of memory fragmentation and improve system stability. The allocated continuous server memory area is registered with the notification checker 110 of the accelerator 100 to establish an association between the notification checker 110 and a specific memory area, so that the notification checker 110 can monitor data changes in the area.
[0072] In some embodiments, the pointer buffer is first registered with the notification checker 110 to establish a connection channel so that the notification checker 110 can monitor changes in the pointer buffer. When the content in the pointer buffer changes, the notification checker 110 can perceive the change in a timely manner. The index address is used to search the corresponding ring request buffer. When the index address in the pointer buffer changes, it indicates that there is new data to be processed or an operation has been completed. For example, when a new index address is written to the pointer buffer, this may indicate that a new request has been added to the system, or a specific task has been completed and its result is stored in a specific location, which can be found in the ring request buffer through the index address. After the notification checker 110 detects changes in the index address in the pointer buffer, it can trigger a notification mechanism, and the notification checker 110 can perform corresponding processing on the relevant components.
[0073] In this embodiment, the data notification mechanism of the accelerator 100 is implemented using a cache pointer, which is beneficial to compressing the space occupied by the cache data and solving the problem that the request buffer size is limited by the local cache size of the accelerator 100. For large-scale systems, there are usually a large number of requests and data that need to be processed. Using cache pointers to compress the space occupied by cache data can enable the accelerator 100 to process more requests with limited resources. Even if the accelerator 100 is adapted to large-scale systems and large-scale requests, its scalability is improved.
[0074] In one embodiment of the present disclosure, the application processor 106 schedules the request information to the corresponding application for processing through a customized communication interface based on the acquired scheduling information, including: the application processor 106 determines the execution order of the request information based on resource availability and request priority, and schedules the request information to the corresponding application for processing through a customized communication interface based on the execution order and the scheduling information.
[0075] The resource availability refers to the resources available in the memory of the accelerator 100 , and the priority of the request may include a preset priority, an emergency handling priority, and the like.
[0076] In this embodiment, the scheduling information may include the target application of the request, the resources required for processing, the execution time limit, etc., and the execution order determines the processing order. After determining the target application, the application processor 106 schedules the request information to the corresponding application for processing in this order.
[0077] In one embodiment of the present disclosure, the application processor 106 determines the execution order of the request information based on resource availability and the priority of the request, including: the application processor 106 is configured with a state table, the state table is used to store the request status of the request information, if the application processor 106 receives new request information or receives response information fed back by the application, the finite state machine based on the state table updates the request status to determine the priority based on the request status, and determines the execution order of the request information based on the priority and resource availability.
[0078] In some embodiments, determining the priority based on the request status and determining the execution order of the request information based on the priority and resource availability can be understood as out-of-order execution. The application processor 106 supports out-of-order execution of multiple outstanding requests, thereby maximizing parallel memory and hiding memory access latency. In addition, the status of outstanding requests is stored in TCAM (ternary content addressable memory) or a cuckoo hash table. When a new request or intermediate result arrives, the application processor 106 uses a table-based finite state machine to implement a fast search function, the corresponding TCAM or hash table entry is updated, and then the next action is issued to the corresponding functional unit.
[0079] In one embodiment of the present disclosure, the RDMA send queue processor 108 triggers the RNIC to feed back the work queue elements in the form of a work queue to the client that sends the request information, including: notifying the RNIC's register to receive the work queue elements; receiving the RNIC's response, writing the work queue elements one by one into the work queue, so that the RNIC feeds back the response information to the client.
[0080] In this embodiment, the RDMA send queue processor 108 directly controls the RNIC, which assembles the response information from the application processor 106 into the WQE format and then notifies the register of the RNIC. After the response, the accelerator 100 writes the WQE format information to the WQ one by one, thereby reducing the scalability overhead generated on the accelerator 100.
[0081] An RDMA network card according to an embodiment of the present disclosure includes: an accelerator and an RNIC described in any one of the above embodiments.
[0082] In some embodiments, the RNIC is responsible for connecting to the network and communicating with the client. When receiving RDMA requests from the client, the RNIC can identify and process these requests and transfer the data directly to the consistent shared memory space. The accelerator implements the data allocation, signal notification, scalability, memory latency and application customization functions of the RDMA network card based on the settings of the controller, scheduler, RDMA send queue processor and application processor.
[0083] In some embodiments, during the distributed transaction chain replication process based on persistent memory, the application processor in the accelerator can implement concurrency control. The key-value pair hash table of the concurrency control unit exists in the persistent memory and can only be accessed by an unfinished transaction. The application processor also implements the chain communication function between replica servers, and uses the data structure of the ring buffer to save logs for fault recovery, thereby realizing the inter-machine communication mechanism. The fault recovery log uses persistent memory to accelerate data reading and writing.
[0084] In this embodiment, the use of RDMA grouping operations in the distributed transaction chain replication process is eliminated, and the client does not need to issue RDMA operations for each key-value pair in sequence when processing multi-value transactions, thereby solving the long delay problem in the network and PCIe link.
[0085] In some embodiments, during the deep learning recommendation model inference process, the accelerator traverses the RPC stack and passes the request to the CPU through the ring buffer, where the request is parsed and its state is converted to be input to the model. The accelerator's application processor reads the ring buffer data and performs built-in inference, induction and other operations.
[0086] In this embodiment, the induction operation in the deep learning recommendation model reasoning process is optimized, the memory consumption in the operation process is reduced, and the dependence of data reading on memory bandwidth is reduced, while the time consumed by the induction operation is shortened.
[0087] Figure 4 A flow chart of a request processing method in an embodiment of the present disclosure is shown.
[0088] like Figure 4 As shown, according to an embodiment of the present disclosure, a request processing method is applied to an RDMA network card of a server, including:
[0089] Step S402, receiving request information sent by the client, the request information is cached in a ring request buffer in the consistent shared memory space, and the consistent shared memory space is triggered to generate a consistent signal.
[0090] Step S404: Identify the ring request buffer that receives the request information based on the consistency signal, and generate a notification signal associated with the ring request buffer based on the identification result.
[0091] Step S406: Schedule the notification signal based on a specified scheduling algorithm to obtain scheduling information, where the scheduling information is used to schedule request information corresponding to the notification signal in timing.
[0092] Step S408: dispatch the request information to the corresponding application for processing through the customized communication interface based on the acquired scheduling information, and receive response information fed back by the application.
[0093] Step S410, assemble the response information into a work queue element, and trigger RNIC to feed back the work queue element to the client in the form of a work queue, wherein the client sends the request information again when it tracks that the tail of the server's ring request buffer is after the head of the local ring response buffer.
[0094] In this embodiment, the RDMA network card of the server saves the RDMA connection cache data through a ring data structure, and can achieve adaptation with different types of applications in combination with a specified scheduling algorithm. Based on the acquired scheduling information, the request information is dispatched to the corresponding application through a customized communication interface for processing, and the application data is directly obtained, thereby simplifying the operation of the accelerator and achieving efficient access to cache data consistency, which is beneficial to improving the performance and reliability of the system.
[0095] In one embodiment of the present disclosure, a ring request buffer that has received request information is identified based on a consistency signal, and a notification signal associated with the ring request buffer is generated based on the identification result, including: monitoring an index address carried by the consistency signal to identify the ring request buffer that has received request information based on the index address.
[0096] In one embodiment of the present disclosure, it also includes: based on the tracking of the circular request buffer, comparing the current tail position of the circular request buffer with the previous tail position corresponding to the generation of the last notification signal to determine the request information corresponding to the timing of the notification signal.
[0097] In one embodiment of the present disclosure, the consistent shared memory space further includes a pointer buffer, which is registered to the notification checker and stores an index address, and the index address is used to search for the corresponding ring request buffer.
[0098] In one embodiment of the present disclosure, the request information is dispatched to the corresponding application for processing through a customized communication interface based on the acquired scheduling information, including: determining the execution order of the request information based on resource availability and request priority; and dispatching the request information to the corresponding application for processing through a customized communication interface based on the execution order and scheduling information.
[0099] In one embodiment of the present disclosure, the execution order of request information is determined based on resource availability and request priority, including: an application processor is configured with a state table, the state table is used to store the request status of the request information, if the application processor receives new request information or receives response information fed back by the application, the request status is updated based on a finite state machine of the state table; the priority is determined based on the request status, and the execution order of the request information is determined based on the priority and resource availability.
[0100] In one embodiment of the present disclosure, triggering the RNIC to feed back the work queue elements in the form of a work queue to the client that sent the request information includes: notifying the register of the RNIC to receive the work queue elements; receiving the response of the RNIC, writing the work queue elements one by one into the work queue, so that the RNIC feeds back the response information to the client.
[0101] like Figure 5 As shown, according to another embodiment of the present disclosure, a request processing method is applied to an RDMA network card of a client, comprising:
[0102] Step S502: Detect the circular request buffer in the server based on the tracking mechanism.
[0103] In some embodiments, the client's RDMA network card uses a tracking mechanism to continuously monitor the circular request buffer in the server. The tracking mechanism may involve periodically sending query requests to the server, or determining the status changes of the circular request buffer on the server by monitoring specific network events. This continuous monitoring enables the client to promptly understand the server's available resources and request processing status.
[0104] Step S504: Send request information to the server, and update the first local record based on confirmation information fed back by the server. The first local record is a local record of the tail of the circular request buffer.
[0105] In some embodiments, the request information may be a read request, a write request, or other operation request for specific data. Once the server receives the request information, it sends a confirmation message to the client, indicating that the request has been successfully received and cached in the ring request buffer. The client updates the first local record based on the confirmation information. The first local record records the local record of the tail of the server's ring request buffer. By updating the first local record, the client can track changes in the ring request buffer on the server so as to send the request again when appropriate.
[0106] Step S506: in response to the received response information to the request information, update the second local record, where the second local record is a record of the header of the local ring response buffer.
[0107] In some embodiments, after the server processes the client's request information, it will send response information back to the client. After the client receives the response information, it will update the second local record. The second local record is a record of the local ring response buffer header. Based on the update operation, it ensures that the client can accurately track the response information that has been received, and can distinguish which requests have been processed and which requests are still waiting to be processed.
[0108] Step S508: confirming based on the first local record and the second local record that the tail of the ring request buffer is after the head of the ring response buffer and sending the request information again.
[0109] In some embodiments, the client compares the first local record and the second local record, and if it is confirmed that the tail of the server's circular request buffer is after the head of the local circular response buffer, it means that the server has enough space to receive new requests, and the client has processed the previously received response information to send the request information again.
[0110] For example, if the client's first local record indicates that the tail of the server's circular request buffer has moved forward a lot, and the second local record indicates that the head of the local circular response buffer has also processed a lot of response information, then the client can determine that now is a suitable time to send the request again.
[0111] In this embodiment, for the interaction between the client and the server, RDMA communication is established through the RDMA network card, and a pair of server-side circular request ring buffer and client-side circular response ring buffer are established, which enables the server and the client to perform write operations using unilateral RDMA, thereby achieving high-performance communication between the client and the server.
[0112] In one embodiment of the present disclosure, in response to the received response information to the request information, updating the second local record further includes: resetting and clearing entries in the ring response buffer.
[0113] In this embodiment, the client is responsible for tracking the tail of the request buffer in the server memory and the head of the response buffer in its local memory. Whenever a message is written to the request buffer, the local record of the tail of the request buffer is updated. Whenever a message is received in the response buffer, the local record of the head of the response buffer is updated and the buffer entry is reset to zero. Only when the tail of the request buffer is behind the head of the response buffer can the client issue a request. Otherwise, it indicates that the circular request buffer is filled with running requests and no more requests should be sent, which ensures that any message can only be transmitted over the network once without any conflict.
[0114] It is understood by those skilled in the art that the client is provided with a circular response buffer, and a similar mechanism is applied to the head of the request buffer and the tail of the response buffer of the server.
[0115] In one embodiment of the present disclosure, it also includes:
[0116] A pointer buffer is configured, where the pointer buffer is used to store an index address pointing to a head of the ring response buffer, so as to determine a head position of the ring response buffer based on the index address.
[0117] In one embodiment of the present disclosure, sending request information to a server includes: issuing at least two consecutive work queue elements and a batch processing prompt instruction to an RDMA controller as request information, so as to be sent by the RDMA controller to the server.
[0118] In some embodiments, for remote clients, this can be achieved by issuing two consecutive WQEs (Work Queue Elements) to the RNIC with a batch hint instruction or using user mode memory registers to remap / interleave two buffers and issue a WQE with a signal.
[0119] like Figure 6 As shown, the server implements interaction with the client based on the accelerator, including RDMA write operation requests and RDMA write operation responses, wherein the client includes a CPU, an RUIC and a memory, connected by an RDMA accelerator bus, and the server includes a CPU, an RUIC, an accelerator and a consistent shared memory space, connected by an RDMA accelerator bus, and based on the accelerator in the present disclosure, accelerated processing of one-sided RDMA requests is implemented.
[0120] It should be noted that the above figures are only schematic illustrations of the processes included in the method according to the exemplary embodiments of the present disclosure, and are not intended to be limiting. It is easy to understand that the processes shown in the above figures do not indicate or limit the time sequence of these processes. In addition, it is also easy to understand that these processes can be performed synchronously or asynchronously, for example, in multiple modules.
[0121] Refer to the following Figure 7 The request processing device 700 according to an embodiment of the present disclosure is described. Figure 7 The request processing device 700 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0122] The request processing device 700 is presented in the form of a hardware module or a software module. The components of the request processing device 700 may include but are not limited to: a receiving module 702, which is used to receive the request information sent by the client, the request information is cached in the circular request buffer in the consistent shared memory space, and the consistent shared memory space is triggered to generate a consistency signal; an identification module 704, which is used to identify the circular request buffer that receives the request information based on the consistency signal, and generate a notification signal associated with the circular request buffer based on the identification result; a scheduling module 706, which is used to schedule the notification signal based on a specified scheduling algorithm to obtain scheduling information, and the scheduling information is used to schedule the request information corresponding to the notification signal in timing; a processing module 708, which is used to schedule the request information to the corresponding application through a customized communication interface based on the acquired scheduling information for processing, and receive the response information fed back by the application; a feedback module 710, which is used to assemble the response information into a work queue element, and trigger the RNIC to feed back the work queue element to the client in the form of a work queue, wherein the client sends the request information again when it tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer.
[0123] Refer to the following Figure 8 The request processing device 800 according to an embodiment of the present disclosure is described. Figure 8 The request processing device 800 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present disclosure.
[0124] The request processing device 800 is implemented in the form of a hardware module or a software module. The components of the request processing device 800 may include but are not limited to: a detection module 802, which is used to detect the circular request buffer in the server based on a tracking mechanism; a sending module 804, which is used to send request information to the server and update the first local record based on the confirmation information fed back by the server, the first local record being the local record of the tail of the circular request buffer; an updating module 806, which is used to update the second local record in response to the received response information to the request information, the second local record being the record of the head of the local circular response buffer; a confirmation module 808, which is used to confirm that the tail of the circular request buffer is after the head of the local circular response buffer based on the first local record and the second local record and send the request information again.
[0125] like Fig. 9 As shown, the network device 900 is in the form of a general computing device. The components of the network device 900 may include but are not limited to: at least one processing unit 910, at least one storage unit 920, and a bus 930 connecting different system components (including the storage unit 920 and the processing unit 910).
[0126] The storage unit stores a program code, which can be executed by the processing unit 910, so that the processing unit 910 performs the steps according to various exemplary embodiments of the present disclosure described in the above “Exemplary Method” section of this specification. For example, the processing unit 910 can perform the following steps: Figure 4 and 5 The scheme described in .
[0127] The storage unit 920 may include a readable medium in the form of a volatile storage unit, such as a random access storage unit (RAM) 9201 and / or a cache storage unit 9202 , and may further include a read-only storage unit (ROM) 9203 .
[0128] The storage unit 920 may also include a program / utility 9204 having a set (at least one) of program modules 9205, such program modules 9205 including but not limited to: an operating system, one or more application programs, other program modules, and program data, each of which or some combination may include an implementation of a network environment.
[0129] Bus 930 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0130] The network device 900 may also communicate with one or more external devices 970 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable users to interact with the network device 900, and / or communicate with any device that enables the network device 900 to communicate with one or more other computing devices (e.g., routers, modems, etc.). This communication may be performed through an input / output (I / O) interface 950. In addition, the network device 900 may also communicate with one or more networks (e.g., local area networks (LANs), wide area networks (WANs), and / or public networks, such as the Internet) through a network adapter 960. As shown, the network adapter 960 communicates with other modules of the network device 900 through a bus 930. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the network device 900, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems, etc.
[0131] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by software combined with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes a number of instructions to enable a computing device (which can be a personal computer, a server, a terminal device, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0132] In an exemplary embodiment of the present disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the above method of the present specification is stored. In some possible implementations, various aspects of the present disclosure may also be implemented in the form of a program product, which includes a program code, and when the program product is run on a network device, the program code is used to enable the network device to perform the steps according to various exemplary implementations of the present disclosure described in the above "Exemplary Method" section of the present specification.
[0133] According to the program product for implementing the above method according to the embodiment of the present disclosure, it can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a network device, such as a personal computer. However, the program product of the present disclosure is not limited to this. In this document, the readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0134] The program product may be any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination thereof. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination thereof.
[0135] Computer readable signal media may include data signals propagated in baseband or as part of a carrier wave, in which readable program code is carried. Such propagated data signals may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Readable signal media may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by or in conjunction with an instruction execution system, apparatus, or device.
[0136] The program code embodied on the readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the foregoing.
[0137] The program code for performing the operations of the present disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the IoT terminal, as an independent software package, partially on the user computing device and partially on the remote computing device, or entirely on the remote computing device or server. In the case of a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., using an Internet service provider to connect through the Internet).
[0138] It should be noted that, although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the embodiments of the present disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. On the contrary, the features and functions of one module or unit described above can be further divided into multiple modules or units to be embodied.
[0139] In addition, although the steps of the method in the present disclosure are described in a specific order in the drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step, and / or one step may be decomposed into multiple steps, etc.
[0140] Through the description of the above implementation, it is easy for those skilled in the art to understand that the example implementation described here can be implemented by software, or by combining software with necessary hardware. Therefore, the technical solution according to the implementation of the present disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, and includes several instructions to enable a computing device (which can be a personal computer, a server, a mobile terminal, or a network device, etc.) to execute the method according to the implementation of the present disclosure.
[0141] Those skilled in the art will readily appreciate other embodiments of the present disclosure after considering the specification and practicing the disclosure herein. This application is intended to cover any variations, uses or adaptations of the present disclosure, which follow the general principles of the present disclosure and include common knowledge or customary techniques in the art that are not disclosed in the present disclosure. The specification and examples are intended to be exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.
Claims
1. An accelerator for data consistency, characterized in that: include: an acceleration controller, configured to receive a consistency signal, the consistency signal being generated by a consistency shared memory space, the consistency shared memory space including a ring request buffer, the acceleration controller further configured to identify the ring request buffer receiving the request information based on the consistency signal, and to generate a notification signal associated with the ring request buffer based on the identification result; a scheduler connected to the acceleration controller, configured to obtain the notification signals associated with different ring request buffers, and schedule the notification signals based on a specified scheduling algorithm to obtain scheduling information, wherein the scheduling information is used to schedule the request information corresponding to the notification signals in timing; An application processor, configured to provide a customized communication interface connected to an application program outside the accelerator, so as to dispatch the request information to the corresponding application program for processing through the customized communication interface based on the acquired scheduling information, and receive response information fed back by the application program; An RDMA sending queue processor is connected to the application processor and the RDMA network interface controller RNIC outside the accelerator, respectively, and is used to assemble the response information into a work queue element, and trigger the RNIC to feed back the work queue element in the form of a work queue to the client that sent the request information, wherein when the client tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer, the client sends the request information again.
2. The accelerator for data consistency according to claim 1, characterized in that: Also includes: A notification checker is arranged in a data path on a port of the acceleration controller, and is used to monitor an index address carried by the consistency signal. The acceleration controller is also used to identify a ring request buffer that receives the request information based on the index address.
3. The accelerator for data consistency according to claim 1, characterized in that: Also includes: A tracker is connected to the scheduler, the application processor and the ring request buffer respectively. The tracker is used to compare the current tail position of the ring request buffer with the previous tail position corresponding to the last notification signal generation based on the tracking of the ring request buffer, so as to determine the request information corresponding to the timing of the notification signal.
4. The accelerator for data consistency according to claim 2, characterized in that: The consistent shared memory space also includes a pointer buffer, which is registered to the notification checker and stores the index address. The index address is used to search the corresponding ring request buffer. The ring request buffer also stores a pointer pointing to the index address, and the pointer is used to reversely search the index address from the ring request buffer.
5. The accelerator for data consistency according to claim 1, characterized in that: The application processor dispatches the request information to the corresponding application program for processing through the customized communication interface based on the acquired scheduling information, including: The application processor determines the execution order of the request information based on resource availability and request priority, and dispatches the request information to the corresponding application program for processing through the customized communication interface based on the execution order and scheduling information.
6. The accelerator for data consistency according to claim 5, characterized in that: The application processor determines the execution order of the request information based on resource availability and request priority, including: The application processor is configured with a state table, which is used to store the request status of the request information. If the application processor receives new request information or receives the response information fed back by the application, the finite state machine based on the state table updates the request status to determine the priority based on the request status, and determines the execution order of the request information based on the priority and the resource availability.
7. The accelerator for data consistency according to claim 1, characterized in that: The RDMA sending queue processor triggers the RNIC to feed back the work queue element in the form of a work queue to the client sending the request information, including: The RDMA send queue processor notifies the register of the RNIC to receive the work queue element; Upon receiving a response from the RNIC, the work queue elements are written into the work queue one by one, so that the RNIC feeds back the response information to the client.
8. A request processing method, characterized in that: RDMA network cards used in servers include: Receive request information sent by the client, the request information is cached in a ring request buffer in the consistent shared memory space, and trigger the consistent shared memory space to generate a consistency signal; identifying the ring request buffer that receives the request information based on the consistency signal, and generating a notification signal associated with the ring request buffer based on the identification result; Scheduling the notification signal based on a specified scheduling algorithm to obtain scheduling information, where the scheduling information is used to schedule the request information corresponding to the notification signal in timing; Based on the acquired scheduling information, the request information is dispatched to the corresponding application through a customized communication interface for processing, and response information fed back by the application is received; The response information is assembled into a work queue element, and the RDMA network interface controller RNIC is triggered to feed the work queue element back to the client in the form of a work queue, wherein when the client tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer, the request information is sent again.
9. The request processing method according to claim 8, characterized in that: Identifying the ring request buffer that receives the request information based on the consistency signal, and generating a notification signal associated with the ring request buffer based on the identification result, including: The index address carried by the consistency signal is monitored to identify the ring request buffer that receives the request information based on the index address.
10. The request processing method according to claim 8, characterized in that: Also includes: Based on the tracking of the annular request buffer, a current tail position of the annular request buffer is compared with a previous tail position corresponding to when the last notification signal was generated, so as to determine the request information corresponding to the timing of the notification signal.
11. The request processing method according to claim 9, characterized in that: The consistent shared memory space also includes a pointer buffer, and the pointer buffer stores the index address.
12. The request processing method according to claim 9, characterized in that: Based on the acquired scheduling information, the request information is dispatched to the corresponding application through a customized communication interface for processing, including: Determining an execution order of the request information based on resource availability and request priority; Based on the execution order and scheduling information, the request information is dispatched to a corresponding application through the customized communication interface for processing.
13. The request processing method according to claim 12, characterized in that: Determining the execution order of the request information based on resource availability and request priority, including: The application processor of the RDMA network card is configured with a state table, and the state table is used to store the request state of the request information. If the application processor receives new request information or receives the response information fed back by the application program, the finite state machine based on the state table updates the request state; The priority is determined based on the request status, and the execution order of the request information is determined based on the priority and the resource availability.
14. The request processing method according to claim 8, characterized in that: Triggering the RNIC to feed back the work queue element in the form of a work queue to the client sending the request information, including: Notifying a register of the RNIC to receive the work queue element; Upon receiving a response from the RNIC, the work queue elements are written into the work queue one by one, so that the RNIC feeds back the response information to the client.
15. A request processing method, characterized in that: RDMA network cards used on the client include: Detecting circular request buffers in servers based on tracing mechanisms; Sending request information to the server, and updating a first local record based on confirmation information fed back by the server, wherein the first local record is a local record of the tail of the ring request buffer, wherein the request information is cached in the ring request buffer; In response to the received response information to the request information, update a second local record, where the second local record is a record of a header of a local ring response buffer; The request information is sent again after the head of the local ring response buffer, confirming that the tail of the ring request buffer is located based on the first local record and the second local record.
16. The request processing method according to claim 15, characterized in that: In response to the received response information to the request information, updating the second local record also includes: The entries of the ring response buffer are reset and cleared.
17. The request processing method according to claim 15, characterized in that: Also includes: A pointer buffer is configured, where the pointer buffer is used to store an index address pointing to a head of the ring response buffer, so as to determine a head position of the ring response buffer based on the index address.
18. The request processing method according to claim 15, characterized in that: Send request information to the server, including: At least two consecutive work queue elements and a batch processing hint instruction are issued to an RDMA network interface controller RNIC as the request information, so as to be sent to the server by the RNIC.
19. A request processing device, characterized in that: RDMA network cards used in servers include: A receiving module, used for receiving request information sent by a client, wherein the request information is cached in a ring request buffer in a consistent shared memory space, and triggering the consistent shared memory space to generate a consistent signal; an identification module, configured to identify the ring request buffer that receives the request information based on the consistency signal, and generate a notification signal associated with the ring request buffer based on the identification result; A scheduling module, configured to schedule the notification signal based on a specified scheduling algorithm to obtain scheduling information, wherein the scheduling information is used to schedule the request information corresponding to the notification signal in timing; A processing module, used to dispatch the request information to a corresponding application for processing through a customized communication interface based on the acquired scheduling information, and receive response information fed back by the application; A feedback module is used to assemble the response information into a work queue element, and trigger the RDMA network interface controller RNIC to feed back the work queue element to the client in the form of a work queue, wherein when the client tracks that the tail of the server's circular request buffer is after the head of the local circular response buffer, the client sends the request information again.
20. A request processing device, characterized in that: RDMA network cards used on the client include: A detection module, for detecting a circular request buffer in a server based on a tracking mechanism; A sending module, configured to send request information to the server, and update a first local record based on confirmation information fed back by the server, wherein the first local record is a local record of the tail of the annular request buffer, wherein the request information is cached in the annular request buffer; An updating module, configured to update a second local record in response to the received response information to the request information, wherein the second local record is a record of a header of a local ring response buffer; A confirmation module is used to confirm, based on the first local record and the second local record, that the tail of the annular request buffer is after the head of the local annular response buffer and to send the request information again.
21. A network device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the request processing method of any one of claims 8 to 14 or 15 to 18 by executing the executable instructions.
22. An RDMA network card, characterized in that: include: An accelerator as claimed in any one of claims 1 to 7.
23. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the request processing method according to any one of claims 8 to 18 is implemented.
24. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the request processing method according to any one of claims 8 to 18 is implemented.
Citation Information
Patent Citations
Method and apparatus for managing storage device in storage system
CN110199270A
A rate update engine for reliable transport protocol
CN112311688A