Data processing method and device and computing equipment

By building a shared TP queue resource pool and dynamically applying for and releasing queues for TP connections, the problem of TP queues occupying too many storage resources is solved, and storage resource utilization and task execution efficiency are improved.

CN120675952AActive Publication Date: 2025-09-19HUAWEI TECH CO LTD
View PDF 10 Cites 0 Cited by

Patent Information

Application Number
CN202510687262.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-02-23
Publication Date
2025-09-19
Estimated Expiration
2044-02-23

AI Technical Summary

Technical Problem

In a network based on a unified bus protocol, when a computing device establishes TP connections with multiple other devices, the TP queue occupies too much storage resources, resulting in low storage resource utilization.

Method used

By building a shared TP queue resource pool, computing devices dynamically apply for and release TP queues for TP connections when communication is needed, avoiding the fixed association of each TP connection with a queue and flexibly adjusting queue usage. By building and releasing the queue resource pool and the construction method, it is possible to occupy queue resources when no tasks are executed, thereby improving storage resource utilization.

Benefits of technology

This effectively avoids the TP queue from occupying storage resources when not executing tasks, improves the utilization of storage resources, and reduces task delays and resource waste.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120675952A_ABST
    Figure CN120675952A_ABST
Patent Text Reader

Abstract

The invention provides a data processing method and device and computing equipment, and the method comprises the steps that first computing equipment obtains one or more task descriptors, and each task descriptor comprises address information of data to be transmitted to second computing equipment by the first computing equipment; after a first computing device selects a first TP connection from TP connections established between the first computing device and a second computing device to transmit to-be-transmitted data, when it is determined that the first TP connection is not associated with a TPQ, a first TPQ is selected from idle TPQs or the first TPQ is created, and then an association relationship between the first TP connection and the first TPQ is established. And caching the one or more task descriptors to the first TPQ. In the embodiment of the invention, the computing device configures the TPQ for the TP connection only when the TPQ connection needs to cache the task descriptor, so that the TPQ resource occupation when the TP connection does not execute the task can be avoided, the problem that the TPQ occupies excessive storage resources is avoided, and the utilization rate of the storage resources is improved.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The application number of the original application is 202410205867.4, and the original application date is February 23, 2024. The entire content of the original application is incorporated into this application by reference. Technical Field

[0002] The present application relates to the field of computer technology, and in particular to a data processing method, apparatus, and computing device. Background Art

[0003] In a network based on the unified bus (UB) protocol, one or more transport layer (TP) connections need to be established between two computing devices that communicate with each other. A computing device can communicate with multiple computing devices, so a computing device can establish TP connections with multiple computing devices. Each TP connection requires the allocation of a transport layer queue (TPQ) for caching the task descriptor corresponding to the TP connection. If a computing device establishes a large number of TP connections with other computing devices, the TPQ in the computing device will occupy a large amount of storage resources of the computing device. Summary of the Invention

[0004] The present application provides a data processing method, apparatus, and computing device, which can reduce the TPQ occupation of storage resources in a network using the UB protocol and improve the utilization rate of storage resources.

[0005] In a first aspect, the present application provides a data processing method, applied to a network including multiple computing devices, wherein one or more TP connections are established between any two of the multiple computing devices, and the TP connections are used for communication between the two computing devices; the method comprises:

[0006] When the first computing device needs to transmit data to be transmitted to the second computing device, the first computing device selects a first TP connection from the TP connections established between the first computing device and the second computing device to transmit the above-mentioned data to be transmitted, and then the first computing device determines whether the first TP connection is associated with the TPQ. If the first computing device determines that the first TP connection is not associated with the TPQ, the first computing device establishes an association relationship between the first TP connection and the first TPQ, and then caches one or more task descriptors to the first TPQ; wherein the first TPQ is one of the one or more TPQs created by the first computing device, or the first TPQ is a TPQ created by the first computing device according to the required capacity, and the required capacity is the capacity required for the first computing device to cache the above-mentioned one or more task descriptors, each task descriptor includes address information of the data to be transmitted, and the first computing device and the second computing device belong to the above-mentioned multiple computing devices.

[0007] By implementing the above method, a computing device configures one or more TPQs for a TP connection only when it needs to communicate with other computing devices via a TP connection to complete a task, and associates these one or more TPQs with the TP. This means that each TP connection is not permanently associated with a TPQ, and each time a TP connection is determined to be associated with a TPQ, the first computing device also disassociates the TP connection from the TPQ after each TP connection is associated with a TPQ. This prevents a TP connection from occupying TPQ resources when not executing a task, avoids the problem of TPQs occupying excessive storage resources, and improves storage resource utilization. The computing device in the embodiments of the present invention may also be referred to as a host, computing node, or computing module, and is a device, chip, or module with computing capabilities.

[0008] In one possible implementation, the first computing device determines whether the first TP connection is associated with the TPQ. If the first computing device determines that the first TP connection is associated with the second TPQ, it obtains the storage capacity of the second TPQ. If the storage capacity of the second TPQ is less than the required capacity, the first computing device establishes an association relationship between the first TP connection and the first TPQ, and caches one or more task descriptors to the first TPQ.

[0009] The first TP connection may also already be associated with a TPQ. In this case, the first computing device will first confirm whether the storage capacity of the second TPQ currently associated with the first TP connection is sufficient to cache the aforementioned one or more task descriptors. If the second TPQ cannot cache the aforementioned one or more task descriptors, the second TPQ will be replaced with the first TPQ with a larger storage capacity, so that the first computing device can continue to use the first TP connection to transmit the aforementioned data to be transmitted. By implementing the above method, each TP connection is not fixedly associated with a TPQ, thereby enabling the TPQ associated with the TP connection to be flexibly adjusted, avoiding the situation where the storage capacity of the TPQ associated with a TP connection is small and cannot cache multiple task descriptors corresponding to a task, thereby causing delays in the implementation of the task due to the change of TP connections.

[0010] In one possible implementation, before the above-mentioned first computing device establishes the association relationship between the first TP connection and the first TPQ, it also includes: the first computing device deletes the configuration information of the second TPQ recorded in the first transport layer context (TP context, TPC) corresponding to the first TP connection; wherein, each TP connection is associated with a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0011] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; and establishing an association between the first TP connection and the first TPQ includes: the first computing device obtains an idle TPQ, determines a first TPQ based on a required capacity and the storage capacity of each idle TPQ, and then writes configuration information of the first TPQ into a first TPC corresponding to the first TP connection, thereby establishing an association between the first TP connection and the first TPQ. The storage capacity of the first TPQ is greater than or equal to the required capacity, and an idle TPQ is a TPQ with no associated TP connection. Each TP connection corresponds to a TPC, which is used to record configuration information of the TPQ associated with the corresponding TP connection, the configuration information including the starting address and storage capacity of the TPQ.

[0012] The first computing device can create a TPQ when establishing a TP connection with other computing devices. When the TPQ needs to be used to cache task descriptors, a TPQ with a storage capacity greater than the required capacity is selected based on the required capacity of the task descriptors to be cached, and then the TPQ is associated with the TP connection. When associating, the TP connection and TPQ can be associated by simply writing the configuration information of the TPQ into the TPC associated with the TP connection.

[0013] In one possible implementation, establishing the association relationship between the first TP connection and the first TPQ includes: the first computing device creates the first TPQ according to the required capacity of one or more task descriptors, and writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection.

[0014] In the present application, when the first computing device needs to use TPQ to cache the task descriptor, it can also create a TPQ with a storage capacity greater than the required capacity based on the required capacity of the task descriptor to be cached, and then associate the TPQ with the TP connection. When associating, it is only necessary to write the configuration information of the TPQ into the TPC associated with the TP connection to realize the association between the TP connection and the TPQ.

[0015] In one possible implementation, after the first computing device caches one or more task descriptors to the first TPQ, the method further includes: the first computing device reads the task descriptor from the first TPQ and executes the communication task indicated by the task descriptor; after the first computing device determines that there is no task descriptor in the first TPQ, it releases the first TPQ, that is, deletes the configuration information of the first TPQ recorded in the first TPC, and releases the association between the first TP and the first TPQ.

[0016] After the task indicated by the task descriptor in a TPQ is completed, the computing device can release the TPQ so that other TP connections can use this TPQ. This can avoid the situation where a TP connection occupies TPQ resources when not executing a task, avoid the problem of TPQ occupying too many storage resources, and improve storage resource utilization.

[0017] In one possible implementation, after the first computing device caches one or more task descriptors to the first TPQ, the above method also includes: the first computing device determines that there is no task descriptor in the first TPQ, and the first number of TPQs currently in an idle state is less than a first threshold, and deletes the configuration information of the first TPQ recorded in the first TPC.

[0018] If there are no cached task descriptors in the TPQ associated with a TP connection, and the number of TPQs currently in idle state is small, the TPQ associated with the TP connection but without cached task descriptors will be released so that the TP connection that needs to use the TPQ can find an idle TPQ to associate with it in a timely manner. If there are no cached task descriptors in the TPQ associated with a TP connection, and the number of TPQs currently in idle state is large, the association between the TP connection and the TPQ will be maintained so that when the TP connection needs to use the TPQ cached task descriptor again, it does not need to find an available TPQ for association, thereby reducing the latency of task execution.

[0019] In one possible implementation, after the first computing device caches the one or more task descriptors to the first TPQ, the method further includes: the first computing device determines that there is no task descriptor in the first TPQ, and no new task descriptor is cached in the first TPQ within the first time period, and deletes the configuration information of the first TPQ recorded in the first TPC.

[0020] If there are no cached task descriptors in the TPQ associated with a TP connection, and the TPQ has not cached a task descriptor for more than a period of time, the TPQ associated with the TP connection but without a cached task descriptor will be released so that the TP connection that needs to use the TPQ can find an idle TPQ to associate with it in a timely manner. If there are no cached task descriptors in the TPQ associated with a TP connection, but the TP connection may need a TPQ cached task descriptor again in a short period of time, the association between the TP connection and the TPQ will be maintained for a period of time so that when the TP connection needs to use the TPQ cached task descriptor again, it does not need to find an available TPQ for association, thereby reducing the latency of task execution.

[0021] In a second aspect, the present application provides a data processing method, applied to a network including multiple computing devices, wherein one or more transport layer TP connections are established between any two of the multiple computing devices, and the TP connections are used for communication between the two computing devices; the method comprises:

