Communication system, communication method and device
By using priority identification in the communication system to adjust the processing order of sub-flows in co-flow, the problem of low resource usage efficiency in co-flow services is solved, and more efficient resource utilization and processing time difference reduction is achieved.
Patent Information
- Application Number
- CN202311863142.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-29
- Publication Date
- 2025-07-01
AI Technical Summary
When executing co-streaming services, how to improve resource usage efficiency, especially in the processing of multiple substreams in co-streaming, there are problems of resource occupancy and processing time difference.
By introducing priority identification in the communication system, the sending node carries the priority identification when sending substreams to the receiving node. The receiving node processes the substream according to the priority identification, thereby prioritizing the processing of high-priority substreams or post-pressing processing of low-priority substreams, reducing the time difference between different receiving nodes completing processing substreams.
The time difference between different receiving nodes completing processing substreams is effectively reduced, the efficiency of resource utilization is improved, and the co-flow service improves the resource scheduling efficiency of the receiving node without increasing the co-flow completion time.
Smart Images

Figure CN120238508A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communications, and in particular, to a communication system, a communication method, and a device Background Art
[0002] A coflow refers to a set of data flows with a collaborative relationship. In a coflow, each independent data flow is called a subflow of the coflow. The coflow completion time (CCT) depends on the latest completion time of each subflow therein
[0003] Compared with the transmission process of a single data flow, since a coflow includes multiple mutually collaborative subflows, the transmission process of the coflow is more complex and occupies more resources. Therefore, when performing coflow services, how to improve the resource utilization efficiency is a problem that needs to be solved currently Summary of the Invention
[0004] This application provides a communication system, a communication method, and a device for improving the resource utilization efficiency during the execution of coflow services
[0005] In a first aspect, a communication system is provided. The communication system includes a sending node, a first receiving node, and a second receiving node. Among them: The sending node is configured to send a first subflow to the first receiving node, and the first subflow includes a first priority identifier. The sending node is further configured to send a second subflow to the second receiving node, and the second subflow includes a second priority identifier. Wherein, the first subflow and the second subflow belong to the same coflow. The first receiving node is configured to preferentially process the first subflow according to the first priority corresponding to the first priority identifier. The second receiving node is configured to delay processing the second subflow according to the second priority corresponding to the second priority identifier. So that the time difference between the first receiving end completing the processing of the first subflow and the second receiving end completing the processing of the second subflow satisfies: less than the time difference between the first receiving node and the second receiving node completing the processing of the first subflow and the second subflow according to the first priority, and less than at least one of the time differences between the first receiving node and the second receiving node completing the processing of the first subflow and the second subflow according to the second priority
[0006] In the above method of the present application, when the sending node sends sub-streams to each receiving node, a priority identifier can be carried in the sub-streams. Furthermore, the receiving node can process the sub-streams according to the priority corresponding to the priority identifier. On the one hand, some receiving nodes can process the sub-streams preferentially according to a higher priority (i.e., the first receiving node processes the sub-streams preferentially according to the first priority corresponding to the first priority identifier); on the other hand, some other receiving nodes can process the sub-streams at a later time according to a lower priority (i.e., the second receiving node processes the sub-streams at a later time according to the second priority corresponding to the second priority identifier). Thus, the time difference between the first receiving node completing the processing of the first sub-stream and the second receiving node completing the processing of the second sub-stream satisfies: being less than at least one of the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the first priority, and being less than the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the second priority. In this way, compared with the first receiving node and the second receiving node processing the sub-streams according to the same priority, the above method of the present application can reduce the time difference between different receiving nodes completing the processing of the sub-streams, thereby improving the resource utilization efficiency of the receiving nodes.
[0007] In one implementation, the above communication system is a distributed storage system, where the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
[0008] In the above implementation, considering that: in a distributed storage system, the co-streaming method can be adopted to store data in multiple storage nodes in the distributed storage system. For example, when storing data in a multi-copy manner, the co-streaming method can be adopted to send multiple data copies to different storage nodes for storage respectively. For another example, when storing data in an erasure codes (EC) manner, the co-streaming method can be adopted to send the data blocks and parity blocks in the EC code blocks to different storage nodes for storage respectively. Therefore, when the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system, it can enable the distributed storage system to reduce the time difference between the first receiving node and the second receiving node storing data when storing data in the storage nodes including the first receiving node and the second receiving node according to the co-streaming method, thereby improving the resource utilization efficiency of the storage nodes.
[0009] In one implementation, the above-mentioned distributed storage system includes hard disks. Each hard disk includes a network card, a processor, and a storage medium. The first receiving node and / or the second receiving node is a hard disk in the distributed storage system. When the first receiving node is the first hard disk in the distributed storage system, the network card in the first hard disk is used to receive the first sub-stream, the processor in the first hard disk is used to preferentially process the first sub-stream according to the first priority identifier, and the storage medium in the first hard disk is used to store the data in the first sub-stream. When the second receiving node is the second hard disk in the distributed storage system, the network card in the second hard disk is used to receive the second sub-stream, the processor in the second hard disk is used to defer processing the second sub-stream according to the second priority identifier, and the storage medium in the second hard disk is used to store the data in the first sub-stream.
[0010] Through the above implementation, when the distributed storage system stores data in the storage nodes including hard disks in a co-stream manner, the time difference between the hard disk and other storage nodes for storing data can be reduced, thereby improving the resource utilization efficiency of the hard disk and other storage nodes.
[0011] In one implementation, the above-mentioned communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes connected to the storage nodes in the distributed storage system.
[0012] In the above implementation, it is considered that when the storage nodes access the distributed storage system through the transmission nodes, after each transmission node receives the sub-streams sent to each storage node, the sub-streams can be processed according to the priorities corresponding to the priority identifiers in the sub-streams (for example, the sub-streams can be sent to the storage nodes according to the priorities corresponding to the priority identifiers in the sub-streams), thereby improving the utilization efficiency of the scheduling resources of each transmission node and each storage node.
[0013] In one implementation, the above-mentioned sending node is further used to determine the first priority identifier according to the historical flow completion time (FCT) when the n receiving nodes corresponding to the co-stream respectively process the data stream from the sending node, where n is a positive integer greater than 1.
[0014] Through the above implementation, the priority identifier included in the sub-stream (specifically, the first priority identifier included in the first sub-stream) is determined according to the historical FCT when the n receiving nodes corresponding to the co-stream K respectively process the data stream from the sending node. In this way, the completion processing time when the first receiving node processes the first sub-stream according to the priority corresponding to the first priority identifier can be close to the completion time of other receiving nodes in the n receiving nodes for processing the sub-streams, thereby narrowing the time difference for completing the processing of each sub-stream. Furthermore, the resource utilization efficiency of each receiving node can be improved.
[0015] In one implementation, the sending node is further configured to determine a first priority identifier according to the historical FCTs when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node, including: The sending node is further configured to determine a reference duration according to the historical FCTs when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node; the reference duration is used to indicate the CCT of the co-flow. The sending node is further configured to determine the first FCT in the first FCT set that is less than the reference duration and closest to the reference duration. Wherein, the first FCT set includes: the historical FCTs respectively corresponding to the first receiving node when processing the data stream from the sending node according to different priorities. The sending node is further configured to determine the first priority identifier according to the priority corresponding to the first FCT.
[0016] In the above implementation, it is considered that: on the one hand, the historical FCTs when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node can be used to predict the CCT of the co-flow, so as to determine a reference duration for indicating the CCT of the co-flow. On the other hand, the FCTs of each receiving node for processing the sub-flows can be made less than the reference duration and as close as possible to the reference duration. In this way, the time difference for each sub-flow in the co-flow K to complete processing can be reduced. Furthermore, in the above implementation, on the one hand, the reference duration is determined according to the historical FCTs when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node; on the other hand, the first FCT that is less than the reference duration and closest to the reference duration is selected from the first FCT set, and the first priority identifier is determined according to the priority corresponding to the first FCT. In this way, when the first receiving node processes the first sub-flow according to the first priority identifier, the FCT of the first sub-flow can be made as close as possible to the reference duration. When the FCTs of multiple sub-flows are all made as close as possible to the reference duration in the above manner, the time difference for completing the processing of each sub-flow can be reduced. Furthermore, the resource utilization efficiency of each receiving node can be improved.
[0017] Second aspect, a communication method is provided. The communication method is applied to a communication system, and the communication system includes a sending node, a first receiving node, and a second receiving node. The method includes: The sending node sends a first sub-stream to the first receiving node, and the first sub-stream includes a first priority identifier. The sending node sends a second sub-stream to the second receiving node, and the second sub-stream includes a second priority identifier. The first sub-stream and the second sub-stream belong to the same co-flow. The first receiving node preferentially processes the first sub-stream according to the first priority corresponding to the first priority identifier. The second receiving node processes the second sub-stream later according to the second priority corresponding to the second priority identifier, so that the time difference between the first receiving node completing the processing of the first sub-stream and the second receiving node completing the processing of the second sub-stream satisfies: less than at least one of the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the first priority, and less than the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the second priority.
[0018] In one implementation, the method further includes: The sending node determines the first priority identifier according to the historical FCT when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node, where n is a positive integer greater than 1.
[0019] In one implementation, the sending node determines the first priority identifier according to the historical FCT when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node, including: The sending node determines a reference duration according to the historical FCT when the n receiving nodes corresponding to the co-flow respectively process the data stream from the sending node; the reference duration is used to indicate the CCT of the co-flow. The sending node determines the first FCT in the first FCT set that is less than and closest to the reference duration; where the first FCT set includes: the historical FCTs corresponding to the first receiving node when processing the data stream from the sending node according to different priorities. The sending node determines the first priority identifier according to the priority corresponding to the first FCT.
[0020] In one implementation, the above communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
[0021] In one implementation, the above communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes connected to the storage nodes in the distributed storage system.
[0022] In a third aspect, a communication system is provided. The communication system includes a first receiving node and a second receiving node, where: The first receiving node is configured to receive a first sub-stream from a sending node, and the first sub-stream includes a first priority identifier. The second receiving node is configured to receive a second sub-stream from the sending node, and the second sub-stream includes a second priority identifier. The first sub-stream and the second sub-stream belong to the same cooperation stream. The first receiving node is further configured to preferentially process the first sub-stream according to the first priority corresponding to the first priority identifier. The second receiving node is further configured to delay processing the second sub-stream according to the second priority corresponding to the second priority identifier, so that the time difference between the first receiving node completing the processing of the first sub-stream and the second receiving node completing the processing of the second sub-stream satisfies: being less than at least one of the time differences when the first receiving node and the second receiving node complete processing the first sub-stream and the second sub-stream according to the first priority, and being less than the time differences when the first receiving node and the second receiving node complete processing the first sub-stream and the second sub-stream according to the second priority.
[0023] In one implementation, the above communication system is a distributed storage system, where the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
[0024] In one implementation, the above distributed storage system includes hard disks. The hard disk includes a network card, a processor, and a storage medium. The first receiving node and / or the second receiving node is a hard disk in the distributed storage system. When the first receiving node is the first hard disk in the distributed storage system, the network card in the first hard disk is configured to receive the first sub-stream, the processor in the first hard disk is configured to preferentially process the first sub-stream according to the first priority identifier, and the storage medium in the first hard disk is configured to store the data in the first sub-stream. When the second receiving node is the second hard disk in the distributed storage system, the network card in the second hard disk is configured to receive the second sub-stream, the processor in the second hard disk is configured to delay processing the second sub-stream according to the second priority identifier, and the storage medium in the second hard disk is configured to store the data in the first sub-stream.
[0025] In one implementation, the above communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes connected to the storage nodes in the distributed storage system.
[0026] Fourthly, a communication method is provided. The communication method is applied to a communication system, which includes a first receiving node and a second receiving node. The method includes: the first receiving node receives a first sub-stream from a sending node, and the first sub-stream includes a first priority identifier; the second receiving node receives a second sub-stream from the sending node, and the second sub-stream includes a second priority identifier, and the first sub-stream and the second sub-stream belong to the same cooperation stream; the first receiving node preferentially processes the first sub-stream according to the first priority corresponding to the first priority identifier; the second receiving node processes the second sub-stream later according to the second priority corresponding to the second priority identifier, so that the time difference between the first receiving node completing the processing of the first sub-stream and the second receiving node completing the processing of the second sub-stream satisfies: being less than at least one of the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the first priority, and the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the second priority.
[0027] In one implementation, the above communication system is a distributed storage system, where the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
[0028] In one implementation, the above distributed storage system includes hard disks. Each hard disk includes a network card, a processor, and a storage medium. The first receiving node and / or the second receiving node is a hard disk in the distributed storage system. When the first receiving node is the first hard disk in the distributed storage system, the network card in the first hard disk is used to receive the first sub-stream, the processor in the first hard disk is used to preferentially process the first sub-stream according to the first priority identifier, and the storage medium in the first hard disk is used to store the data in the first sub-stream. When the second receiving node is the second hard disk in the distributed storage system, the network card in the second hard disk is used to receive the second sub-stream, the processor in the second hard disk is used to process the second sub-stream later according to the second priority identifier, and the storage medium in the second hard disk is used to store the data in the first sub-stream.
[0029] In one implementation, the above communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes connected to the storage nodes in the distributed storage system.
[0030] Fifthly, a computer-readable storage medium is provided. A computer program is stored in the storage medium. When the computer program is executed by a sending node and a receiving node in the communication system, the methods in the second aspect or any implementation manner of the second aspect or the fourth aspect or any implementation manner of the fourth aspect are implemented.
[0031] In a sixth aspect, there is provided a computer program product including instructions which, when running on a sending node and a receiving node in a communication system, implement the method according to the second aspect or any implementation manner of the second aspect or the fourth aspect or any implementation manner of the fourth aspect as described above. BRIEF DESCRIPTION OF THE DRAWINGS
[0032] Figure 1 FIG. 1 is a schematic structural diagram of a communication system provided by an embodiment of the present application;
[0033] Figure 2 FIG. 2 is a schematic diagram of an operation process of a communication system provided by an embodiment of the present application;
[0034] Figure 3 FIG. 3 is a second schematic diagram of an operation process of a communication system provided by an embodiment of the present application;
[0035] Figure 4 FIG. 4 is a third schematic diagram of an operation process of a communication system provided by an embodiment of the present application;
[0036] Figure 5 FIG. 5 is a fourth schematic diagram of an operation process of a communication system provided by an embodiment of the present application;
[0037] Figure 6 FIG. 6 is a second schematic structural diagram of a communication system provided by an embodiment of the present application;
[0038] Figure 7 FIG. 7 is a first schematic structural diagram of a distributed storage system provided by an embodiment of the present application;
[0039] Figure 8 FIG. 8 is a second schematic structural diagram of a distributed storage system provided by an embodiment of the present application;
[0040] Figure 9 FIG. 9 is a third schematic structural diagram of a distributed storage system provided by an embodiment of the present application;
[0041] Figure 10 FIG. 10 is a fifth schematic diagram of an operation process of a communication system provided by an embodiment of the present application;
[0042] Figure 11 FIG. 11 is a sixth schematic diagram of an operation process of a communication system provided by an embodiment of the present application. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0043] The technical solutions in the embodiments of the present application will be described below with reference to the accompanying drawings in the embodiments of the present application.
[0044] Currently, with the development of computer technology, many services are implemented in the form of coflows. For example, in cloud computing, coflows can be used to achieve collaborative computing among multiple computing nodes. Specifically, in a cloud computing system, a sending node (e.g., the sending node can be a management node in the cloud computing system) can send subflows to multiple computing nodes. Subsequently, the multiple computing nodes process the subflows and send feedback messages to the sending node after completion of the processing. After receiving the feedback messages from each computing node, the sending node determines that the coflow is completed and releases the memory resources. The coflow completion time (CCT) of this coflow depends on the time when the last computing node finishes processing.
[0045] Next, taking the Figure 1 shown communication system as an example, the implementation process of coflows in the related art will be introduced. As Figure 1 shown, the communication system 10 includes a sending node 110 and multiple receiving nodes (taking receiving node 121, receiving node 122, and receiving node 123 as examples in the figure).
[0046] When the communication system 10 is applied to the scenario of cloud computing, the sending node 110 can be a management node in the cloud computing system for distributing computing tasks to each computing node, and each receiving node can be a computing node in the cloud computing system respectively. The execution process of this coflow is as Figure 2 shown, including:
[0047] S201. The sending node 110 occupies memory resources and sends subflows (i.e., subflow a, subflow b, and subflow c) to each receiving node respectively.
[0048] Among them, each subflow can be composed of one or more data packets.
[0049] S202. Each receiving node processes the received subflows according to the priorities in the scheduling policy.
[0050] Specifically, when a receiving node needs to process multiple tasks simultaneously, each receiving node can determine the priorities of the data packets in each task according to the corresponding scheduling policy (e.g., strict priority (SP) scheduling policy, weighted round robin (WRR) scheduling policy, deficit weighted round robin (DWRR) scheduling policy, etc.) and process the data packets according to the priorities.
[0051] Among them, when each receiving node processes the received sub-streams according to the same priority in the scheduling policy, for different sub-streams in the co-flow, due to factors such as different load sizes of each receiving node, there may be a situation where some receiving nodes process the sub-streams earlier and some receiving nodes process the sub-streams later.
[0052] Exemplarily, in Figure 2 the shown scenario, assume that the load of receiving node 123 is the largest, the load of receiving node 122 is the smallest, and the load of receiving node 121 is between the two. Then when the three receiving nodes process sub-stream a, sub-stream b, and sub-stream c according to the same priority in the scheduling policy, the processing order of each receiving node for the sub-streams is as follows: 1. Receiving node 121 first processes the first 2 data packets (represented by shaded squares in the figure), and then processes sub-stream a; 2. Receiving node 122 can directly process sub-stream b without waiting; 3. Receiving node 123 first processes the first 4 data packets (represented by shaded squares in the figure), and then processes sub-stream c.
[0053] S203. After each receiving node completes data processing, it sends a feedback message to the sending node 110.
[0054] For example, after receiving node 121 completes processing of sub-stream a, it sends a feedback message to sending node 110; after receiving node 122 completes processing of sub-stream b, it sends a feedback message to sending node 110; after receiving node 123 completes processing of sub-stream c, it sends a feedback message to sending node 110. Specifically, in Figure 2 the example, receiving node 122 will complete data processing earliest, so receiving node 122 sends a feedback message to sending node 110 earliest; receiving node 123 will complete data processing latest, so receiving node 123 sends a feedback message to sending node 110 latest; the time when receiving node 121 sends a feedback message to sending node 110 is between the two.
[0055] S204. After the sending node 110 receives the feedback messages from each receiving node, it determines that the co-flow execution is completed and releases the memory resources.
[0056] It can be seen that during the execution process of the Figure 2 shown co-flow, there is a time difference in the completion time of each receiving node for processing the sub-streams. In this case, for the receiving nodes that complete data processing earlier, there may be a waste of scheduling resources.
[0057] Taking the receiving node 122 as an example: Since the sending node 110 will not release the memory resources until it determines that all receiving nodes have completed data processing (i.e., the CCT of the cooperative flow depends on the latest completion time of each sub-flow), the CCT of the cooperative flow will not decrease because the receiving node 122 can process sub-flow b earlier. In other words, if it is possible to make the receiving node 122 process the data packets of other services first (for example, the receiving node 122 processes Figure 2 the data packets 1, 2, and 3 in
[0058] ), and process sub-flow b when other receiving nodes are processing sub-flows (for example, when the receiving node 123 is processing sub-flow c), in this way, it is possible to improve the processing speed of other services of the receiving node 122 without increasing the CCT of the cooperative flow, thereby improving the utilization efficiency of the scheduling resources in the receiving node 122.
[0059] Exemplarily, as shown in (a) of Figure 3 , when the cooperative flow service includes sub-flow a sent by the sending node 110 to the receiving node 121 and sub-flow b sent by the sending node 110 to the receiving node 122, as shown in (b) of Figure 3 , assume that the FCT is 10 us when the sending node 110 sends data to the receiving node 121 and the receiving node 121 processes the data according to the priority 1 in the scheduling policy (it can be understood that: at this time, the time from the sending node 110 sending data to the receiving node completing data processing is 10 us); the FCT is 16 us when the sending node 110 sends data to the receiving node 121 and the receiving node 121 processes the data according to the priority 2 in the scheduling policy; the FCT is 20 us when the sending node 110 sends data to the receiving node 122 and the receiving node 122 processes the data according to the priority 1 in the scheduling policy; the FCT is 26 us when the sending node 110 sends data to the receiving node 121 and the receiving node 122 processes the data according to the priority 2 in the scheduling policy.
[0060] Then, in the embodiments of the present application, the identifier of priority 2 can be included in the sub - flow a sent by the sending node 110 to the receiving node 121, and the identifier of priority 1 can be included in the sub - flow b sent by the sending node 110 to the receiving node 122. Furthermore, after receiving the sub - flow a, the receiving node 121 can preferentially process the sub - flow a according to priority 2; after receiving the sub - flow b, the receiving node 122 can postpone processing the sub - flow b according to priority 1.
[0061] It can be seen that compared with the time difference of 10 us (i.e., 20 us - 10 us) for the two receiving nodes to complete processing the sub - flow a and the sub - flow b according to priority 1 and the time difference of 10 us (i.e., 26 us - 16 us) for the two receiving nodes to complete processing the sub - flow a and the sub - flow b according to priority 2, through the above - mentioned process of the embodiments of the present application, the time difference for the two receiving nodes to complete processing the sub - flows can be reduced to 4 us (i.e., 20 us - 16 us).
[0062] Again, by way of example, as Figure 4 shown in (a), in the case where the co - flow service includes the sub - flow c sent by the sending node 110 to the receiving node 121, the sub - flow d sent by the sending node 110 to the receiving node 122, and the sub - flow e sent by the sending node 110 to the receiving node 123, assuming that the FCT when each receiving node processes data according to different priorities in the scheduling policy is as Figure 4 shown in (b).
[0063] Then, in the embodiments of the present application, the identifier of priority 3 can be included in the sub - flow c sent by the sending node 110 to the receiving node 121, the identifier of priority 2 can be included in the sub - flow d sent by the sending node 110 to the receiving node 122, and the identifier of priority 1 can be included in the sub - flow e sent by the sending node 110 to the receiving node 123. Furthermore, after receiving the sub - flow c, the receiving node 121 can process the sub - flow c according to priority 3; after receiving the sub - flow d, the receiving node 122 can process the sub - flow d according to priority 2; after receiving the sub - flow e, the receiving node 123 can process the sub - flow e according to priority 1.
[0064] Similar to the example shown in Figure 3 , in the example of Figure 4 , compared with each receiving node processing the sub - flows according to the same priority, through the above - mentioned process of the embodiments of the present application, the time difference for different receiving nodes to process the sub - flows can be reduced.
[0065] Based on the above content, the embodiments of the present application provide a communication system. Among them, the structure of the communication system can refer to Figure 1 the communication system 10 shown. Among them, the communication system 10 can include a sending node 110 and multiple receiving nodes (such as Figure 1Take three receiving nodes as an example: receiving node 121, receiving node 122, and receiving node 123).
[0066] Among them, the sending node 110 can send the sub-streams in the cooperative stream to each receiving node respectively in the manner provided below in the embodiments of the present application. Each receiving node can process the received sub-streams respectively in the manner provided below in the embodiments of the present application.
[0067] In the actual application process, in the communication system 10 provided by the embodiments of the present application, the functions of the sending node 110 and each receiving node can be implemented by electronic devices such as personal computers (including desktop computers, laptop computers, handheld computers, and notebook computers, etc.), ultra-mobile personal computers (UMPCs), network cards, or servers. Alternatively, the functions of the sending node 110 and each receiving node can be implemented by a hardware device (such as a chip) or a software device (such as a virtual machine) running in the above-mentioned electronic devices.
[0068] In addition, the sending node 110 and each receiving node can be connected through a transmission network. The structure and type of the transmission network can be not limited in the embodiments of the present application.
[0069] Next, the running process when the communication system 10 in the embodiments of the present application executes the cooperative stream service will be introduced in detail. As Figure 5 shown, the running process of the communication system 10 can include:
[0070] S301. The sending node 110 obtains each sub-stream included in the cooperative stream K.
[0071] For example, the sending node 110 can obtain the data that needs to be processed collaboratively by multiple receiving nodes from the relevant application programs in the application layer, and process the data to obtain each sub-stream in the cooperative stream K.
[0072] For another example, the sending node 110 can also receive multiple sub-streams included in the cooperative stream K from other nodes. For example, when the sending node 110 is a control node in a cloud computing system, the sending node 110 can receive multiple sub-streams included in the cooperative stream K from a client connected to the cloud computing system.
[0073] S302. The sending node 110 sends the sub-streams to multiple receiving nodes.
[0074] Among them, each sub-stream respectively includes a priority identifier. The priority identifier is used to indicate that the receiving node processes the sub-stream according to the priority corresponding to the priority identifier.
[0075] For example Figure 3In the example shown, the sub - flow a sent by the sending node 110 to the receiving node 121 includes an identifier of priority 2, which is used to instruct the receiving node 121 to process the sub - flow according to priority 2; the sub - flow b sent by the sending node 110 to the receiving node 122 includes an identifier of priority 1, which is used to instruct the receiving node 122 to process the sub - flow according to priority 1.
[0076] For another example Figure 4 In the example shown, the sub - flow c sent by the sending node 110 to the receiving node 121 includes an identifier of priority 3, the sub - flow d sent by the sending node 110 to the receiving node 122 includes an identifier of priority 2, and the sub - flow e sent by the sending node 110 to the receiving node 123 includes an identifier of priority 1.
[0077] In addition, for the process of how the sending node 110 determines the priority identifiers included in each sub - flow, it will be introduced in detail through S601 - S602 in the following text. It will not be elaborated here for the time being.
[0078] S303. Each receiving node processes the sub - flow according to the priority corresponding to the priority identifier included in the sub - flow.
[0079] For example Figure 3 In the example shown, the receiving node 121 processes the sub - flow a according to priority 2 (i.e., the priority corresponding to the priority identifier included in the sub - flow a); the receiving node 122 processes the sub - flow b according to priority 1 (i.e., the priority corresponding to the priority identifier included in the sub - flow b).
[0080] For another example Figure 4 In the example shown, the receiving node 121 processes the sub - flow c according to priority 3 (i.e., the priority corresponding to the priority identifier included in the sub - flow c); the receiving node 122 processes the sub - flow d according to priority 2 (i.e., the priority corresponding to the priority identifier included in the sub - flow d); the receiving node 123 processes the sub - flow e according to priority 1 (i.e., the priority corresponding to the priority identifier included in the sub - flow e).
[0081] In the embodiments of the present application, according to the different scheduling strategies adopted by the receiving nodes, the priority corresponding to the priority identifier can be the priority in different scheduling strategies.
[0082] For example, when each receiving node adopts the SP scheduling strategy to determine the order of processing data, the priority corresponding to the above - mentioned priority identifier can be the priority in the SP scheduling strategy. Exemplarily, Figure 3 Priority 1 and priority 2 in the example shown and Figure 4 Priority 1, priority 2 and priority 4 in the example shown can be respectively a kind of priority in the SP scheduling strategy. Furthermore, each receiving node can process the sub - flow according to the priority corresponding to the priority identifier in the SP scheduling strategy.
[0083] Similarly, when the WRR scheduling policy or other scheduling policies such as DWRR are adopted at the receiving node, the priorities corresponding to the above priority identifiers can be the priorities in other scheduling policies such as DWRR. In the embodiments of the present application, the scheduling policies adopted by each receiving node may not be limited.
[0084] In addition, in the embodiments of the present application, the processing sub - flow can be understood as: the receiving node determines the order of processing the sub - flow according to the corresponding priority (i.e., the priority corresponding to the priority identifier included in the sub - flow received by the receiving node) and the scheduling policy, and performs subsequent operations on the sub - flow according to the scheduling order (for example, sending the data in the sub - flow to the application layer for operations such as calculation and storage).
[0085] In the embodiments of the present application, during the process of each receiving node processing the sub - flow, the process of at least two receiving nodes processing the sub - flow may include the process of the first receiving node processing the first sub - flow and the second receiving node processing the second sub - flow that conforms to the following S3031 - S3032:
[0086] S3031. The first receiving node preferentially processes the first sub - flow according to the first priority corresponding to the first priority identifier (i.e., the priority identifier included in the first sub - flow).
[0087] S3032. The second receiving node delays processing the second sub - flow according to the second priority corresponding to the second priority identifier (i.e., the priority identifier included in the second sub - flow).
[0088] Among them, the time difference T1 between the first receiving node completing the processing of the first sub - flow and the second receiving node completing the processing of the second sub - flow satisfies the target condition.
[0089] Among them, the target condition includes: being less than at least one of the time difference T2 between the first receiving node and the second receiving node completing the processing of the first sub - flow and the second sub - flow according to the first priority, and the time difference T3 between the first receiving node and the second receiving node completing the processing of the first sub - flow and the second sub - flow according to the second priority.
[0090] For example, the first receiving node can be Figure 3 the receiving node 122 in Figure 3The receiving node 121 therein. Among them, the receiving node 122 preferentially processes sub - flow b (i.e., the first sub - flow) according to priority 1; the receiving node 121 processes sub - flow a (i.e., the second sub - flow) later according to priority 2. Among them, the time difference T1 between the completion of processing sub - flow b by the receiving node 122 and the completion of processing sub - flow a by the receiving node 121 is 4 us (i.e., 20 us - 16 us). The time difference T1 is less than the time difference T2 (20 us - 10 us = 10 us) when both receiving nodes process sub - flow b and sub - flow a according to priority 1 and the time difference T3 (26 us - 16 us = 10 us) when both receiving nodes process sub - flow b and sub - flow a according to priority 2.
[0091] For another example, the first receiving node can be Figure 4 the receiving node 123 therein, and the second receiving node can be Figure 4 the receiving node 122 therein. Among them, the receiving node 123 preferentially processes sub - flow e (i.e., the first sub - flow) according to priority 1; the receiving node 122 processes sub - flow d (i.e., the second sub - flow) later according to priority 2. Among them, the time difference between the completion of processing sub - flow e by the receiving node 123 and the completion of processing sub - flow d by the receiving node 122 is 4 us (i.e., 30 us - 26 us). Among them, the time difference T1 is less than the time difference T2 (30 us - 20 us = 10 us) when both receiving nodes process sub - flow e and sub - flow d according to priority 1 and the time difference T3 (36 us - 26 us = 10 us) when both receiving nodes process sub - flow e and sub - flow d according to priority 2.
[0092] For another example, the first receiving node can be Figure 4 the receiving node 122 therein, and the second receiving node can be Figure 4 the receiving node 121 therein. Among them, the receiving node 122 preferentially processes sub - flow d (i.e., the first sub - flow) according to priority 2; the receiving node 121 processes sub - flow c (i.e., the second sub - flow) later according to priority 3. Among them, the time difference between the completion of processing sub - flow d by the receiving node 122 and the completion of processing sub - flow c by the receiving node 121 is 0 us (i.e., 26 us - 26 us). Among them, the time difference T1 is less than the time difference T2 (26 us - 16 us = 10 us) when both receiving nodes process sub - flow d and sub - flow c according to priority 2 and the time difference T3 (36 us - 26 us = 10 us) when both receiving nodes process sub - flow d and sub - flow c according to priority 2.
[0093] For another example, the first receiving node can be Figure 4 the receiving node 123 therein, and the second receiving node can be Figure 4The receiving node 121 therein. Among them, the receiving node 123 preferentially processes sub - flow e (i.e., the first sub - flow) according to priority 1; the receiving node 121 processes sub - flow c (i.e., the second sub - flow) later according to priority 3. Among them, the time difference between the receiving node 121 completing the processing of sub - flow e and the receiving node 121 completing the processing of sub - flow c is 4 us (i.e., 30 us - 26 us). Among them, the time difference T1 is less than the time difference T2 (30 us - 10 us = 20 us) when both receiving nodes process sub - flow e and sub - flow c according to priority 1 and the time difference T3 (46 us - 26 us = 20 us) when both receiving nodes process sub - flow e and sub - flow c according to priority 2.
[0094] In a possible design, on the one hand, the time difference T2 for the above - mentioned first receiving node and second receiving node to complete the processing of the first sub - flow and the second sub - flow according to the first priority can specifically be: the time difference T2 between the first receiving node completing the processing of the first sub - flow and the second receiving node completing the processing of the first data.
[0095] Among them, the first data is the data carrying the second priority identifier received by the first receiving node before or after receiving the first sub - flow.
[0096] Take Figure 3 the receiving node 122 as the first receiving node and the receiving node 121 as the second receiving node as an example: the time difference T2 for the receiving node 122 and the receiving node 121 to complete the processing of sub - flow a and sub - flow b according to priority 1 can specifically be: the time difference between the receiving node 122 completing the processing of sub - flow a according to priority 1 and the receiving node 121 completing the processing of the first data (the first data can be the service data including priority 1 received by the receiving node 121 before or after receiving sub - flow b).
[0097] On the other hand, the time difference T3 for the above - mentioned first receiving node and second receiving node to complete the processing of the first sub - flow and the second sub - flow according to the second priority can specifically be: the time difference T2 between the first receiving node completing the processing of the second data and the second receiving node completing the processing of the second sub - flow.
[0098] Among them, the second data is the data carrying the first priority identifier received by the second receiving node before or after receiving the second sub - flow.
[0099] Continue to take Figure 3Taking receiving node 122 as the first receiving node and receiving node 121 as the second receiving node as an example: The time difference T2 between receiving node 122 and receiving node 121 for processing sub-flow a and sub-flow b according to priority 2 can specifically be: The time difference between receiving node 122 completing the processing of the second data (this second data can be service data including priority 2 received before or after receiving sub-flow a by receiving node 122) according to priority 2 and receiving node 121 completing the processing of sub-flow b according to priority 2.
[0100] In the above design, it is considered that: In the actual application process, when a receiving node processes a sub-flow, it only needs to process the sub-flow according to one priority (i.e., the priority corresponding to the priority identifier carried in the sub-flow). For example, when the first receiving node preferentially processes the first sub-flow (i.e., S3031) according to the first priority, the first receiving node does not need to process the first sub-flow according to the second priority again. Similarly, when the second receiving node preferentially processes the second sub-flow (i.e., S3032) according to the second priority, the second receiving node does not need to process the second sub-flow according to the first priority again.
[0101] Therefore, in the case where the first receiving node preferentially processes the first sub-flow according to the first priority, the time for the first receiving node to complete the processing of other service data (for example, this other service data can be service data carrying the second priority identifier received by the first receiving node before or after receiving the first sub-flow) according to the second priority can be used to reflect the time for the first receiving node to complete the processing of the first sub-flow according to the second priority.
[0102] Taking Figure 3 receiving node 122 as the first receiving node and receiving node 121 as the second receiving node as an example: Among them, in the case where receiving node 122 preferentially processes sub-flow a according to priority 1, the time for receiving node 122 to complete the processing of other service data (this service data can be service data including priority 2 received before or after receiving sub-flow a by receiving node 122) according to priority 2 can be used to reflect the time for receiving node 122 to complete the processing of sub-flow a according to priority 2.
[0103] Similarly, in the case where the second receiving node preferentially processes the second sub-flow according to the second priority, the time for the second receiving node to complete the processing of other service data (for example, this other service data can be service data carrying the first priority identifier received by the second receiving node before or after receiving the second sub-flow) according to the first priority can be used to reflect the time for the second receiving node to complete the processing of the first sub-flow according to the first priority.
[0104] Continuing with Figure 3Taking the receiving node 122 as the first receiving node and the receiving node 121 as the second receiving node as an example: Among them, when the receiving node 121 preferentially processes the sub - flow a according to priority 2, the time when the receiving node 121 finishes processing other service data according to priority 1 (this service data can be the service data including priority 1 received before or after the receiving node 121 receives the sub - flow b) can be used to reflect the time when the receiving node 122 finishes processing the sub - flow a according to priority 2.
[0105] After each receiving node finishes processing each sub - flow, it may further include:
[0106] S304. After each receiving node finishes processing each sub - flow, it sends a feedback message to the sending node 110.
[0107] For example Figure 3 In the example shown, after the receiving node 121 and the receiving node 122 finish processing the sub - flow a and the sub - flow b, they can send a feedback message to the sending node 110 to indicate that the sub - flow has been processed. For another example Figure 4 In the example shown, after the receiving node 121, the receiving node 122, and the receiving node 123 finish processing the sub - flow c, the sub - flow d, and the sub - flow e, they can send a feedback message to the sending node 110 to indicate that the sub - flow has been processed.
[0108] S305. After the sending node receives the feedback messages sent by each receiving node, it releases the resources corresponding to the cooperative flow K.
[0109] For example, after the sending node receives the feedback messages sent by all receiving nodes, it determines that the cooperative flow K has been executed and then releases the memory resources occupied by the cooperative flow K.
[0110] The above Figure 5 mainly takes Figure 1 the structure of the communication system 10 shown as an example to introduce the operation process of the communication system provided by the embodiments of the present application. In Figure 1 the communication system 10 shown, the sending node 110 and multiple receiving nodes can be respectively used as components of the communication system 10. In another implementation manner, the communication system provided by the embodiments of the present application may not include the software / hardware device that executes the functions of the above - mentioned sending node 110. For example, Figure 6 The following shows a schematic structural diagram of another communication system provided by the embodiments of the present application.
[0111] Among them, the communication system 40 includes multiple receiving nodes (taking the receiving node 401, the receiving node 402, and the receiving node 402 as examples in the figure).
[0112] Among them, the functions of each receiving node can be implemented by electronic devices such as personal computers (including desktop computers, laptop computers, handheld computers, and notebook computers, etc.), ultra-mobile personal computers (UMPCs), network cards, or servers. Alternatively, the functions of each receiving node can be implemented by a software device (such as a virtual machine) after a hardware device (such as a chip) running in the above-mentioned electronic devices.
[0113] Each receiving node can interact with a sending node 41 outside the communication system 40 through a transmission network. For example, the sending node 41 can be a client with access rights to the communication system 40, and this client can interact with each receiving node through the transmission network.
[0114] When the communication system 40 is used to execute a co-flow service, the sending node 41 can obtain each sub-flow in the co-flow with reference to the content of S301 above, and send the sub-flow including the priority identifier to each receiving node in the communication system 40 with reference to the content of S302 above. In addition, the sending node 110 can also determine the priority identifiers included in each sub-flow with reference to the content of S601 - S602 below.
[0115] After each receiving node in the communication system 40 receives the sub-flow from the sending node 41, it can process the sub-flow according to the priority corresponding to the priority identifier included in the sub-flow with reference to the content of S303 above. Among them, in each receiving node of the communication system 40, at least two receiving nodes' processes of processing the sub-flow conform to the content of S3031 and S3032.
[0116] In addition, after processing the sub-flow, each receiving node can send a feedback message to the sending node 41 with reference to the content of S304 above. After the sending node 41 receives the feedback message from the receiving node, it can release resources with reference to the content of S305 above.
[0117] In one implementation, considering that in a distributed storage system, a co-flow method can be adopted to store data in multiple storage nodes in the distributed storage system. For example, when storing data in a multi-copy manner, a co-flow method can be adopted to send multiple data copies to different storage nodes for storage respectively. Another example is that when storing data in an erasure codes (EC) manner, a co-flow method can be adopted to send the data blocks and parity blocks in the EC code blocks to different storage nodes for storage respectively.
[0118] Therefore, the operation process of the communication system shown above Figure 5 can be applied to the distributed storage system, so as to improve the resource utilization efficiency when storing data in the distributed storage system by the co-flow method.
[0119] As shown in Figure 7 , a schematic structural diagram of a distributed storage system provided by an embodiment of the present application is shown. In the distributed storage system 50, it includes: a plurality of storage nodes for storing data (taking 4 storage nodes in the figure: storage node 501, storage node 502, storage node 503, and storage node 504 as examples), and one or more computing nodes for providing computing power (taking 1 computing node in the figure: computing node 505 as an example). Among them, each storage node and the computing node can be connected through a transmission network 506. In the actual application process, each storage node and computing node in the distributed storage system 50 can be devices such as servers and desktop computers.
[0120] It can be understood that Figure 7 only an exemplary system architecture of a distributed storage system is provided. In the specific implementation process, the distributed storage system applying the technical solution provided by the embodiment of the present application can also adopt other system architectures. For example, when the storage nodes in the distributed storage system are devices that have both computing power and storage capacity, the functions of the computing node 505 can be implemented by the storage nodes. In this case, the distributed storage system may not include the computing node 505. In addition, when the storage nodes in the distributed storage system are devices that have both computing power and storage capacity, the computing node 505 can also run in the form of a virtual machine on the storage nodes. In this case, the distributed storage system may also not include a computing node independent of the storage nodes. The technical solution provided by the embodiment of the present application can be applied to distributed storage systems with different system architectures.
[0121] In addition, when the distributed storage system 50 is running, on the one hand, the computing node 505 can send the data generated during the operation process to the storage nodes for storage, and the computing node 505 can read the data required for the operation from the storage nodes. On the other hand, each storage node can also receive access requests from devices other than the computing nodes and read and write data according to the access requests. For example, each storage node can receive access requests from other storage nodes in the distributed storage system and read and write data according to the access requests. For another example, each storage node can receive access requests from devices outside the distributed storage system and read and write data according to the access requests.
[0122] Next, through three implementation processes, the implementation process of applying the operation process of the communication system shown above Figure 5 to the distributed storage system will be introduced:
[0123] In the first implementation process, when in the distributed storage system 50, the computing node 505 sends data to multiple storage nodes and the multiple storage nodes store the data, the computing node 505 can be used to implementFigure 5 the function of the sending node 110 in, and each storage node can be used to implement Figure 5 the functions of the receiving nodes in.
[0124] Specifically, the computing node 505 can obtain each sub-flow in the co-flow with reference to the content of S301 above (for example, when the storage node stores data in a multi-copy manner, each sub-flow can respectively include replica data; for another example, when the storage node stores data in an EC manner, each sub-flow can respectively include partial data blocks or parity blocks), and send the sub-flows including priority identifiers to each storage node in the distributed storage system 50 with reference to the content of S302 above. In addition, the computing node 505 can also determine the priority identifiers included in each sub-flow with reference to the content of S601-S602 below.
[0125] After each storage node in the distributed storage system 50 receives the sub-flow from the computing node 505, it can process the sub-flow according to the priority corresponding to the priority identifier included in the sub-flow with reference to the content of S303 above (wherein, processing the sub-flow can include: the storage node determines the order of the sub-flows according to the priority corresponding to the priority identifier included in the sub-flow, and writes the data in the sub-flow into the storage medium in this order). Among them, in each storage node of the distributed storage system 50, at least two storage nodes' processes of processing the sub-flow conform to the content of S3031 and S3032. In addition, after each storage node finishes writing the data, it can send a feedback message to the computing node 505 with reference to the content of S304 above. After the computing node 505 receives the feedback message from the storage node, it can release resources with reference to the content of S305 above.
[0126] In the second implementation process, considering that: in a distributed storage system, it is also possible for one storage node to send data to multiple other storage nodes and for the multiple storage nodes to store the data. For example, when the storage node has computing capabilities, the storage node can send the data generated during the computing to multiple storage nodes for storage; for another example, when the computing node needs to store data, it can first send the data to a storage node in the distributed storage system, and then this storage node sends the data to multiple storage nodes for storage.
[0127] Therefore, in the embodiments of the present application, it can be referred to Figure 5 the shown execution process to send the data from one storage node to multiple other storage nodes and for the multiple storage nodes to store the data.
[0128] Taking the storage node 501 sending data to the storage nodes 502, 503, and 504 and the storage nodes 502, 503, and 504 storing the data as an example:
[0129] On the one hand, the storage node 501 can determine each sub-flow in the co-flow with reference to the content of S301 - S302 above and send the sub-flows including the priority identifier to each storage node in the distributed storage system 50 (for example, when the storage node stores data in a multi-copy manner, each sub-flow can respectively include the priority identifier and the replica data; for another example, when the storage node stores data in an EC manner, each sub-flow can respectively include the priority identifier and the data block or the parity block). In addition, the storage node 501 can also determine the priority identifier included in each sub-flow with reference to the content of S601 - S602 below.
[0130] On the other hand, after receiving the sub-flows from the storage node 501, the storage node 502, the storage node 503, and the storage node 504 can process the sub-flows according to the priority corresponding to the priority identifier included in the sub-flows with reference to the content of S303 above (wherein, processing the sub-flows can include: the storage node determines the order of the sub-flows according to the priority corresponding to the priority identifier included in the sub-flows and writes the data in the sub-flows into the storage medium in this order). Among them, the process of at least two storage nodes processing the sub-flows can conform to the content of S3031 and S3032. In addition, after completing the data writing, each storage node can send a feedback message to the storage node 501 with reference to the content of S304 above. After receiving the feedback message from the storage node, the storage node 501 can release the resources with reference to the content of S305 above.
[0131] In the third implementation process, considering that: a device outside the distributed storage system can send data to multiple other storage nodes and the multiple storage nodes store the data. Therefore, in the embodiments of the present application, reference can be made to Figure 5 the shown execution process to send the data from a device outside the distributed storage system to multiple other storage nodes and store the data by the multiple storage nodes. For the specific process, reference can be made to the process of the computing node 505 sending data to multiple storage nodes and storing the data by the multiple storage nodes or the process of the storage node 501 sending data to multiple storage nodes and storing the data by the multiple storage nodes above. The repeated content will not be elaborated here.
[0132] In addition, in a possible design, the functions of some or all of the storage nodes in the distributed storage system in the embodiments of the present application can be implemented by a hard disk with data processing capabilities and communication capabilities. Exemplarily, as Figure 8 shown, in the distributed storage system 50, the storage node 502 and the storage node 503 can be the hard disk 502 and the hard disk 503 respectively.
[0133] Among them, the hard disk 502 may include a network card 5021 for communicating with other nodes in the distributed storage system, a processor 5022 for data processing, and a storage medium 5023 for storing data. Similarly, the hard disk 503 may include a network card 5031 for communicating with other nodes in the distributed storage system, a processor 5032 for data processing, and a storage medium 5033 for storing data.
[0134] It should be noted that in Figure 8 , the hard disks 502 and 503 respectively include independent processors (i.e., processors 5022 and 5032). In the actual application process, when the network cards in the hard disks 502 and 503 (i.e., network cards 5021 and 5031) are built with processors, the data processing tasks can also be executed by the network cards 5021 and 5031. In this case, the processor 5022 can be built into the network card 5021, and the processor 5032 can be built into the network card 5031.
[0135] When applying the operation process of the communication system shown in the above text Figure 5 to the distributed storage system, the hard disks 502 and 503 can be used to implement Figure 5 the functions of the receiving node in
[0136] For example, in the first implementation process above, after receiving the sub-stream from the computing node 505, the hard disks 502 and 503 can respectively process the sub-stream according to the priority corresponding to the priority identifier included in the sub-stream with reference to the content of S303 above. For another example, in the second implementation process above, after receiving the sub-stream from the storage node 501, the hard disks 502 and 503 can respectively process the sub-stream according to the priority corresponding to the priority identifier included in the sub-stream with reference to the content of S303 above. For another example, in the third implementation process above, after receiving the sub-stream from the device outside the distributed storage system 50, the hard disks 502 and 503 can respectively process the sub-stream according to the priority corresponding to the priority identifier included in the sub-stream with reference to the content of S303 above.
[0137] Among them, on the one hand, when the first receiving node in S3031 is the hard disk serving as the storage node in the distributed storage system, for example, when the first receiving node is the hard disk 502:
[0138] The network card 5021 in the hard disk 502 is used to receive the first sub-stream including the first priority identifier from the sending node (at this time, the sending node can specifically be the computing node 505, other storage nodes in the distributed storage system 50, or the device outside the distributed storage system 50).
[0139] The processor 5022 is used to process the sub - flow according to the first priority corresponding to the first priority identifier. For example, the processor 5023 is used to determine the order of processing the first sub - flow according to the first priority, and write the data in the first sub - flow into the storage medium 5023 in this order.
[0140] The storage medium 5023 is used to store the data in the first sub - flow.
[0141] On the other hand, when the second receiving node in S3032 is a hard disk serving as a storage node in a distributed storage system, for example, when the second receiving node is the hard disk 503:
[0142] The network card 5031 in the hard disk 503 is used to receive the second sub - flow including the second priority identifier from a sending node (at this time, the sending node can specifically be the computing node 505, other storage nodes in the distributed storage system 50, or a device outside the distributed storage system 50).
[0143] The processor 5032 is used to process the sub - flow according to the second priority corresponding to the second priority identifier. For example, the processor 5033 is used to determine the order of processing the second sub - flow according to the second priority, and write the data in the second sub - flow into the storage medium 5033 in this order.
[0144] The storage medium 5033 is used to store the data in the second sub - flow.
[0145] In addition, in a possible design, considering that: when a storage node accesses a distributed storage system through a transmission node, for example Figure 9 the storage nodes 501, 502, 503, and 504 can be respectively connected to the transmission nodes 5051, 5052, 5053, and 5054 to access the distributed storage system 50. After each transmission node receives the sub - flow sent to each storage node, it can process the sub - flow according to the priority corresponding to the priority identifier in the sub - flow according to the content of S303 above, so as to improve the utilization efficiency of the scheduling resources of each transmission node and each storage node.
[0146] Next, taking Figure 9 the distributed storage system 50 as an example, the specific process of a sending node (specifically, it can be the computing node 505, a storage node in the distributed storage system 50, or a device outside the distributed storage system 50) sending data to the storage nodes 501, 502, 503, and 504 in the distributed storage system 50 and each storage node storing the data will be introduced:
[0147] First, the sending node can obtain each sub - flow in the co - flow with reference to the content of S301 and S302 above and send the sub - flows including the priority identifier to each storage node (i.e., storage node 501, storage node 502, storage node 503, and storage node 504).
[0148] After that, when each sub - flow is transmitted to each transmission node (i.e., transmission node 5051, transmission node 5052, transmission node 5053, and transmission node 5054), each transmission node can process the sub - flow according to the priority corresponding to the priority identifier included in the sub - flow with reference to the content of S303 above. Among them, processing the sub - flow can specifically include: the transmission node determines the order of sending the sub - flows according to the priority corresponding to the priority identifier included in the sub - flow, and sends the sub - flows to the corresponding storage node in this order.
[0149] Among them, in transmission node 5051, transmission node 5052, transmission node 5053, and transmission node 5054, the process of at least two transmission nodes processing the sub - flow can conform to the content of S3031 and S3032.
[0150] In the actual application process, the above - mentioned transmission nodes connected to the storage node (such as transmission node 5051, transmission node 5052, transmission node 5053, and transmission node 5054) can specifically be: switches (such as top - of - rack (TOR) switches or spine switches), routers, or virtual switches, etc. For the specific form of the transmission node, no limitation is made in the embodiments of the present application.
[0151] Next, combined with an example, the process of the sending node 110 determining the priority identifiers included in each sub - flow during the operation of the communication system shown Figure 5 will be introduced:
[0152] In the embodiments of the present application, considering that: before the sending node 110 sends the co - flow K, the FCT (hereinafter referred to as the historical FCT) of each receiving node processing the data flow from the sending node 110 can be used to predict the FCT of each receiving node processing the sub - flows in the co - flow K later. Exemplarily, before the receiving node 121 receives the sub - flow in the co - flow K, the FCT of the receiving node 121 processing the data flow from the sending node 110 according to a certain priority (taking priority 1 as an example) in the scheduling policy is 10 us. Then, when the load of the receiving node 121 does not change drastically, the FCT of the receiving node 121 processing the sub - flow in the co - flow K according to priority 1 is also approximately 10 us.
[0153] Further, when determining the priority identifiers included in each sub-flow in the co-flow K, the historical FCTs when the multiple receiving nodes corresponding to the co-flow K (taking n receiving nodes as an example, where n is a positive integer greater than 1) respectively process the data stream from the sending node 110 can be used to determine the priority identifiers included in each sub-flow. In this way, when each receiving node processes the sub-flow according to the priority corresponding to the priority identifier, the completion processing time can be close to the completion processing time of other receiving nodes among the n receiving nodes, thereby narrowing the time difference for processing each sub-flow.
[0154] Specifically, as Figure 10 shown, the operation process of the communication system 10 may include:
[0155] S601. The sending node 110 obtains the FCTs when each receiving node respectively processes the data stream from the sending node 110.
[0156] In a possible design, the FCT of a receiving node for processing the data stream from the sending node 110 can be determined according to the time difference between the sending node 110 sending the data stream to the receiving node and the sending node 110 receiving the feedback message (the feedback message indicates the completion of processing the data stream) from the receiving node.
[0157] As Figure 10 shown, when the sending node 110 sends the data stream a to the receiving node 121, the time stamp t1 is recorded; in addition, when the sending node 110 receives the feedback message from the receiving node 121, the time stamp t2 is recorded. Then, the FCT of the receiving node 121 for processing the data stream a from the sending node 110 can be represented by t2 - t1.
[0158] Similarly, Figure 10 for the receiving node 122, the FCT of processing the data stream b from the sending node 110 can be represented by t4 - t3; the FCT of processing the data stream c from the sending node 110 by the receiving node 122 can be represented by t6 - t5.
[0159] In addition, among the FCTs obtained by the sending node 110, it may specifically include: the FCTs when the receiving node processes the data stream from the sending node 110 according to different priorities.
[0160] For example, when the sending node 110 sends the data stream a to the receiving node 121, a priority identifier is included in the data stream a, and the receiving node 121 can process the data stream a according to the priority corresponding to the priority identifier (assumed to be priority 1) and send a feedback message after completing the processing of the data stream a. In this way, t2 - t1 can represent the FCT of the receiving node 121 for processing the data stream from the sending node 110 according to priority 1.
[0161] Exemplarily, the FCT when each receiving node that the sending node 110 obtains processes the data stream from the sending node 110 can be expressed as shown in Table 1 below:
[0162] Table 1
[0163]
[0164]
[0165] Among them, T 11 represents the FCT when the receiving node 121 processes the data stream from the sending node 110 according to priority 1, and T 21 represents the FCT when the receiving node 121 processes the data stream from the sending node 110 according to priority 2, and so on.
[0166] S602. The sending node 110 determines the priority identifier included in each sub-stream according to the historical FCT when each receiving node processes the data stream from the sending node 110.
[0167] The following takes the process of the sending node 110 determining the priority identifier (hereinafter referred to as priority identifier p1) included in the sub-stream (hereinafter referred to as sub-stream f1) received by the receiving node 121 as an example to introduce the implementation process of S602. Specifically, S602 may include:
[0168] S602a. The sending node 110 determines the priority identifier p1 included in the sub-stream f1 received by the receiving node 121 according to the historical FCT when n receiving nodes corresponding to the co-flow K (where n is a positive integer greater than 1) process the data stream from the sending node 110.
[0169] The following introduces the process of S602a through two implementation processes respectively:
[0170] In the first implementation process, in the embodiments of the present application, it is considered that: on the one hand, the historical FCT when n receiving nodes corresponding to the co-flow process the data stream from the sending node 110 can be used to predict the CCT of the co-flow, so as to determine a reference duration for indicating the CCT of the co-flow K. On the other hand, the FCT for each receiving node to process the sub-stream can be made less than and as close as possible to the reference duration. In this way, the time difference for each sub-stream in the co-flow K to complete processing can be reduced. Therefore, S602a can be implemented through the following processes of S602a1-S602a3:
[0171] S602a1. The sending node 110 determines the reference duration T according to the historical FCT when n receiving nodes corresponding to the co-flow process the data stream from the sending node 110.
[0172] Among them, the reference duration T is used to indicate the CCT of the co-flow K.
[0173] In a possible design, the reference duration T can satisfy the following formula (1):
[0174] T = min(t c1 , t c2 ,..., t cm ) Formula (1)
[0175] Among them, t cx represents the maximum value of the historical FCT when each receiving node processes the data stream from the sending node 110 according to the priority x. For example, in combination with Table 1, t c1 satisfies the following formula (2):
[0176] t c1 = max(T 11 , T 12 , T 13 ) Formula (2)
[0177] t c2 satisfies the following formula (3):
[0178] t c2 = max(T 21 , T 22 , T 23 ) Formula (3)
[0179] t cm satisfies the following formula (4):
[0180] t cm = max(T m1 , T m2 , T m3 ) Formula (4)
[0181] Exemplarily, assume that for receiving node 121, receiving node 122, and receiving node 123, the historical FCTs when the three receiving nodes process the data stream from the sending node 110 are as shown in Table 2 below:
[0182] Table 2
[0183]
[0184] It can be seen that, among them, when the three receiving nodes process the data stream from the sending node 110 according to priority 1 respectively, the maximum value of the historical FCT is 30 us (i.e., max(10 us, 20 us, 30 us), max(30 us, 36 us, 46 us)); when the three receiving nodes process the data stream from the sending node 110 according to priority 2 respectively, the maximum value of the historical FCT is 36 us (i.e., max(16 us, 26 us, 36 us)); when the three receiving nodes process the data stream from the sending node 110 according to priority 3 respectively, the maximum value of the historical FCT is 46 us (i.e., max(26 us, 36 us, 46 us)). Then the reference duration T is 30 us (i.e., max(30 us, 36 us, 46 us)).
[0185] S602a2. The sending node 110 determines the first FCT in the FCT set (hereinafter referred to as the first FCT set for convenience of description) that is less than the reference duration T and is closest to the reference duration T.
[0186] Among them, the first FCT set includes the historical FCTs when the receiving node 121 processes the data stream from the sending node 110 according to different priorities.
[0187] For example, in Table 1, the historical FCT when the receiving node 121 processes the data stream from the sending node 110 according to priority 1 is T 11 , the historical FCT when the receiving node 121 processes the data stream from the sending node 110 according to priority 2 is T 21 , and so on. Then the first FCT set may include: T in Table 1 11 , T 21 ,..., T m1 .
[0188] Furthermore, the first FCT may specifically be one of T 11 , T 21 ,..., T m1 that is less than the reference duration T and is closest to the reference duration T.
[0189] Continuing with the example shown in Table 2, at this time the reference duration T is 30 us, and the first FCT set includes: 10 us, 16 us, 26 us. Then, the first FCT that is less than 30 us and is closest to 30 us is 26 us.
[0190] S602a3. The sending node 110 determines the priority identifier p1 included in the sub - flow f1 received by the receiving node 121 in the co - flow K according to the priority corresponding to the first FCT.
[0191] For example, assuming that the first FCT is T in Table 1 11, the priority corresponding to the first FCT is Priority 1, and then the priority identifier p1 can be determined as the identifier corresponding to Priority 1.
[0192] Continuing with the example shown in Table 2, the priority corresponding to the first FCT (i.e., 26 us) is Priority 3, then the priority identifier p1 is determined as the identifier corresponding to Priority 3.
[0193] After determining the priority identifiers included in each sub-flow by referring to the process of S602a1 - S602a3 above, the co-flow service can be executed by referring to the content of S301 - S305.
[0194] In the second implementation process, considering that: in the actual application process, the sending node 110 may not be able to fully obtain the historical FCTs when n receiving nodes process the data stream from the sending node 110 according to different priorities respectively. For example, there are cases of partial data missing in Table 1 or Table 2. In this case, the reference duration T calculated by the above formula (1) may not accurately indicate the CCT of the co-flow. Furthermore, as Figure 11 shown, S602a can be implemented through the following S602a4 - S602a6 process:
[0195] S602a4. The sending node 110 determines the reference duration T' according to the historical FCTs when n receiving nodes corresponding to the co-flow process the data stream from the sending node 110 respectively.
[0196] Among them, the reference duration T' is used to indicate the CCT of the co-flow K.
[0197] Among them, the calculation process of the reference duration T' can refer to the process of calculating the reference duration T through the above formula (1). Among them, the missing data can not participate in the calculation.
[0198] For example, taking n receiving nodes including receiving node 121, receiving node 122, and receiving node 123 as an example, the historical FCTs when the three receiving nodes process the data stream from the sending node 110 respectively are shown in Table 3 below:
[0199] Table 3
[0200]
[0201] Among them, the historical FCT when receiving node 121 processes the data stream from the sending node 110 according to Priority 3, and the data of the historical FCT when receiving node 123 processes the data stream from the sending node 110 according to Priority 2 are missing. Then, other data is used to calculate the reference duration T'. For example, when calculating the maximum value t of the historical FCTs when each receiving node processes the data stream from the sending node 110 according to Priority 1 according to formula (2) c1 when, where T11 is missing, then t can be determined using cm t = max(T m2 , T m3 ). cm Similarly, when calculating t according to formula (3), c2 t can be determined using c2 t = max(T 21 , T 22 ). c2 Then, when calculating the reference duration T' using formula (1), the above t c1 and t c2 are used for the calculation.
[0202] S602a5. The sending node 110 determines the second FCT in the FCT set (hereinafter referred to as the second FCT set for convenience of description) that is closest to the reference duration T'.
[0203] Among them, the second FCT set includes the historical FCTs when the receiving node 121 processes the data stream from the sending node 110 according to different priorities. For example, in Table 3, the second FCT set includes: T 21 ,..., T m1 . Further, the second FCT can specifically be the one in T 21 ,..., T m1 that is closest to the reference duration T.
[0204] In addition, when the sending node 110 cannot obtain the historical FCTs when the receiving node 121 processes the data stream from the sending node 110 according to different priorities, for example, the FCTs obtained by the sending node 110 are as shown in Table 4:
[0205] Table 4
[0206]
[0207] Among them, the table entries corresponding to the receiving node 121 are all missing. At this time, the priority identifier of the preset priority can be used as the priority identifier p1. For example, the priority identifier corresponding to the middle priority among the m priorities can be used as the priority identifier p1.
[0208] S602a6. The sending node 110 determines the priority identifier p1 included in the sub-flow f1 received by the receiving node 121 in the co-flow K in one of the following three ways.
[0209] Method 1: When the second FCT is much smaller than the reference duration T' and the second FCT set does not include the FCT corresponding to the first target priority, it is determined that the priority identifier p1 is the priority identifier corresponding to the first target priority.
[0210] Among them, the first target priority is one level lower than the priority corresponding to the second FCT.
[0211] That is to say, when the second FCT is much smaller than the reference duration T', and the FCT corresponding to the first target priority is missing in the second FCT set, it is necessary to lower the priority of the receiving node 121 to process the sub-flow f1, and then use the priority identifier corresponding to the first target priority as the priority identifier p1.
[0212] In one implementation, the second FCT is much smaller than the reference duration T', which may specifically include: the second FCT satisfies the following formula (5).
[0213] Second FCT < D k < T' Formula (5)
[0214] Among them, D k satisfies the following formula (6):
[0215] D k = α1 × t d1 + α1 × t d2 +... + α m × t dm Formula (6)
[0216] Among them, t dx represents the average value of the historical FCT when each receiving node processes the data stream from the sending node 110 according to the priority x. For example, in combination with Table 1, t d1 satisfies the following formula (7):
[0217] t d1 = avg(T 11 , T 12 , T 13 ) Formula (7)
[0218] t c2 satisfies the following formula (3):
[0219] t d2 = avg(T 21 , T 22 , T 23 ) Formula (8)
[0220] t cm satisfies the following formula (4):
[0221] t dm = avg(T m1 , T m2 , T m3 ) Formula (9)
[0222] α x represents the weight of priority x in the scheduling policy. For example, when each receiving node processes each sub-flow in the co-flow according to each priority in the SP scheduling policy, α1, α2, ..., α m are respectively the weights of priority 1, priority 2, ..., priority m in the SP scheduling policy.
[0223] Method 2: When the second FCT is greater than the reference duration T' and the second FCT set does not include the FCT corresponding to the second target priority, then determine that the priority identifier p1 is the priority identifier corresponding to the second target priority.
[0224] Among them, the first target priority is one level higher than the priority corresponding to the second FCT.
[0225] That is to say, when the second FCT is higher than the reference duration T' and the FCT corresponding to the second target priority is missing in the second FCT set, it is necessary to increase the priority of the receiving node 121 to process the sub-flow f1, and then use the priority identifier corresponding to the second target priority as the priority identifier p1.
[0226] Method 3: When the second FCT does not meet the conditions in Method 1 and Method 2, then determine the priority identifier p1 included in the sub-flow f1 received by the receiving node 121 in the co-flow K according to the priority corresponding to the second FCT.
[0227] That is to say, when the second FCT does not meet the conditions in Method 1 and Method 2, the priority identifier corresponding to the priority corresponding to the second FCT can be used as the priority identifier p1.
[0228] After determining the priority identifiers included in each sub-flow by referring to the above process of S602a4 - S602a6, the co-flow service can be executed by referring to the content of S301 - S305.
[0229] In addition, in a possible design, after the sending node 110 determines the priority identifiers included in each sub-flow in the co-flow K according to the content of the above S601 - S602, the priority identifiers included in each sub-flow in the co-flow K can be recorded in a preset data set. So that when sending other co-flows (which can be called co-flow K1) to each receiving node in the co-flow K later, the priority identifiers included in each sub-flow in the co-flow K in the preset data set can be used as the priority identifiers included in each sub-flow in the co-flow K1. Thus, it is avoided that the priority identifiers included in each sub-flow in the co-flow K need to be determined according to the content of the above S601 - S602 every time a co-flow is sent.
[0230] For example, the preset data set can be as shown in Table 5 below:
[0231] Table 5
[0232]
[0233] Among them, Table 5 records the priority identifiers in the sub-streams corresponding to each receiving node when a co-flow is sent to different receiving nodes. For example, when the sending node 110 sends a co-flow to the receiving nodes 121, 122, and 123, it can be known by looking up the table that the sub-stream corresponding to the receiving node 121 includes the priority identifier p1, the sub-stream corresponding to the receiving node 122 includes the priority identifier p2, and the sub-stream corresponding to the receiving node 123 includes the priority identifier p3. Another example is that when the sending node 110 sends a co-flow to the receiving nodes 121 and 122, it can be known by looking up the table that the sub-stream corresponding to the receiving node 121 includes the priority identifier p4, and the sub-stream corresponding to the receiving node 122 includes the priority identifier p5.
[0234] In addition, an embodiment of the present application further provides a computer-readable storage medium, in which instructions are stored. When the instructions run on the sending node and the receiving node of the communication system, the communication system can perform all or part of the content of the method provided in S301-S305 or S601-S602 above in the embodiment of the present application.
[0235] An embodiment of the present application further provides a computer program product containing instructions. When it runs on the sending node and the receiving node of the communication system, the communication system can perform all or part of the content of the method provided in S301-S305 or S601-S602 above in the embodiment of the present application.
[0236] The functions, actions, operations, steps, etc. in the above embodiments can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using a software program, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions can be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more integrated media. The available medium can be a magnetic medium (such as a floppy disk, hard disk, magnetic tape), an optical medium (such as a DVD), or a semiconductor medium (such as a solid state disk (SSD)), etc.
[0237] The terms "first", "second", "third", "fourth", etc. (if any) in the description, claims and the above-mentioned drawings of the present application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchanged under appropriate circumstances so that the embodiments described herein can be implemented in an order other than that illustrated or described herein. In addition, the terms "comprising" and "having" and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product or device comprising a series of steps or units need not be limited to those steps or units clearly listed, but may include other steps or units not clearly listed or inherent to these processes, methods, products or devices. Additionally, in this embodiment, "at least one" means one or more, "a plurality" means two or more, and other quantifiers are similar. "And / or" describes the relationship between related objects and indicates that three relationships can exist. For example, A and / or B can mean: A exists alone, A and B exist simultaneously, and B exists alone. In addition, for elements where the singular forms "a", "an" and "the" appear, unless the context clearly dictates otherwise, they do not mean "one or only one", but rather "one or more than one". For example, "a device" means one or more such devices. Furthermore, "at least one of..." means one or any combination of the subsequent related objects. For example, "at least one of A, B, and C" includes A, B, C, AB, AC, BC, or ABC. In the written description of this embodiment, the character " / " generally indicates an "or" relationship between the preceding and following related objects; in the formulas of this embodiment, the character " / " indicates a "division" relationship between the preceding and following related objects.
Claims
1. A communication system, characterized in that, The communication system includes a sending node, a first receiving node, and a second receiving node, where: The sending node is configured to send a first sub - flow to the first receiving node, and the first sub - flow includes a first priority identifier; The sending node is further configured to send a second sub - flow to the second receiving node, and the second sub - flow includes a second priority identifier. The first sub - flow and the second sub - flow belong to the same co - flow Coflow; The first receiving node is configured to preferentially process the first sub - flow according to the first priority corresponding to the first priority identifier; The second receiving node is configured to delay processing the second sub - flow according to the second priority corresponding to the second priority identifier, so that the time difference between the first receiving node completing the processing of the first sub - flow and the second receiving node completing the processing of the second sub - flow satisfies: less than at least one of the time difference between the first receiving node and the second receiving node completing the processing of the first sub - flow and the second sub - flow according to the first priority, and less than the time difference between the first receiving node and the second receiving node completing the processing of the first sub - flow and the second sub - flow according to the second priority.
2. The communication system according to claim 1, wherein The communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
3. The communication system according to claim 2, wherein The distributed storage system includes hard disks; each hard disk includes a network card, a processor, and a storage medium; the first receiving node and / or the second receiving node is a hard disk in the distributed storage system; When the first receiving node is the first hard disk in the distributed storage system, the network card in the first hard disk is configured to receive the first sub - flow, the processor in the first hard disk is configured to preferentially process the first sub - flow according to the first priority identifier, and the storage medium in the first hard disk is configured to store the data in the first sub - flow; When the second receiving node is the second hard disk in the distributed storage system, the network card in the second hard disk is configured to receive the second sub - flow, the processor in the second hard disk is configured to delay processing the second sub - flow according to the second priority identifier, and the storage medium in the second hard disk is configured to store the data in the first sub - flow.
4. The communication system according to claim 2 or 3, characterized in that, The communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes connected to the storage nodes in the distributed storage system.
5. The communication system according to any one of claims 1 - 4, wherein The sending node is further configured to determine the first priority identifier according to the historical flow completion time FCT when the n receiving nodes corresponding to the co - flow respectively process the data stream from the sending node, where n is a positive integer greater than 1.
6. The communication system according to claim 5, wherein The sending node is further configured to determine the first priority identifier according to the historical flow completion time FCT when the n receiving nodes corresponding to the co - flow respectively process the data stream from the sending node, including: The sending node is further configured to determine a reference duration according to the historical flow completion time (FCT) when the n receiving nodes corresponding to the coflow respectively process the data stream from the sending node; the reference duration is used to indicate the coflow's CCT. The sending node is further configured to determine a first FCT in the first FCT set that is less than and closest to the reference duration; wherein, the first FCT set includes: the historical FCTs respectively corresponding to when the first receiving node processes the data stream from the sending node according to different priorities. The sending node is further configured to determine the first priority identifier according to the priority corresponding to the first FCT.
7. A communication method, characterized in that, The communication method is applied to a communication system, the communication system includes a sending node, a first receiving node, and a second receiving node, and the method includes: The sending node sends a first sub-stream to the first receiving node, and the first sub-stream includes a first priority identifier. The sending node sends a second sub-stream to the second receiving node, the second sub-stream includes a second priority identifier, and the first sub-stream and the second sub-stream belong to the same coflow. The first receiving node preferentially processes the first sub-stream according to the first priority corresponding to the first priority identifier. The second receiving node processes the second sub-stream later according to the second priority corresponding to the second priority identifier, so that the time difference between the first receiving node completing the processing of the first sub-stream and the second receiving node completing the processing of the second sub-stream satisfies: being less than the time difference between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the first priority, and being less than at least one of the time differences between the first receiving node and the second receiving node completing the processing of the first sub-stream and the second sub-stream according to the second priority.
8. The communication method according to claim 7, wherein The method further includes: The sending node determines the first priority identifier according to the historical flow completion time (FCT) when the n receiving nodes corresponding to the coflow respectively process the data stream from the sending node, where n is a positive integer greater than 1.
9. The communication system according to claim 8, wherein The sending node determines the first priority identifier according to the historical flow completion time (FCT) when the n receiving nodes corresponding to the coflow respectively process the data stream from the sending node, including: The sending node determines a reference duration according to the historical FCT when the n receiving nodes corresponding to the coflow respectively process the data stream from the sending node; the reference duration is used to indicate the coflow's CCT. The sending node determines a first FCT in the first FCT set that is less than and closest to the reference duration; wherein, the first FCT set includes: the historical FCTs respectively corresponding to when the first receiving node processes the data stream from the sending node according to different priorities. The sending node determines the first priority identifier according to the priority corresponding to the first FCT.
10. The communication method according to any one of claims 7-9, characterized in that, The communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively storage nodes in the distributed storage system.
11. The communication method according to claim 10, wherein The communication system is a distributed storage system, and the first receiving node and the second receiving node are respectively transmission nodes in the distributed storage system that are connected to the storage nodes.
12. A computer-readable storage medium, characterized in that, The storage medium stores a computer program, and when the computer program is executed by a sending node and a receiving node in the communication system, the communication system executes the method according to any one of claims 7-11.
13. A computer program product, characterized in that, The computer program product includes instructions, and when the instructions run on a sending node and a receiving node in the communication system, the communication system executes the method according to any one of claims 7-11.
Citation Information
Cited By
Communication system, communication method, and apparatus
WO2025138824A1