[0022] When the first computing device needs to transmit data to be transmitted to the second computing device, the first computing device selects the first TP connection from the TP connections established between the first computing device and the second computing device to transmit the above-mentioned data to be transmitted, and then the first computing device determines whether the first TP connection is associated with the TPQ; if the first computing device determines that the first TP connection is associated with the second TPQ, obtains the storage capacity of the second TPQ; if the storage capacity of the second TPQ is less than the required capacity, the first computing device establishes an association relationship between the first TP connection and the first TPQ; and then caches one or more task descriptors to the first TPQ; wherein the first TPQ is one of the one or more TPQs created by the first computing device, or the first TPQ is the TPQ created by the first computing device according to the required capacity, and the required capacity is the capacity required for the first computing device to cache the above-mentioned one or more task descriptors.

[0023] When a TPQ is already associated with a first TP connection, the first computing device first determines whether the storage capacity of the second TPQ currently associated with the first TP connection is sufficient to cache the one or more task descriptors. If the second TPQ is not sufficient to cache the one or more task descriptors, the first TPQ with a larger storage capacity is replaced with the second TPQ, allowing the first computing device to continue using the first TP connection to transmit the data to be transmitted. By implementing the above method, each TP connection is not fixedly associated with a specific TPQ, allowing for flexible adjustment of the TPQ associated with the TP connection. This avoids situations where a TPQ associated with a TP connection has a smaller storage capacity than can cache multiple task descriptors corresponding to a task, thus preventing delays caused by switching TP connections for the task.

[0024] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; and establishing an association between the first TP connection and the first TPQ includes: the first computing device obtains an idle TPQ, determines a first TPQ based on a required capacity and the storage capacity of each idle TPQ, and then writes configuration information of the first TPQ into a first TPC corresponding to the first TP connection, thereby establishing an association between the first TP connection and the first TPQ. The storage capacity of the first TPQ is greater than or equal to the required capacity, and an idle TPQ is a TPQ with no associated TP connection. Each TP connection corresponds to a TPC, which is used to record configuration information of the TPQ associated with the corresponding TP connection, the configuration information including the starting address and storage capacity of the TPQ.

[0025] In one possible implementation, establishing the association relationship between the first TP connection and the first TPQ includes: the first computing device creates the first TPQ according to the required capacity of one or more task descriptors, and writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection.

[0026] In a possible implementation, before establishing the association relationship between the first TP connection and the first TPQ, it also includes: the first computing device releases the second TPQ, deletes the configuration information of the second TPQ recorded in the first TPC, and releases the association relationship between the first TP connection and the second TPQ.

[0027] In one possible implementation, after the first computing device caches one or more task descriptors to the first TPQ, the method further includes: the first computing device reads the task descriptor from the first TPQ and executes the communication task indicated by the task descriptor; after the first computing device determines that there is no task descriptor in the first TPQ, it releases the first TPQ, that is, deletes the configuration information of the first TPQ recorded in the first TPC, and releases the association between the first TP and the first TPQ.

[0028] After the task indicated by the task descriptor in a TPQ is completed, the computing device can release the TPQ so that other TP connections can use this TPQ. This can avoid the situation where a TP connection occupies TPQ resources when not executing a task, avoid the problem of TPQ occupying too many storage resources, and improve storage resource utilization.

[0029] In one possible implementation, after the first computing device caches one or more task descriptors to the first TPQ, the above method also includes: the first computing device determines that there is no task descriptor in the first TPQ, and the first number of TPQs currently in an idle state is less than a first threshold, and deletes the configuration information of the first TPQ recorded in the first TPC.

[0030] If there are no cached task descriptors in the TPQ associated with a TP connection, and the number of TPQs currently in idle state is small, the TPQ associated with the TP connection but without cached task descriptors will be released so that the TP connection that needs to use the TPQ can find an idle TPQ to associate with it in a timely manner. If there are no cached task descriptors in the TPQ associated with a TP connection, and the number of TPQs currently in idle state is large, the association between the TP connection and the TPQ will be maintained so that when the TP connection needs to use the TPQ cached task descriptor again, it does not need to find an available TPQ for association, thereby reducing the latency of task execution.

[0031] In one possible implementation, after the first computing device caches one or more task descriptors to the first TPQ, the method further includes: the first computing device determines that there is no task descriptor in the first TPQ, and no new task descriptor is cached in the first TPQ within the first time period, and deletes the configuration information of the first TPQ recorded in the first TPC.

[0032] In a third aspect, the present application provides a data processing method, which is applied to a network including multiple computing devices, where one or more transport layer TP connections are established between any two computing devices among the multiple computing devices, and the TP connection is used for communication between the two computing devices; the above method includes: a first computing device receives a first message sent by a third computing device through a second TP connection, where the first message includes data to be written, and the second TP connection is one of the TP connections established between the first computing device and the third computing device; the first computing device determines whether the second TP connection is associated with a TPQ, and if the second TP connection is not associated with a TPQ, establishes an association relationship between the second TP connection and the third TPQ, and then caches the first completion information to the third TPQ; wherein the third TPQ is one of the one or more TPQs created by the first computing device, or the third TPQ is created by the first computing device after determining that the second TP connection is not associated with a TPQ; the first computing device writes the data to be written into a storage space, generates first completion information corresponding to the first message, and the first completion information indicates that the data to be written has been written to the storage space.

[0033] By implementing the above method, the computing device will configure a TPQ for the TP connection only when it receives a message and needs TPQ cache completion information, and associate this TPQ with the TP, that is, each TP connection is not fixedly associated with a TPQ, and each time it is determined whether a TP connection is associated with a TPQ for caching completion information, it means that after each TP connection is associated with a TPQ, the first computing device will also release the association between the TP connection and the TPQ, which can avoid the situation where a TP connection occupies TPQ resources when not performing a task, avoid the problem of TPQ occupying too many storage resources, and improve the utilization rate of storage resources.

[0034] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates K TPQs for caching completion information, where K is less than N; the third TPQ belongs to the K TPQs; the above-mentioned first computing device establishes an association relationship between the second TP connection and the third TPQ, including: the first computing device selects the third TPQ from the idle TPQs, and then writes the configuration information of the third TPQ into the second TPC corresponding to the second TP connection; wherein the idle TPQ refers to the TPQ without an associated TP connection; each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0035] In a possible implementation, establishing the association relationship between the second TP and the third TPQ includes: the first computing device creates the third TPQ, and writes configuration information of the third TPQ into the first TPC corresponding to the first TP connection.

[0036] In a fourth aspect, the present application provides a data processing apparatus, characterized in that it is applied to a first computing device and includes:

[0037] a processing module, configured to determine whether a first TP connection is associated with a transport layer queue (TPQ), the first TP connection being one of the TP connections established between the first computing device and the second computing device; and, if the first TP connection is not associated with the TPQ, sending a first application request to the queue management module, the first application request being used to apply for a TPQ from the queue management module, wherein the TP connection is used for communication between the two computing devices.

[0038] The queue management module is configured to return an identifier of a first TPQ to the processing module after receiving the first application request; wherein the first TPQ is one of one or more TPQs created by the queue management module, or the first TPQ is a TPQ created by the queue management module based on a required capacity, where the required capacity is the capacity required by the first computing device to cache one or more task descriptors, each task descriptor including address information of data to be transmitted, and the data to be transmitted is data to be transmitted by the first computing device to the second computing device;

[0039] The processing module is further configured to establish an association relationship between the first TP connection and the first TPQ, and cache one or more task descriptors in the first TPQ.

[0040] In one possible implementation, the processing module is further configured to: determine that the first TP connection is associated with a second TPQ, and obtain a storage capacity of the second TPQ; determine that the storage capacity of the second TPQ is less than a required capacity, and send a second application request to the queue management module, where the second application request is used to apply for a TPQ from the queue management module; and the queue management module is configured to return an identifier of the first TPQ to the processing module; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and an idle TPQ refers to a TPQ that is not associated with a TP connection;

[0041] The processing module is further configured to establish an association relationship between the first TP connection and the first TPQ, and cache one or more task descriptors in the first TPQ.

[0042] In one possible implementation, the above-mentioned processing module is also used to: delete the configuration information of the second TPQ recorded in the first transport layer context TPC corresponding to the first TP connection; wherein, each TP connection is associated with a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0043] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; and the queue management module is specifically configured to:

[0044] After receiving the first application request or the second application request, the idle TPQ is obtained, the first TPQ is determined according to the required capacity and the storage capacity of each TPQ in the idle state, and the identifier of the first TPQ is returned to the processing module; wherein, the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to the TPQ without an associated TP connection; the processing module is specifically used to: write the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein, each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0045] In one possible implementation, the queue management module is specifically used to: after receiving the first application request or the second application request, create a first TPQ based on the required capacity of one or more task descriptors, and return the identifier of the first TPQ to the processing module, wherein the storage capacity of the first TPQ is greater than or equal to the required capacity; the processing module is specifically used to: write the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0046] In one possible implementation, after one or more task descriptors are cached to the first TPQ, the processing module is further used to: after the first computing device determines that there is no task descriptor in the first TPQ, release the first TPQ, that is, delete the configuration information of the first TPQ recorded in the first TPC, and cancel the association between the first TP and the first TPQ.

[0047] In one possible implementation, after caching one or more task descriptors to the first TPQ, the processing module is further used to: when the first computing device determines that there is no task descriptor in the first TPQ and the first number of TPQs currently in an idle state is less than a first threshold, delete the configuration information of the first TPQ recorded in the first TPC.

[0048] In one possible implementation, after one or more task descriptors are cached to the first TPQ, the processing module is further used for: the first computing device determines that there is no task descriptor in the first TPQ, and no new task descriptor is cached in the first TPQ within the first time period, and deletes the configuration information of the first TPQ recorded in the first TPC.

[0049] In a fifth aspect, the present application provides a data processing apparatus, applied to a first computing device, comprising:

[0050] a processing module configured to determine whether a first TP connection is associated with a transport layer queue (TPQ); and upon determining that the first TP connection is associated with a second TPQ, obtain a storage capacity of the second TPQ; and upon determining that the storage capacity of the second TPQ is less than a required capacity, send a second application request to a queue management module; wherein the first TP connection is one of the TP connections established between the first computing device and the second computing device, and the second application request is used to apply for a TPQ from the queue management module, wherein the TP connection is used for communication between the two computing devices;

[0051] a queue management module, configured to return an identifier of the first TPQ to the processing module upon receiving the second application request; wherein the storage capacity of the first TPQ is greater than or equal to a required capacity, the required capacity being the capacity required by the first computing device to cache one or more task descriptors, each task descriptor including address information of data to be transmitted, the data to be transmitted being data to be transmitted by the first computing device to the second computing device;

[0052] The processing module is further configured to establish an association relationship between the first TP connection and the first TPQ, and cache the one or more task descriptors in the first TPQ.

[0053] In one possible implementation, the processing module is further used to: delete the configuration information of the second TPQ recorded in the first TPC corresponding to the first TP connection; wherein each TP connection is associated with a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0054] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; the above-mentioned queue management module is specifically used to: after receiving the second application request, obtain the idle TPQ, determine the first TPQ based on the required capacity and the storage capacity of each TPQ in the idle state, and return the identifier of the first TPQ to the processing module; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to the TPQ without an associated TP connection; the processing module is specifically used to: write the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0055] In one possible implementation, the queue management module is specifically used to: after receiving the second application request, create a first TPQ based on the required capacity of one or more task descriptors, and return the identifier of the first TPQ to the processing module, wherein the storage capacity of the first TPQ is greater than or equal to the required capacity; the processing module is specifically used to: write the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0056] In a sixth aspect, the present application provides a data processing apparatus, applied to a first computing device, comprising:

[0057] a receiving module, configured to receive a first message sent by a third computing device through a second TP connection, where the first message includes data to be written, and the second TP connection is one of the TP connections established between the first computing device and the third computing device;

[0058] a processing module, configured to determine whether the second TP connection is associated with the TPQ, and after determining that the second TPQ is not associated with the TPQ, send a third application request to the queue management module, where the third application request is used to apply for a TPQ from the queue management module;

[0059] a queue management module, configured to return an identifier of a third TPQ to the processing module after receiving the third application request; wherein the third TPQ is one of one or more TPQs created by the first computing device, or the third TPQ is created by the first computing device after determining that the second TP connection has no associated TPQ;

[0060] The processing module is also used to establish an association relationship between the second TP connection and the third TPQ, write the data to be written in the first message into the storage space, generate first completion information corresponding to the first message, and cache the first completion information to the third TPQ. The first completion information indicates that the data to be written has been written to the storage space.

[0061] In one possible implementation, the first computing device establishes N TP connections with other computing devices, and creates K TPQs for caching completion information, where K is less than N; the third TPQ belongs to the K TPQs; the queue management module is specifically used to: after receiving the third application request, select the third TPQ from the idle TPQs, and return the identifier of the third TPQ to the processing module; wherein the idle TPQ refers to the TPQ without an associated TP connection; the processing module is specifically used to: write the configuration information of the third TPQ into the second TPC corresponding to the second TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

[0062] In one possible implementation, the queue management module is specifically used to: create the third TPQ and return the identifier of the third TPQ to the processing module; the processing module is specifically used to: write the configuration information of the third TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity.

[0063] In the seventh aspect, the present application provides a chip, which includes a processing unit and a storage unit, the storage unit is used to store program instructions, and the processing unit is used to run the program instructions to implement the method described in the first aspect or any possible implementation of the first aspect; and / or, to implement the method described in the second aspect or any possible implementation of the second aspect; and / or, to implement the method described in the third aspect or any possible implementation of the third aspect.

[0064] In an eighth aspect, the present application provides a computing device comprising a processor, a memory, and a chip, wherein the memory is used to store instructions, the processor is used to execute the instructions to implement the business functions of the computing device, and the chip is used to implement the method described in the first aspect or any possible implementation of the first aspect; and / or, implement the method described in the second aspect or any possible implementation of the second aspect; and / or, implement the method described in the third aspect or any possible implementation of the third aspect.

[0065] In a ninth aspect, the present application provides a computer-readable storage medium comprising computer program instructions. When the computer program instructions are executed by a computing device, the computing device implements the method described in the first aspect or any possible implementation of the first aspect; and / or, implements the method described in the second aspect or any possible implementation of the second aspect; and / or, implements the method described in the third aspect or any possible implementation of the third aspect.

[0066] In a tenth aspect, the present application provides a computer program product, comprising a computer program, which, when executed by a computing device, implements the method described in the first aspect or any possible implementation of the first aspect; and / or, implements the method described in the second aspect or any possible implementation of the second aspect; and / or, implements the method described in the third aspect or any possible implementation of the third aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0067] Figure 1 This is a network architecture diagram provided by this application;

[0068] Figure 2 It is a flowchart of a data processing method provided by this application;

[0069] Figure 3 It is a flowchart of another data processing method provided by this application;

[0070] Figure 4 is a schematic diagram of a data processing device provided by the present application;

[0071] Figure 5 is a schematic diagram of a chip provided by this application;

[0072] Figure 6 It is a schematic diagram of a computing device provided by this application. DETAILED DESCRIPTION

[0073] The data processing method provided by this application is described below with reference to the accompanying drawings.

[0074] Unified Bus (UB) is a network protocol standard based on remote direct memory access (RDMA) technology. In a UB-based network, communication between different computing devices requires establishing a transport layer (TP) connection. To enable multipath transmission between two computing devices, multiple TP connections can be established between the two devices. These multiple TP connections are called a TP group (TPG).

[0075] The UB protocol defines a transaction layer and a transport layer. Two communicating computing devices have no connection at the transaction layer. When communication is required, a transport layer (TP) connection is established between the two computing devices. If process A on a first computing device needs to communicate with process B on a second computing device, for example, to send data to process B, process A sends a data transfer command to the transaction layer. The transaction layer converts the data transfer command into a transport layer task and then sends one or more task descriptors to the transport layer. The transport layer then completes the task of sending data to process B on the second computing device based on the one or more task descriptors.

[0076] A task descriptor is used to indicate a communication task between two computing devices. When one computing device needs to send data to another computing device, or when one computing device needs to read data from another computing device, the task descriptor includes information such as the address of the data to be transmitted between the two computing devices and the length of the data to be transmitted. For example, if a first computing device sends data to a second computing device, and the first computing device writes the data to be transmitted into the memory of the second computing device through a write operation, the task descriptor includes the source address of the data to be transmitted, the length of the data to be transmitted, and the destination address; wherein the source address indicates the storage location of the data to be transmitted in the first computing device, and the destination address indicates the location where the data to be transmitted is written into the memory of the second computing device. If the first computing device sends data to be transmitted to the second computing device through a send operation, the task descriptor includes the source address of the data to be transmitted and the length of the data to be transmitted.

[0077] For another example, if the first computing device reads the data to be transmitted from the second computing device, that is, the first computing device obtains the data to be transmitted from the second computing device through a read operation, then the task descriptor includes the source address of the data to be transmitted, the length of the data to be transmitted, and the destination address; wherein the source address indicates the storage location of the data to be transmitted in the second computing device, and the destination address indicates the location where the first computing device writes the data to be transmitted into the memory after obtaining the data to be transmitted.

[0078] A transport layer queue (TP queue, TPQ) is used to cache task descriptors. A TPQ ​​is a storage space, and each TPQ has a corresponding TPQ identifier, a starting address, and a storage capacity. The TPQ identifier uniquely represents a TPQ and can be a number; for example, a computing device creates M TPQs, numbered 1 to M. The starting address indicates the starting address of a TPQ in memory, and the storage capacity indicates the size of the storage space of a TPQ. In this application, the storage capacity of each TPQ can be the same, partially the same and partially different, or different, and this application does not impose specific restrictions.

[0079] It should be noted that the storage capacity of a TPQ can be expressed in terms of depth, which indicates the number of task descriptors a TPQ can store. Each task descriptor is of the same size, and the depths of multiple TPQs created by a computing device can be the same, partially the same, partially different, or completely different, which is not specifically limited in this application. In this application, the storage capacity of a TPQ is described in terms of depth.

[0080] Each TP connection is associated with a TP context (TPC). A TPC is a storage space used to record the status of the corresponding TP connection, such as whether the current TP connection is functioning properly. If a TP connection is associated with a TPQ, the TPC also records the configuration information of the TPQ associated with the TP connection, such as the TPQ's starting address and storage capacity. If each TPQ is associated with a TPQ identifier, the TPQ configuration information also includes the TPQ identifier.

[0081] In a network based on the unified bus (UB) protocol, one or more TP connections need to be established between two computing devices that communicate with each other. A computing device can communicate with multiple computing devices, so a computing device can establish TP connections with multiple computing devices, and each TP connection requires the creation of a corresponding TPQ. If a computing device establishes a large number of TP connections with other computing devices, the TPQ in the computing device will occupy a large amount of storage resources of the computing device. As the number of computing devices in the network increases, the number of TP connections will also increase, and the storage resources occupied by TPQ will also increase accordingly.

[0082] For example, if the network includes 10,000 computing devices, a TPG is established between any two computing devices, each TPG includes 8 TP connections, the size of a task descriptor is 64 bytes (byte, B), and a TPQ is set to store 256 task descriptors. Then the storage space occupied by the TPQ created in a computing device is: 64B×256×10000×8=1.22 gigabytes (GB).

[0083] In order to solve the above problems, the present application provides a queue sharing method, which constructs a shared TPQ resource pool. Each TPQ in the shared resource pool is not fixedly associated with a TP connection. When a computing device needs to communicate with other computing devices through a TP connection to complete a task, it applies for one or more TPQs for the TP connection, that is, associates the one or more TPQs with the TP. After the task is completed, the computing device can release the one or more TPQs to the shared pool so that other TP connections can use the one or more TPQs. After the communication task indicated by the task descriptor in the TPQ associated with a TP connection is executed, the TPQ associated with the TP connection is released, which can avoid the situation where a TP connection occupies TPQ resources when not executing a task, avoid the problem of TPQ occupying too many storage resources, and improve the utilization rate of storage resources.

[0084] like Figure 1 As shown, Figure 1 This is a network architecture diagram provided by this application. The data processing method provided by this application can be applied to Figure 1 The network architecture shown. Figure 1 The present invention includes multiple computing devices and multiple switching devices, and the network topology between the multiple computing devices and the switching devices is a fat-tree structure. The computing devices can be hosts, servers, blades in blade servers, etc. When the computing devices are servers, the switching devices can be switches. When the computing devices are blades in blade servers, the switching devices can be interconnect modules in the blade servers. This application does not impose specific limitations.

[0085] It should be noted that the above-mentioned network topology architecture is only an example. The method provided in this application can also be applied to network architectures with other topologies, including but not limited to traditional three-layer network topology, spine-leaf topology, butterfly topology, star topology, ring topology, etc. This application does not make specific limitations.

[0086] The data processing method provided by this application is introduced below. Figure 2 As shown, Figure 2 1 is a flow chart of a data processing method provided by the present application. The data processing method includes the following S201 to S207.

[0087] S201. The first computing device generates a data transmission command.

[0088] In this application, a first computing device can be any computing device in a network. N TP connections are established between the first computing device and other computing devices in the network. One or more TP connections are established between the first computing device and a second computing device. The first computing device and the second computing device exchange data via the one or more established TP connections. When the first computing device needs to exchange data with the second computing device, it generates a data transmission command.

[0089] Wherein, N is a positive integer greater than or equal to 2, and the data transmission command includes address information of the first data. The first data refers to the data that the data transmission command indicates needs to be transmitted between the first computing device and the second computing device. The first data can be data required by the second computing device stored in the first computing device, or data required by the first computing device stored in the second computing device. The address information of the first data includes an address and a length. If the first data is stored in a continuous storage space, the address information of the first data includes an address and a length. If the first data is not stored in a continuous storage space, the address information of the first data includes multiple addresses and multiple lengths, with one address corresponding to one length. In this application, an address and the length corresponding to the address are referred to as a set of addresses and lengths. A set of addresses and lengths indicates a segment of data stored in continuous addresses in the first data.

[0090] In this application, data transmission commands include the following three forms:

[0091] (1) The data transmission command is the send command

[0092] If the data transmission command is a send command, the data transmission command is used to instruct the first computing device to send data to the second computing device. The first data is stored in the first computing device, and the address in the address information includes a source address, which is used to indicate the storage location of the first data in the first host.

[0093] (2) The data transmission command is a write operation command

[0094] If the data transfer command is a write operation command, the data transfer command is used to instruct the first computing device to write data to the second computing device. The first data is stored on the first computing device, and the address in the address information includes a source address and a destination address. The source address indicates the storage location of the first data in the first computing device, and the destination address indicates the location where the first data is written to the memory of the second computing device.

[0095] (3) The data transmission command is a read operation command

[0096] If the data transfer command is a read operation command, that is, the data transfer command is used to instruct the first computing device to read data from the second computing device and transfer it to the first computing device. The first data is stored on the second computing device, and the address in the address information includes a source address and a destination address. The source address indicates the storage location of the first data on the second computing device, and the destination address indicates the location where the first computing device writes the first data after obtaining the first data.

[0097] In one possible implementation, one or more processes are running on both the first and second computing devices. Data is exchanged between the processes on the first and second computing devices via one or more TP connections between the first and second computing devices. The data transfer command is generated when a first process on the first computing device needs to exchange data with a second process on the second computing device. After generating the data transfer command, the first process sends it to the transaction layer.

[0098] S202. The first computing device generates one or more task descriptors according to the data transmission command.

[0099] The data transfer command includes address information of the first data, which may include multiple sets of addresses and lengths. Since a task descriptor is limited in size and can only carry a limited number of addresses and lengths, the first computing device divides the data transfer command into one or more task descriptors based on the size of a task descriptor and the size of each set of addresses and lengths. For example, if the size of the multiple sets of addresses and lengths included in the data transfer command is 1 megabyte (MB), but the size of a task descriptor is 4 kilobytes (KB), the first computing device generates 256 task descriptors based on the data transfer command.

[0100] Each task descriptor includes at least one set of addresses and lengths in a data transmission command. The data indicated by a set of addresses and lengths in the task descriptor is called data to be transmitted. For the convenience of description, a task descriptor including a set of addresses and lengths is taken as an example, that is, a task descriptor includes the address and length of the data to be transmitted.

[0101] If the data transmission command is a write operation command, the address of the data to be transmitted includes a source address and a destination address. The source address is used to indicate the storage location of the data to be transmitted in the first computing device, and the destination address is used to indicate the location where the data to be transmitted is written to the second computing device. If the data transmission command is a send command, the address of the data to be transmitted includes a source address, which indicates the storage location of the data to be transmitted in the first computing device. If the data transmission command is a read operation command, the address of the data to be transmitted includes a source address and a destination address. The source address is used to indicate the storage location of the data to be transmitted in the second computing device, and the destination address is used to indicate the location where the first computing device writes the data to be transmitted after obtaining the data to be transmitted.

[0102] In one possible implementation, multiple processes are running in a first computing device. To ensure that the multiple processes in the first computing device can interact with data in a timely manner with processes in other computing devices, for a first process in the first computing device, if the amount of data that the first process needs to transmit is large, the data that the first process needs to transmit is sliced, and the data that the first process needs to transmit is divided into multiple slices, and the data amount of each slice is less than a data amount threshold. After the first process completes the transmission of the data amount of one slice, the data transmission of the first process will be suspended until the other processes that currently need to transmit data also complete the transmission of the data amount of one slice, and then the data transmission corresponding to the first process will be executed.

[0103] For example, if only two TP links are established between the first computing device and the second computing device, but data needs to be transmitted between five pairs of processes between the first computing device and the second computing device, and the amount of first data that needs to be transmitted between the first process of the first computing device and the second process of the second computing device is greater than the data amount threshold, the first data will be divided into multiple slices. After the first process completes the data transmission corresponding to a slice through a TP connection, it will temporarily no longer use the TP connection for data transmission, and the first computing device will use the TP connection to transmit other data that needs to be transmitted.

[0104] In the present application, after generating a data transmission command, the above-mentioned first process sends the data transmission command to the transaction layer. The transaction layer performs the above-mentioned slicing operation and generates one or more task descriptors according to the data transmission command.

[0105] S203. The first computing device determines whether the communication task indicated by the one or more task descriptors is completed through the first TP connection, and determines whether the first TP connection is associated with the TPQ; if the first TP connection is not associated with the TPQ, execute S204; if the first TP connection is associated with the first TPQ, execute S205.

[0106] After obtaining the above-mentioned one or more task descriptors, the first computing device needs to cache the one or more task descriptors to one or more TPQs so that devices such as network cards can obtain task descriptors from TPQs and perform corresponding communication tasks according to the task descriptors. In the present application, each task descriptor also includes the IP address of the target computing device (i.e., the second computing device) and the process number of the target process (i.e., the second process). The first computing device first determines, based on the IP address in the task descriptor, that the task descriptor indicates a communication task between the first computing device and the second computing device. The first computing device determines one or more TP connections established with the second computing device, and then selects a TP connection from the one or more TP connections established between the first computing device and the second computing device to implement the communication task between the first process and the second process. The present application takes the first TP connection to implement the communication task between the first process and the second process as an example.

[0107] In this application, after the first computing device determines that the communication task between the first process and the second process is realized through the first TP connection, the first computing device obtains the first TPC corresponding to the first TP connection. If the first TPC records the configuration information of TPQ, it means that the first TP connection has been associated with TPQ; if the first TPC does not contain the configuration information of TPQ, it means that the first TP connection is not associated with TPQ.

[0108] S204. The first computing device establishes an association relationship between the first TP connection and the first TPQ, and caches the one or more task descriptors in the first TPQ.

[0109] In the present application, if the first TP connection is not associated with a TPQ, the first computing device can cache the one or more task descriptors to the TPQ in two ways. The two ways are respectively introduced below.

[0110] (1) When the first computing device establishes N TP connections with other computing devices, the first computing device creates M TPQs.

[0111] When a first computing device establishes N TP connections with another computing device, the first computing device creates M TPQs. Here, M is less than N. Each TPQ has a TPQ identifier, a starting address, and a depth. The depths of the M TPQs can be the same, partially the same, and partially different, or all different, and this application does not impose any specific limitations thereon.

[0112] If the first TP connection is not associated with a TPQ, the first computing device first obtains the TPQ that is currently in an idle state and the required capacity, wherein the idle TPQ refers to the TPQ that is not associated with a TP connection, and the required capacity is the size of the storage space required to cache the above-mentioned one or more task descriptors; then, based on the storage capacity and required capacity of each TPQ in the idle state, a TPQ with a storage capacity greater than or equal to the required capacity is determined, such as the first TPQ; then, the configuration information of the first TPQ is written into the first TPC; finally, the above-mentioned one or more task descriptors are cached in the first TPQ.

[0113] Optionally, if each TP connection can be associated with one or more TPQs. If the first TP connection is not associated with a TPQ, the first computing device selects one or more idle TPQs from the currently idle TPQs, where the storage capacity of the one or more idle TPQs is greater than or equal to the required capacity; then writes configuration information of the one or more idle TPQs into the first TPC; and then caches the one or more task descriptors in the one or more idle TPQs.

[0114] (2) When the first computing device establishes N TP connections with other computing devices, the first computing device does not create a TPQ

[0115] When the first computing device establishes N TP connections with other computing devices, the first computing device does not create a TPQ, but creates a shared TPQ pool in the memory. When the first TP connection needs to use the TPQ to cache the task descriptor, the first computing device first creates a new TPQ in the shared TPQ pool based on the required capacity of the above one or more task descriptors, for example, creates a first TPQ, the storage capacity of the first TPQ is greater than or equal to the above required capacity, and configures a TPQ identifier for the first TPQ; then writes the configuration information of the first TPQ into the first TPC; and then caches the above one or more task descriptors into the newly created first TPQ.

[0116] S205 . The first computing device caches one or more task descriptors in the first TPQ.

[0117] In this application, if the first TP connection is associated with a TPQ, the process of the first computing device caching one or more task descriptors into the TPQ includes the following two cases:

[0118] (1) The first TP connection is already associated with the first TPQ, and the storage capacity of the first TPQ is greater than or equal to the required capacity

[0119] If the first TP connection is already associated with a first TPQ, and the storage capacity of the first TPQ is greater than or equal to the required capacity, that is, the depth of the first TPQ is greater than or equal to the number of the one or more task descriptors, the first computing device caches the one or more task descriptors in the first TPQ according to the start address of the first TPQ recorded in the first TPC. The first TPQ belongs to the N TPQs.

[0120] Optionally, each TP connection can be associated with one or more TPQs. If the first TP connection is already associated with one or more TPQs, and the sum of the depths of these one or more TPQs is greater than or equal to the number of the one or more task descriptors, then these one or more task descriptors are cached in the TPQ associated with the first TP connection. The one or more TPQs associated with the first TP connection belong to the N TPQs.

[0121] (2) The storage capacity of the TPQ associated with the first TP connection is less than the required capacity

[0122] If the first TP connection already has an associated TPQ, for example, the first TP connection is currently associated with the second TPQ, but the storage capacity of the second TPQ is less than the above-mentioned required capacity, that is, the depth of the second TPQ is less than the number of the above-mentioned one or more task descriptors, then the first computing device can release the second TPQ, that is, cancel the association between the first TP connection and the second TPQ, and delete the configuration information of the second TPQ recorded in the first TPC, wherein the configuration information of the second TPQ includes the TPQ identifier, starting address and depth.

[0123] If the first computing device establishes N TP connections with other computing devices, and the first computing device creates M TPQs, the first computing device obtains the TPQ that is currently in an idle state and the required capacity; then, based on the storage capacity and required capacity of each TPQ in an idle state, determines a TPQ whose storage capacity is greater than or equal to the required capacity, such as the first TPQ; then writes the configuration information of the first TPQ into the first TPC; and finally, caches the above-mentioned one or more task descriptors into the first TPQ.

[0124] Optionally, if each TP connection can be associated with one or more TPQs. If the first TP connection already has an associated TPQ, but the sum of the depths of the TPQs associated with the first TP connection is less than the number of the one or more task descriptors, the first computing device can select one or more idle TPQs from the currently idle TPQs so that the sum of the depths of the TPQs associated with the first TP is greater than or equal to the number of the one or more task descriptors; then write configuration information of the one or more idle TPQs into the first TPC; and then cache the one or more task descriptors in the one or more TPQs associated with the first TP connection.

[0125] If the first computing device does not create a TPQ when establishing N TP connections with other computing devices, but creates a shared TPQ pool in the memory, the first computing device first creates a new TPQ in the shared TPQ pool based on the required capacity of the above one or more task descriptors, for example, creates a first TPQ, the storage capacity of the first TPQ is greater than or equal to the above required capacity, and configures a TPQ identifier for the first TPQ; then writes the configuration information of the first TPQ into the first TPC; and then caches the above one or more task descriptors into the newly created first TPQ.

[0126] It should be noted that the TPQs created by the first computing device include a transmit TPQ (TX TPQ) and a receive TPQ (RX TPQ). The N TPQs mentioned above refer to the TX TPQ, which is used to cache task descriptors, and the RX TPQ, which is used to cache completion information. The details about completion information are described later.

[0127] In this application, after the transaction layer performs a slicing operation and generates one or more task descriptors according to the data transmission command, it sends the generated one or more task descriptors to the transport layer, which then completes the operations described in S203-S205. It should be understood that both the transaction layer and the transport layer have corresponding hardware units for implementing the various functions of the transaction layer and the transport layer.

[0128] S206 . The first computing device executes the communication task between the first computing device and the second computing device according to the task descriptor in the TPQ.

[0129] After the first computing device caches one or more task descriptors in the TPQ, for example, in the first TPQ mentioned above, the first computing device executes the communication tasks corresponding to each task descriptor according to the one or more task descriptors cached in the first TPQ to complete the data interaction between the first process and the second process.

[0130] Since the above data transmission commands include three forms, the data interaction between the first process and the second process includes the following three situations:

[0131] (1) The data transmission command is the send command

[0132] If the data transmission command is a send command, each task descriptor includes the source address of the data to be transmitted, the length of the data to be transmitted, the address of the second computing device, the process number of the second process, etc. The network card of the first computing device reads the source address of the data to be transmitted and the length of the data to be transmitted from the first TPQ, obtains a copy of the data to be transmitted from the memory of the first computing device based on the source address and length of the data to be transmitted, and then generates one or more messages based on the data to be transmitted, the address of the second computing device, the process number of the second process, and other information, and then sends the message carrying the data to be transmitted to the second computing device. The network card of the first computing device reads the source address of the data to be transmitted and the length of the data to be transmitted from the first TPQ each time, and then generates one or more messages according to the above method and sends them to the second computing device until the communication tasks corresponding to the one or more task descriptors are completed.

[0133] It should be understood that if the length of the data to be transmitted is greater than the maximum transmission unit (MTU), the data to be transmitted is sent to the second computing device via multiple messages.

[0134] (2) The data transmission command is a write operation command

[0135] If the data transmission command is a write operation command, each task descriptor includes the source address of the data to be transmitted, the destination address of the data to be transmitted, the length of the data to be transmitted, the address of the second computing device, the process number of the second process, etc. The network card of the first computing device reads the source address, destination address, and length of the data to be transmitted from the first TPQ. Based on the source address and length of the data to be transmitted, the network card obtains a copy of the data to be transmitted from the memory of the first computing device. Then, based on the data to be transmitted, the destination address of the data to be transmitted, the address of the second computing device, and the process number of the second process, one or more messages are generated, and the messages carrying the data to be transmitted are sent to the second computing device. The network card of the first computing device reads the source address information, destination address information, and length of the data to be transmitted from the first TPQ each time, and then generates one or more messages according to the above method and sends them to the second computing device until the communication tasks corresponding to the one or more task descriptors are completed.

[0136] (3) The data transmission command is a read operation command

[0137] If the data transmission command is a read operation command, each task descriptor includes the source address of the data to be transmitted, the destination address of the data to be transmitted, the length of the data to be transmitted, the address of the second computing device, etc. The network card of the first computing device reads a task descriptor from the first TPQ, then generates a read request based on the source address of the data to be transmitted, the length of the data to be transmitted, the address of the second computing device, etc., and then sends the read request to the second computing device. The network card of the second computing device retrieves the data to be transmitted from the memory of the second computing device based on the source address and length of the data to be transmitted, then encapsulates the data to be transmitted into a message and sends it to the first computing device. After receiving the data to be transmitted, the first computing device writes the data to be transmitted to the location indicated by the destination address of the data to be transmitted.

[0138] S207. The first computing device determines that the task descriptor in the TPQ associated with the first TP connection is completed, and releases the TPQ associated with the first TP connection.

[0139] After the network interface card of the first computing device reads and executes all task descriptors from the first TPQ, the first computing device releases the first TPQ. This means that the association between the first TP connection and the first TPQ is disassociated, and the configuration information of the first TPQ recorded in the first TPC is deleted. If the first TP connection is associated with multiple TPQs, the configuration information of these multiple TPQs is deleted from the first TPC.

[0140] In one possible implementation, if a first computing device creates M TPQs when establishing N TP connections, the first computing device can obtain a first number of TPQs currently in an idle state at a first period. If the first number is less than a first threshold, the first computing device obtains TPQs currently associated with TP connections but without cached task descriptors, and releases any TPQs associated with TP connections but without cached task descriptors. For example, the first computing device polls the TPC corresponding to each TP connection. For any TPC, such as the first TPC described above, if the first TPC contains a TPQ identifier representing the first TPQ, the first computing device determines whether any task descriptors are cached in the first TPQ. If no task descriptors are cached in the first TPQ, the first computing device releases the first TPQ and deletes the configuration information of the first TPQ in the first TPC. If any task descriptors are cached in the first TPQ, the first TPQ is not released. If the first number is greater than or equal to the first threshold, even if there are TPQs currently associated with TP connections but without cached task descriptors, these TPQs do not need to be released.

[0141] If the first computing device does not create a TPQ when creating N TP connections, but instead creates a shared TPQ pool in memory, then when a TP connection requires the use of a TPQ to store task descriptors, the first computing device creates a new TPQ in the shared TPQ pool for caching the task descriptors based on the required capacity of the task descriptors to be cached. Once all communication tasks corresponding to the task descriptors in the TPQ associated with a TP connection have been executed, the first computing device releases the TPQ associated with the TP connection, releasing the space occupied by the TPQ associated with the TP connection to the shared TPQ pool. Alternatively, when the remaining storage space in the shared TPQ pool is less than a capacity threshold, the space occupied by the TPQ associated with the TP connection is released.

[0142] In one possible implementation, if there is no cached task descriptor in the TPQ associated with a TP connection, and the TPQ does not cache a new task descriptor within the first time period, the TPQ associated with the TP connection is released, that is, the configuration information of the TPQ in the TPC corresponding to the TP connection is deleted.

[0143] It should be noted that the above is an introduction to the communication process between the first process and the second process by taking the first TP connection as an example to realize the communication task between the first process and the second process. In the present application, the first process and the second process can also complete the above communication task through multiple TP connections established between the first computing device and the second computing device. If the first process and the second process complete the above communication task through multiple TP connections established between the first computing device and the second computing device, the first computing device generates multiple task descriptors according to the data transmission command, and caches these multiple task descriptors in the TPQ associated with the above multiple TP connections. The process of realizing the communication between the first process and the second process by each TP connection in the above multiple TP connections can refer to the above process of realizing the communication between the first process and the second process through the first TP connection, and will not be repeated here.

[0144] It should be understood that if the first TP connection is not associated with a TPQ and there is currently no available TPQ, or if the first TP connection is associated with a TPQ but the storage capacity of the associated TPQ is less than the required capacity and there is currently no available TPQ, then the first computing device will temporarily cache the one or more task descriptors in the storage space corresponding to the transaction memory, waiting to be sent down to the transport layer again. An available TPQ refers to a TPQ that is not associated with a TP connection and whose storage capacity is greater than or equal to the required capacity. For example, the transaction layer includes a queue for caching task descriptors that need to be sent down to the transport layer. If there is no available TPQ for one or more task descriptors that have been sent down to the transport layer, then the one or more task descriptors will be cached at the end of the queue, waiting to be resent to the transport layer again.

[0145] The above is an example of a first computing device sending a message carrying data to be transmitted to a second computing device or a first computing device sending a read request to a second computing device to introduce the data processing method based on a shared TPQ queue provided by this application. In this application, the first computing device can also receive data sent by other computing devices based on the shared TPQ. Figure 3 As shown, Figure 3 It is a flowchart of another data processing method provided by this application.

[0146] S301. The first computing device receives a first message sent by a third computing device through a second TP connection.

[0147] One or more TP connections are established between the first computing device and the third computing device. If a third process in the third computing device needs to send data to the first process in the first computing device, the third computing device can send multiple messages to the first computing device via the one or more TP connections. The one or more TP connections include a second TP connection. The method for the third process in the third computing device to send data to the first process in the first computing device can refer to the method for the first process in the first computing device to send first data to the second process in the second computing device described above, and is not further described here.

[0148] Because one or more TP connections are established between the first computing device and the third computing device, the third computing device can send multiple messages to the first computing device through these one or more TP connections. If the third computing device sends multiple messages to the first computing device through multiple TP connections, these multiple messages may arrive at the first computing device out of order.

[0149] S302. The first computing device determines whether the second TP connection is associated with the RX TPQ. If the second TP connection is associated with the RX TPQ, execute S303; if the second TP connection is not associated with the RX TPQ, execute S304.

[0150] In the present application, if the transport layer needs to report to the first process in an order-preserving manner after receiving multiple messages and writing the data to be written in the multiple messages into the corresponding storage space, then after receiving a message and writing the data to be written in the message into the corresponding storage space, the transport layer will generate completion information corresponding to the message. The completion information needs to be cached in the RXTPQ. Therefore, after the first computing device receives the message through the second TP connection, it needs to determine whether the second TP connection is associated with the RX TPQ. The completion information includes a first indication message indicating whether the data to be written has been written to the target storage space, and a second indication message used to indicate whether the order-preserving manner is required.

[0151] Sequence-preserving reporting means that the transport layer reports to the first process whether each message is successfully received according to the order in which the received messages are sent; successful reception means that the data in the message has been written into the corresponding storage space.

[0152] For example, the third process of the third computing device sends the first message, the second message and the third message to the first process of the first computing device in sequence, but the third computing device does not receive the first message, the second message and the third message in sequence. For example, the transport layer of the first computing device receives the third message, the first message and the second message in sequence. After successfully receiving the third message, the transport layer will not report to the first process that the third message has been successfully received. Instead, it will report to the first process that the third message has been successfully received only after successfully receiving and reporting the first message and successfully receiving and reporting the second message to the first process.

[0153] The first computing device receives a message sent by the third computing device through the second TP connection. The first computing device determines whether the second TP connection is associated with the TPQ based on information in the second TPC corresponding to the second TP connection. If the second TPC includes an identifier of the RX TPQ, it is determined that the second TPQ is associated with the RX TPQ; if the second TPC does not include the identifier of the RX TPQ, it is determined that the second TPQ is not associated with the RX TPQ.

[0154] S303. The first computing device writes the to-be-written data carried in the first message into the corresponding storage space, generates first completion information, and caches the completion information into the third TPQ.

[0155] The first computing device determines that the second TP connection is associated with the RX TPQ. The first computing device then parses the received first message to obtain the data to be written carried in the first message, writes the data to be written into the corresponding storage space, generates a first completion message corresponding to the first message, and caches the first completion message in a third TPQ associated with the second TP connection, where the third TPQ belongs to the RX TPQ. The first completion message is a first indication message indicating whether the data to be written in the first message has been written into the target storage space, and a second indication message indicating whether order-preserving reporting is required.

[0156] In the present application, the first indication information and the second indication information may each include one bit. For example, when a bit included in the first indication information is 1, it indicates that the data in the message has been successfully written into the storage space; when a bit included in the first indication information is 0, it indicates that the data in the message has failed to be written into the storage space. When a bit included in the second indication information is 1, it indicates that order-preserving reporting is required; when a bit included in the second indication information is 0, it indicates that order-preserving reporting is not required.

[0157] S304. The first computing device establishes an association relationship between the second TP connection and the third TPQ, writes the data to be written carried in the first message into the corresponding storage space, generates first completion information, and caches the completion information to the third TPQ.

[0158] In the present application, if the second TP connection is not associated with the RX TPQ, the first computing device can cache the first completion information to the RX TPQ in two ways. The two ways are respectively introduced below.

[0159] (1) When the first computing device establishes N TP connections with other computing devices, the first computing device creates K RXTPQs.

[0160] When a first computing device establishes N TP connections with other computing devices, it creates K RX TPQs for caching completion information. After receiving a message through a TP connection, if the TP connection has no associated RX TPQ, the first computing device first configures an idle RX TPQ for the TP connection and writes the configuration information of the RX TPQ into the TPC corresponding to the TP connection. The first computing device then parses the message to obtain the data to be written carried by the message, writes the data to be written into storage space, generates completion information corresponding to the message, and finally caches the completion information corresponding to the message into the RX TPQ. An idle RX TPQ refers to an RX TPQ that has no cached completion information and is not associated with a TP connection. If there is no idle RX TPQ, the message is discarded.

[0161] Exemplarily, the first computing device receives a first message sent by a third computing device through a second TP connection. After determining that the second TP connection is not associated with an RX TPQ, the first computing device selects an idle third TPQ from the idle TPQs, and writes the configuration information of the third TPQ into the second TPC corresponding to the second TP connection; then, the first message is parsed to obtain the data to be written and writes it into the storage space, generating first completion information corresponding to the first message, and finally, the first completion information is cached to the third TPQ.

[0162] (2) When the first computing device establishes N TP connections with other computing devices, the first computing device does not create a TPQ

[0163] If the first computing device does not create an RX TPQ when establishing N TP connections, but instead creates a shared TPQ pool in memory, then when a TP connection requires the RX TPQ to cache completion information, the first computing device creates a new RX TPQ in the shared TPQ pool to cache the completion information. For example, the first computing device creates an RX TPQ and configures a TPQ identifier for the RX TPQ; then writes the RX TPQ configuration information to the TPC corresponding to the TP connection; then parses the message to obtain the data to be written carried by the message, writes the data to be written to storage space, generates completion information corresponding to the message, and finally caches the completion information corresponding to the message in the RX TPQ.

[0164] For example, the first computing device receives the first message through the second TP connection. After determining that the second TP connection is not associated with an RX TPQ, the first computing device creates a third TPQ in the shared TPQ pool and writes the configuration information of the third TPQ into the second TPC corresponding to the second TP connection. The first computing device then parses the first message to obtain the data to be written and writes it into the storage space, generates the first completion information corresponding to the first message, and finally caches the first completion information to the third TPQ.

[0165] In the present application, if a first computing device creates K RX TPQs for caching completion information when establishing N TP connections, the first computing device can obtain a second number of RX TPQs currently in an idle state in a second cycle. If the second number is less than a second threshold, the first computing device obtains RX TPQs that are currently associated with TP connections but do not have cached completion information, and releases the RX TPQs that are associated with TP connections but do not have cached completion information. If completion information is cached in the RX TPQ, the RX TPQ is not released. If the second number is greater than or equal to the second threshold, even if there are RX TPQs currently associated with TP connections but do not have cached completion information, these RX TPQs do not need to be released.

[0166] If the first computing device does not create an RX TPQ when establishing N TP connections, but instead creates a shared TPQ pool in memory, then when a TP connection needs to use the RX TPQ to cache completion information, the first computing device creates a new RX TPQ in the shared TPQ pool to cache the completion information. After the completion information in the RX TPQ associated with a TP connection is processed, the first computing device releases the RX TPQ associated with the TP connection, freeing the space occupied by the RX TPQ associated with the TP connection to the shared TPQ pool.

[0167] In the present application, when the transport layer needs to report in order, it will query whether there is corresponding completion information in the RX TPQ according to the order in which the messages are sent. If there is, it will report to the first process that it has been successfully received. For example, the third process of the third computing device sends the first message, the second message, and the third message to the first process of the first computing device in sequence, but the third computing device does not receive the first message, the second message, and the third message in sequence. For example, the transport layer of the first computing device receives the third message, the first message, and the second message in sequence. After successfully receiving the third message and generating the third completion information, the transport layer will not report to the first process that the third message has been successfully received, but will cache the third completion information in the third TPQ. After successfully receiving the first message and generating the first completion information, the first completion information is cached in the third TPQ. After successfully receiving the second message and generating the second completion information, the second completion information is cached in the third TPQ.

[0168] When the transport layer of the first computing device reports in order, it queries the third TPQ for the first completion information corresponding to the first message according to the message sending order. If there is no first completion information in the third TPQ but there is third completion information, the transport layer will not report to the first process that the third message is successfully received until the first completion information corresponding to the first message is queried. The transport layer reports to the first process that the first message is successfully received; then it queries the third TPQ for the second completion information corresponding to the second message. If there is no second completion information in the third TPQ but there is third completion information, the transport layer will not report to the first process that the third message is successfully received until the second completion information corresponding to the second message is queried. The transport layer reports to the first process that the second message is successfully received; then it queries the third TPQ for the third completion information corresponding to the third message. If there is third completion information in the third TPQ, the transport layer reports to the first process that the third message is successfully received.

[0169] For the above method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should know that the present invention is not limited by the order of the actions described. Secondly, those skilled in the art should also know that the embodiments described in the specification are all preferred embodiments, and the actions involved are not necessarily required by the present invention. Based on the above description, those skilled in the art can think of other reasonable step combinations, which also fall within the scope of protection of the present invention.

[0170] The present application also provides a data processing device, such as Figure 4 As shown, Figure 4 This is a schematic diagram of a data processing device provided by this application. The data processing device 400 is used to implement the above Figure 2 or Figure 3The method in the method embodiment shown is used to implement the method implemented by the first computing device mentioned above. The data processing device 400 includes an acquisition module 410 , a processing module 420 and a queue management module 430 .

[0171] Acquisition module 410 is configured to acquire one or more task descriptors, each of which includes address information of data to be transmitted, where the data to be transmitted is data to be transmitted from the first computing device to the second computing device. For an introduction to task descriptors, see the description of S201 and S202 in the above method embodiment, and will not be repeated here.

[0172] Processing module 420 is configured to determine whether a first TP connection is associated with a transport layer queue (TPQ). The first TP connection is one of the TP connections established between the first computing device and the second computing device. If the processing module determines that the first TP connection is not associated with a TPQ, it sends a first application request to the queue management module. The first application request is used to apply for a TPQ from the queue management module. The method for processing module 420 to determine whether the first TP connection is associated with a transport layer queue (TPQ) is described in S203 above and is not further described here.

[0173] After receiving the first application request, queue management module 430 is configured to return an identifier of a first TPQ to the processing module. The first TPQ is one of one or more TPQs already created by the queue management module, or is a TPQ created by the queue management module based on a required capacity, where the required capacity is the capacity required to cache one or more task descriptors. The method by which queue management module 430 selects or creates the first TPQ is described in S204 and S205 above and is not further elaborated here.

[0174] The processing module 420 is further configured to establish an association relationship between the first TP connection and the first TPQ, and cache one or more task descriptors in the first TPQ.

[0175] In one possible implementation, the processing module 420 is further configured to determine whether the first TP connection is associated with a second TPQ and obtain the storage capacity of the second TPQ; determine that the storage capacity of the second TPQ is less than the required capacity, and send a second application request to the queue management module 430, where the second application request is used to apply for a TPQ from the queue management module; and return the identifier of the first TPQ to the processing module. The storage capacity of the first TPQ is greater than or equal to the required capacity, and an idle TPQ refers to a TPQ that is not associated with a TP connection. The method for selecting or creating the first TPQ by the queue management module 430 is described in S204 and S205 above and is not further described here.

[0176] In one possible implementation, a first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N. The first TPQ and the second TPQ belong to the M TPQs. After receiving the first application request or the second application request, the queue management module 430 obtains an idle TPQ, determines a first TPQ based on the required capacity and the storage capacity of each idle TPQ, and returns the identifier of the first TPQ to the processing module. The storage capacity of the first TPQ is greater than or equal to the required capacity, and an idle TPQ refers to a TPQ with no associated TP connection. The processing module 420 writes the configuration information of the first TPQ into a first TPC corresponding to the first TP connection. Each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection. The configuration information includes the starting address and storage capacity of the TPQ.

[0177] In one possible implementation, after receiving the first application request or the second application request, the queue management module 430 creates a first TPQ based on the required capacity of one or more task descriptors, and returns the identifier of the first TPQ to the processing module, wherein the storage capacity of the first TPQ is greater than or equal to the required capacity; the processing module 420 writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection.

[0178] In one possible implementation, after caching one or more task descriptors in the first TPQ, processing module 420, upon the first computing device determining that no task descriptors are present in the first TPQ, releases the first TPQ. This means that the configuration information of the first TPQ recorded in the first TPC is deleted, thereby disassociating the first TPQ from the first TP. The method for releasing the first TPQ by processing module 420 is described in S207 above and is not further described here.

[0179] The above describes the operation process of the data processing device 400 for implementing the first computing device to send data. When the data processing device 400 implements sending data, the operations implemented by each module can refer to the above Figure 2 The relevant introduction in the method embodiment shown is not repeated here.

[0180] The above-mentioned data processing device 400 can also be used to implement the operation of the first computing device receiving data. When the data processing device 400 is used to implement the reception of data, the data processing device 400 also includes a receiving module 440. The receiving module 440 is used to receive a first message sent by a third computing device through a second TP connection. The first message includes data to be written. The second TP connection is one of the TP connections established between the first computing device and the third computing device.

[0181] The processing module 420 is configured to determine whether the second TP connection is associated with a TPQ. After determining that the second TPQ is not associated with a TPQ, the processing module 420 sends a third application request to the queue management module 430. The third application request is configured to apply to the queue management module for an RX TPQ for caching completion information.

[0182] Upon receiving the third application request, queue management module 430 is configured to return an identifier of a third TPQ to processing module 420. The third TPQ is one of one or more TPQs already created by the first computing device, or is created by the first computing device after determining that no TPQ is associated with the second TP connection. Processing module 420 is further configured to establish an association between the second TP connection and the third TPQ, write the to-be-written data in the first message into the storage space, generate first completion information corresponding to the first message, and cache the first completion information in the third TPQ. The first completion information indicates that the to-be-written data in the first message has been written into the storage space.

[0183] In one possible implementation, the first computing device establishes N TP connections with other computing devices and creates K TPQs for caching completion information, where K is less than N. The third TPQ belongs to the K TPQs. Upon receiving the third application request, the queue management module 430 selects the third TPQ from the idle TPQs and returns the identifier of the third TPQ to the processing module. The processing module 420 writes the configuration information of the third TPQ into the second TPC corresponding to the second TP connection.

[0184] In one possible implementation, after receiving the third application request, the queue management module 430 creates a third TPQ and returns the identifier of the third TPQ to the processing module; the processing module 420 is specifically configured to write the configuration information of the third TPQ into the first TPC corresponding to the first TP connection.

[0185] When the data processing device 400 receives data, the operations implemented by each module can refer to the above Figure 3 The relevant introduction in the method embodiment shown is not repeated here.

[0186] It should be understood that Figure 4 This is only an exemplary division method of the data processing device 400. In actual applications, the data processing device 400 may also have other division methods, which are not specifically limited in this application.

[0187] The present application also provides a chip, such as Figure 5 As shown, Figure 5The chip 500 includes a processing unit 510 and a storage unit 520. The storage unit 520 is used to store program instructions, and the processing unit 510 is used to execute program instructions to implement the above-mentioned Figure 2 or Figure 3 The processing unit 510 includes the method described in the corresponding method implementation. Figure 4 The data processing device 400 is shown.

[0188] The present application also provides a computing device, such as Figure 6 As shown, Figure 6 6 is a schematic diagram of a computing device provided herein. Computing device 600 includes a bus 602, a processor 604, a memory 606, a communication interface 608, and a chip 610. Processor 604, memory 606, and communication interface 608 communicate with each other via bus 602. It should be understood that this application does not limit the number of processors and memories in computing device 600.

[0189] The bus 602 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Figure 6 The bus 602 may include a path for transmitting information between various components of the computing device 600 (eg, memory 606, processor 604, communication interface 608, and chip 610).

[0190] The processor 604 may be a central processing unit (CPU), or may include a CPU and other hardware chips. The hardware chips may be of various types. For example, the processor 604 may be a co-processing unit including a graphics processing unit (GPU), a tensor processing unit (TPU), a programmable logic device (PLD), a complex programmable logic device (CPLD), a field programmable gate array (FPGA), or a digital signal processor (DSP). The computing device 600 may include one or more hardware chips of any of the above types, or may include multiple types of the above hardware chips. This application does not impose any specific restrictions.

[0191] Memory 606 may include volatile memory, such as random access memory (RAM). Memory 606 may also include non-volatile memory, such as read-only memory (ROM), flash memory, a hard disk drive (HDD), or a solid state drive (SSD). Executable program instructions and data are stored in memory 606, and processor 604 executes the executable program code to implement the business functions of the computing device.

[0192] Chip 610 is the above Figure 5 The chip 500 shown in FIG. 6 includes a processing unit and a storage unit. The storage unit is used to store program instructions, and the processing unit is used to execute program instructions to implement the above-mentioned Figure 2 or Figure 3 The methods described in the corresponding method implementation will not be repeated here.

[0193] The communication interface 608 can be a wired interface or a wireless interface, and is used to communicate with other modules or devices. For example, it can receive the aforementioned traceability request, receive configuration information entered by the user through the configuration interface, etc. The wired interface can be an Ethernet interface, a local interconnect network (LIN), etc., and the wireless interface can be a cellular network interface or a wireless local area network interface.

[0194] The present application also provides a computer program product comprising instructions. The computer program product may be a software or program product comprising instructions that can be run on a computing device or stored in any available medium. When the computer program product is run on a computing device, the computing device is enabled to implement Figure 2 or Figure 3 The data processing method in the embodiment shown.

[0195] The present application also provides a computer-readable storage medium. The computer-readable storage medium can be any available medium that can be stored by a computing device or a data storage device such as a data center that contains one or more available media. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium, or a semiconductor medium (e.g., a solid-state drive). The computer-readable storage medium includes instructions that instruct the computing device to implement Figure 2 or Figure 3 The data processing method in the embodiment shown.

[0196] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the protection scope of the technical solutions of the various embodiments of the present invention.

Claims

1. A data processing method, characterized in that: Applied to a network including multiple computing devices, one or more transport layer (TP) connections are established between any two of the multiple computing devices, the TP connections being used for communication between the two computing devices; the method comprising: The first computing device determines that a first TP connection is not associated with a transport layer queue TPQ, and establishes an association relationship between the first TP connection and the first TPQ; wherein the first TP connection is one of the TP connections established between the first computing device and the second computing device, and the first computing device and the second computing device belong to the multiple computing devices; the first TPQ is one of one or more TPQs created by the first computing device, or the first TPQ is a TPQ created by the first computing device based on required capacity, where the required capacity is the capacity required by the first computing device to cache one or more task descriptors, each task descriptor including address information of data to be transmitted, and the data to be transmitted is data to be transmitted by the first computing device to the second computing device; The first computing device caches the one or more task descriptors to the first TPQ.

2. The method according to claim 1, characterized in that The method further comprises: The first computing device determines that the first TP connection is associated with a second TPQ, and obtains a storage capacity of the second TPQ; The first computing device determines that the storage capacity of the second TPQ is less than the required capacity, The first computing device establishes an association relationship between the first TP connection and the first TPQ, and caches the one or more task descriptors in the first TPQ.

3. The method according to claim 2, characterized in that Before the first computing device establishes an association relationship between the first TP connection and the first TPQ, the method further includes: The first computing device deletes the configuration information of the second TPQ recorded in the first transport layer context TPC corresponding to the first TP connection; wherein, each TP connection is associated with a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

4. The method according to any one of claims 1 to 3, characterized in that The first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; The establishing an association relationship between the first TP connection and the first TPQ includes: The first computing device obtains an idle TPQ and determines the first TPQ according to the required capacity and the storage capacity of each idle TPQ; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to a TPQ with no associated TP connection; The first computing device writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

5. The method according to any one of claims 1 to 3, characterized in that The establishing an association relationship between the first TP connection and the first TPQ includes: The first computing device creates the first TPQ based on the required capacity of the one or more task descriptors, and writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes a starting address and storage capacity.

6. The method according to claim 4 or 5, characterized in that After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ, and deletes the configuration information of the first TPQ recorded in the first TPC.

7. The method according to claim 4 or 5, characterized in that After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ and a first number of TPQs currently in an idle state is less than a first threshold, and deletes the configuration information of the first TPQ recorded in the first TPC.

8. The method according to claim 4 or 5, characterized in that After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ and no new task descriptor is cached in the first TPQ within a first time period, and deletes the configuration information of the first TPQ recorded in the first TPC.

9. A data processing method, characterized in that: Applied to a network including multiple computing devices, one or more transport layer (TP) connections are established between any two of the multiple computing devices, the TP connections being used for communication between the two computing devices; the method comprising: The first computing device determines that the first TP connection is associated with a second transport layer queue TPQ, and obtains a storage capacity of the second TPQ, wherein the first TP connection is one of TP connections established between the first computing device and a second computing device, and the first computing device and the second computing device belong to the plurality of computing devices; The first computing device determines that the storage capacity of the second TPQ is less than the required capacity, and establishes an association relationship between the first TP connection and the first TPQ; wherein the first TPQ is one of one or more TPQs created by the first computing device, or the first TPQ is a TPQ created by the first computing device according to the required capacity, the required capacity is the capacity required by the first computing device to cache one or more task descriptors, each task descriptor includes address information of data to be transmitted, and the data to be transmitted is data to be transmitted by the first computing device to the second computing device; The first computing device caches the one or more task descriptors to the first TPQ.

10. The method according to claim 9, characterized in that The first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; The establishing an association relationship between the first TP connection and the first TPQ includes: The first computing device obtains an idle TPQ and determines the first TPQ according to the required capacity and the storage capacity of each idle TPQ; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to a TPQ with no associated TP connection; The first computing device writes the configuration information of the first TPQ into the first transport layer context TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes a starting address and storage capacity.

11. The method according to claim 9, characterized in that The establishing an association relationship between the first TP connection and the first TPQ includes: The first computing device creates the first TPQ based on the required capacity of the one or more task descriptors, and writes the configuration information of the first TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes a starting address and storage capacity.

12. The method according to claim 10 or 11, characterized in that Before establishing the association relationship between the first TP connection and the first TPQ, the method further includes: The first computing device deletes the configuration information of the second TPQ recorded in the first TPC.

13. The method according to any one of claims 9 to 12, characterized in that: After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ, and deletes the configuration information of the first TPQ recorded in the first TPC.

14. The method according to any one of claims 9 to 12, characterized in that: After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ and the first number of TPQs currently in an idle state is less than a first threshold, and deletes the configuration information of the first TPQ recorded in the first TPC; wherein the idle TPQ refers to a TPQ without an associated TP connection.

15. The method according to any one of claims 9 to 12, characterized in that: After the first computing device caches the one or more task descriptors in the first TPQ, the method further includes: The first computing device determines that there is no task descriptor in the first TPQ and no new task descriptor is cached in the first TPQ within a first time period, and deletes the configuration information of the first TPQ recorded in the first TPC.

16. A data processing method, characterized in that: Applied to a network including multiple computing devices, one or more transport layer (TP) connections are established between any two of the multiple computing devices, the TP connections being used for communication between the two computing devices; the method comprising: The first computing device receives a first message sent by a third computing device through a second TP connection, where the first message includes data to be written, and the second TP connection is one of the TP connections established between the first computing device and the third computing device; The first computing device determines that the second TP connection is not associated with a TPQ, and establishes an association relationship between the second TP connection and a third TPQ, wherein the third TPQ is one of one or more TPQs created by the first computing device, or the third TPQ is created by the first computing device after determining that the second TP connection is not associated with a TPQ; The first computing device writes the data to be written into a storage space and generates first completion information corresponding to the first message, wherein the first completion information indicates that the data to be written has been written into the storage space; The first computing device caches the first completion information in the third TPQ.

17. The method according to claim 16, characterized in that The first computing device establishes N TP connections with other computing devices and creates K TPQs for caching completion information, where K is less than N; the third TPQ belongs to the K TPQs; The establishing an association relationship between the second TP connection and the third TPQ includes: The first computing device selects the third TPQ from TPQs in an idle state, wherein the TPQ in the idle state refers to a TPQ with no associated TP connection; The configuration information of the third TPQ is written into the second TPC corresponding to the second TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

18. The method according to claim 16, characterized in that The establishing an association relationship between the second TP connection and the third TPQ includes: The first computing device creates the third TPQ and writes the configuration information of the third TPQ into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes a starting address and storage capacity.

19. A data processing device, characterized in that: Applied to a first computing device, comprising: a processing module, configured to determine that the first TP connection is not associated with a transport layer queue TPQ, and send a first application request to a queue management module, where the first application request is used to apply for a TPQ from the queue management module, wherein the first TP connection is one of the TP connections established between the first computing device and the second computing device; The queue management module is configured to return an identifier of a first TPQ to the processing module after receiving the first application request; wherein the first TPQ is one of one or more TPQs created by the queue management module, or the first TPQ is a TPQ created by the queue management module based on a required capacity, wherein the required capacity is a capacity required by the first computing device to cache one or more task descriptors, each task descriptor including address information of data to be transmitted, and the data to be transmitted is data to be transmitted by the first computing device to the second computing device; The processing module is further configured to establish an association relationship between the first TP connection and a first TPQ, and cache the one or more task descriptors in the first TPQ.

20. The device according to claim 19, characterized in that The processing module is further configured to: determine that the first TP connection is associated with a second TPQ, and obtain a storage capacity of the second TPQ; determining that the storage capacity of the second TPQ is less than the required capacity, and sending a second application request to the queue management module, where the second application request is used to apply for a TPQ from the queue management module; The queue management module is configured to return the identifier of the first TPQ to the processing module; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to a TPQ with no associated TP connection; The processing module is further configured to establish an association between the first TP connection and the first TPQ, and cache the one or more task descriptors in the first TPQ.

21. The device according to claim 20, characterized in that The processing module is further configured to: Delete the configuration information of the second TPQ recorded in the first transport layer context TPC corresponding to the first TP connection; wherein, each TP connection is associated with a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

22. The device according to any one of claims 19 to 21, characterized in that The first computing device establishes N TP connections with other computing devices and creates M TPQs, where M is less than N; the first TPQ and the second TPQ belong to the M TPQs; The queue management module is specifically used for: Obtaining an idle TPQ, determining a first TPQ based on the required capacity and the storage capacity of each idle TPQ, and returning an identifier of the first TPQ to the processing module; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity, and the idle TPQ refers to a TPQ with no associated TP connection; The processing module is specifically used for: The configuration information of the first TPQ is written into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

23. The device according to any one of claims 19 to 21, characterized in that The queue management module is specifically used for: creating the first TPQ according to the required capacity of the one or more task descriptors, and returning an identifier of the first TPQ to the processing module, wherein the storage capacity of the first TPQ is greater than or equal to the required capacity; The processing module is specifically used for: The configuration information of the first TPQ is written into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

24. A data processing device, characterized in that: Applied to a first computing device, comprising: a processing module, configured to determine that the first TP connection is associated with a second transport layer queue TPQ, and obtain a storage capacity of the second TPQ, wherein the first TP connection is one of the TP connections established between the first computing device and the second computing device; determining that the storage capacity of the second TPQ is less than the required capacity, and sending a second application request to the queue management module, where the second application request is used to apply for a TPQ from the queue management module, wherein the required capacity is the capacity required by the first computing device to cache one or more task descriptors, each task descriptor including address information of data to be transmitted, and the data to be transmitted is data to be transmitted by the first computing device to the second computing device; The queue management module is configured to return the identifier of the first TPQ to the processing module; wherein the storage capacity of the first TPQ is greater than or equal to the required capacity; The processing module is further configured to establish an association relationship between the first TP connection and the first TPQ, and cache the one or more task descriptors in the first TPQ.

25. A data processing device, characterized in that: Applied to a first computing device, comprising: a receiving module, configured to receive a first message sent by a third computing device through a second TP connection, where the first message includes data to be written, and the second TP connection is one of the TP connections established between the first computing device and the third computing device; a processing module, configured to, after determining that the second TP connection is not associated with a TPQ, send a third application request to the queue management module, where the third application request is used to apply for a TPQ from the queue management module; the queue management module is configured to return an identifier of a third TPQ to the processing module after receiving the third application request; wherein the third TPQ is one of one or more TPQs created by the first computing device, or the third TPQ is created by the first computing device after determining that the second TP connection has no associated TPQ; The processing module is further configured to establish an association relationship between the second TP connection and the third TPQ, write the data to be written into a storage space, and generate first completion information corresponding to the first message, wherein the first completion information indicates that the data to be written has been written into the storage space; The first completion information is cached in the third TPQ.

26. The device according to claim 25, characterized in that The first computing device establishes N TP connections with other computing devices and creates K TPQs for caching completion information, where K is less than N; the third TPQ belongs to the K TPQs; The queue management module is specifically used for: Selecting the third TPQ from the TPQs in the idle state, and returning the identifier of the third TPQ to the processing module; wherein the TPQ in the idle state refers to a TPQ that has no associated TP connection; The processing module is specifically used for: The configuration information of the third TPQ is written into the second TPC corresponding to the second TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes the starting address and storage capacity of the TPQ.

27. The device according to claim 25, characterized in that The queue management module is specifically used for: creating the third TPQ, and returning the identifier of the third TPQ to the processing module; The processing module is specifically used for: The configuration information of the third TPQ is written into the first TPC corresponding to the first TP connection; wherein each TP connection corresponds to a TPC, and the TPC is used to record the configuration information of the TPQ associated with the corresponding TP connection, and the configuration information includes a starting address and a storage capacity.

28. A chip, characterized in that: The chip includes a processing unit and a storage unit, the storage unit is used to store program instructions, and the processing unit is used to run the program instructions to implement the method according to any one of claims 1 to 8; and / or, to implement the method according to any one of claims 9 to 15; and / or, to implement the method according to any one of claims 16 to 18.

29. A computing device, characterized in that The device comprises a processor, a memory, and a chip, wherein the memory is used to store instructions, the processor is used to execute the instructions stored in the memory to implement the business functions of the computing device, and the chip is used to implement the method according to any one of claims 1 to 8; And / or, implement the method according to any one of claims 9 to 15; and / or, implement the method according to any one of claims 16 to 18.

30. A computer-readable storage medium, characterized in that The method comprises computer program instructions, which, when executed by a computing device, cause the computing device to perform the method according to any one of claims 1 to 8; and / or cause the computing device to perform the method according to any one of claims 9 to 15; and / or cause the computing device to perform the method according to any one of claims 16 to 18.

Citation Information

Patent Citations

  • Method for processing retransmission data and base station

    CN102790668A

  • Method for processing messages and computing equipment

    CN105871739A

  • Systems and method for single queue multi-stream traffic shaping

    CN107181698A

  • Method and device for reducing RDMA network overhead based on connection management

    CN115865830A

  • Data processing method and device, electronic equipment and storage medium

    CN116074367A