CN115378872B - Flow control method, system, computer equipment and readable storage medium - Google Patents

Flow control method, system, computer equipment and readable storage medium Download PDF

Info

Publication number
CN115378872B
CN115378872B CN202211001271.XA CN202211001271A CN115378872B CN 115378872 B CN115378872 B CN 115378872B CN 202211001271 A CN202211001271 A CN 202211001271A CN 115378872 B CN115378872 B CN 115378872B
Authority
CN
China
Prior art keywords
credit
message
link
value
action value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211001271.XA
Other languages
Chinese (zh)
Other versions
CN115378872A (en
Inventor
张珠玉
张璐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202211001271.XA priority Critical patent/CN115378872B/en
Publication of CN115378872A publication Critical patent/CN115378872A/en
Application granted granted Critical
Publication of CN115378872B publication Critical patent/CN115378872B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The application discloses a flow control method, a system, a computer device and a readable storage medium, wherein the method comprises the following steps: the initiator initiates a link establishment flow, initiates an IO message in each credit value period based on the link and sends the IO message to the target; after receiving the IO message, the target party sets a link credit upper limit value according to the link information, and calculates a link credit action value based on the link credit upper limit value and a credit value in the current credit value period; the target sets a credit action value in a fixed field of the IO message, and returns the IO message with the credit action value to the initiator; after receiving the IO message with the credit action value, the initiator analyzes the credit action value in a fixed field of the returned message, and executes corresponding action based on the credit action value. By the scheme of the application, message congestion of communication among the cluster nodes is avoided, and high concurrency and low time delay of the communication among the cluster nodes are realized.

Description

Flow control method, system, computer equipment and readable storage medium
Technical Field
The present application relates to the field of computer technologies, and in particular, to a flow control method, a system, a computer device, and a readable storage medium.
Background
In the unified storage system, the safe and reliable performance requirements of data are realized through the functional modules such as data synchronization, mirror image mapping, redundant backup and the like. However, due to functional modules such as data synchronization, mirror image mapping, redundant backup and the like, a large amount of data communication exists among cluster nodes. Besides the performance requirement of high concurrency and high bandwidth of trunking communication, the low time delay and high real-time of event synchronization among nodes are ensured, and the congestion risk during communication burst is avoided.
Disclosure of Invention
In view of this, the present application proposes a flow control method, system, computer device and readable storage medium, and designs a credit policy to implement flow control of storage system trunking communication, where the credit policy not only solves the problem of flow control of early storage system trunking communication, but also can adapt to multiple protocol models, multiple hardware link types, and can cope with more complex field environments, and make a contribution to the goals of high performance, high availability, high reliability, etc. of the storage system.
Based on the above objects, an aspect of the embodiments of the present application provides a flow control method, which specifically includes the following steps performed at a transport layer:
the initiator initiates a link establishment flow, initiates an IO message in each credit value period based on the link, and sends the IO message to the target;
after receiving the IO message, the target party sets a credit upper limit value of the link according to the information of the link, and calculates a credit action value of the link based on the credit upper limit value of the link and a credit value in a current credit value period;
the target sets the credit action value in a fixed field of the IO message, and returns the IO message with the credit action value to the initiator;
after receiving the IO message with the credit action value, the initiator analyzes the credit action value in a fixed field of the return message, and executes corresponding action based on the credit action value.
In some embodiments, setting the upper confidence limit value for the link based on the information for the link includes:
the upper confidence limit for the link is set based on the type of the link, the number of port resources, and the maximum confidence between the target and the initiator.
In some embodiments, the credit action value includes increasing, decreasing, and constant.
In some embodiments, calculating the credit action value for the link based on the upper credit limit value for the link and a credit value for a current credit value period includes:
subtracting the credit value of the link in the current credit value period from the credit upper limit value of the link to obtain a calculation result, and judging the calculation result;
determining that the credit action value of the link is increasing in response to the calculation result being greater than zero;
determining that the credit action value of the link is reduced in response to the calculation result being less than zero;
and determining that the credit action value of the link is unchanged in response to the calculation result being equal to zero.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the increase of the credit action value, restarting an IO message, destroying and recovering the IO message with the credit action value, and restarting an IO message after destroying and recovering the IO message with the credit action value.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the credit action value being reduced, destroying and recycling the received IO message with the credit action value set.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the credit action value being unchanged, destroying and recycling the received IO message with the credit action value set, and then reinitiating an IO message.
In another aspect of the embodiment of the present application, there is also provided a flow control system, including:
the sending module is configured to initiate a link establishment flow by an initiator, initiate an IO message in each credit value period based on the link, and send the IO message to a target;
the receiving module is configured to set a reliability upper limit value of the link according to the information of the link after the target receives the IO message, and calculate a reliability action value of the link based on the reliability upper limit value of the link and a reliability value in a current reliability value period;
the return module is configured to set the credit action value in a fixed field of the IO message by the target party and return the IO message with the credit action value to the initiator;
and the execution module is configured to analyze the credit action value in a fixed field of the return message after the initiator receives the IO message with the credit action value set, and execute corresponding actions based on the credit action value.
In yet another aspect of the embodiment of the present application, there is also provided a computer apparatus, including: at least one processor; and a memory storing a computer program executable on the processor, which when executed by the processor, performs the steps of the method as above.
In yet another aspect of the embodiments of the present application, there is also provided a computer-readable storage medium storing a computer program which, when executed by a processor, implements the method steps as described above.
The application has at least the following beneficial technical effects: initiating a link establishment flow through an initiator, initiating an IO message in each credit value period based on the link, and sending the IO message to a target; after receiving the IO message, the target party sets a reliability upper limit value of the link according to the information of the link, and calculates a reliability action value of the link based on the reliability upper limit value of the link and the reliability value in the current reliability value period; the target sets a credit action value in a fixed field of the IO message, and returns the IO message with the credit action value to the initiator; after receiving the IO message with the credit action value, the initiator analyzes the credit action value in a fixed field of the returned message, and executes a corresponding action based on the credit action value to control the number of the IO messages in the link, so that message congestion of communication among cluster nodes is avoided, high concurrency and low time delay are realized, multiple protocol models and multiple hardware link types can be adapted, more complex field environments can be dealt with, and high performance, high availability, high reliability and other targets of the storage system are contributed.
Drawings
In order to more clearly illustrate the embodiments of the application or the technical solutions in the prior art, the drawings that are necessary for the description of the embodiments or the prior art will be briefly described, it being obvious that the drawings in the following description are only some embodiments of the application and that other embodiments may be obtained according to these drawings without inventive effort for a person skilled in the art.
FIG. 1 is a flow chart of an embodiment of a flow control method according to the present application;
FIG. 2 is a flow chart of an embodiment of flow control based on a confidence policy provided by the present application;
FIG. 3 is a schematic diagram of an embodiment of a flow control system according to the present application;
FIG. 4 is a schematic diagram of a computer device according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of an embodiment of a computer readable storage medium according to the present application.
Detailed Description
In order to make the objects, technical solutions and advantages of the present application more apparent, the following embodiments of the present application will be described in further detail with reference to the accompanying drawings.
It should be noted that, in the embodiments of the present application, all the expressions "first" and "second" are used to distinguish two entities with the same name but different entities or different parameters, and it is noted that the "first" and "second" are only used for convenience of expression, and should not be construed as limiting the embodiments of the present application, and the following embodiments are not described one by one.
In view of the above object, a first aspect of the embodiments of the present application proposes an embodiment of a flow control method. As shown in fig. 1, the method comprises the following steps performed at the transport layer:
s10, an initiator initiates a link establishment flow, initiates an IO message in each credit value period based on the link, and sends the IO message to a target;
s20, after receiving the IO message, the target side sets a credit upper limit value of the link according to the information of the link, and calculates a credit action value of the link based on the credit upper limit value of the link and a credit value in a current credit value period;
s30, the target sets the credit action value in a fixed field of the IO message, and returns the IO message with the credit action value to the initiator;
s40, after receiving the IO message with the credit action value, the initiator analyzes the credit action value in a fixed field of the return message, and executes corresponding action based on the credit action value.
In step S10, the initiator initiates a link establishment procedure, initiates an IO message in each credit value period based on the link, and sends the IO message to the target. And dynamically adjusting the number of concurrent IO (Input/Output) on a link by adopting a credit value (credit), and adjusting according to the period, wherein only one IO message is initiated at a time, so that each IO is uniformly distributed in each link of the whole communication flow, and the congestion of a single link is avoided.
In step S20, after receiving the IO message, the target side sets a reliability upper limit value of the link according to the information of the link, and calculates a reliability action value of the link based on the reliability upper limit value of the link and the reliability value in the current reliability value period. And setting different upper limit values of the reliability according to different hardware link types, and fully utilizing hardware resources. Combining a path preference strategy, namely setting different priorities for different types of hardware links, namely setting a link type with high priority, wherein the set upper limit value of the reliability is large, only one default IO (input/output) keeps link connection at the beginning of link establishment, and modifying the upper limit value of the reliability if the link is a preference path; otherwise, one IO is maintained to be communicated and used as a backup link. For example, in a PCIe multi-control cluster system, the credit setting parameters are adjusted, so as to realize the high performance characteristic exertion of the PCIe link. And setting corresponding credit parameters of the RoCE interconnection cluster built on the basis of the RDMA link, and combining the advantages of multiple queues and queue depth of the NVMe protocol, so that the performance of the storage system is greatly improved.
In step S30, the target sets a credit action value in a fixed field of the IO message, and returns the IO message with the credit action value set to the initiator. The credit action value includes increasing, decreasing and constant. And adding the credit action value to a fixed field of the IO message, and returning the IO message added with the credit action value to the initiator to inform the initiator of execution.
In step S40, after receiving the IO message with the credit action value set, the initiator parses the credit action value in the fixed field of the return message, and performs a corresponding action based on the credit action value to control the number of IO messages in the link.
By the flow control method, the performance requirement of high concurrency and low time delay of communication among cluster nodes of the storage system is met, and message congestion is avoided; the system can also adapt to various protocol models and various hardware link types, can cope with more complex field environments, and realizes high performance, high availability and high reliability of the storage system.
In some embodiments, setting the upper confidence limit value for the link based on the information for the link includes:
the upper confidence limit for the link is set based on the type of the link, the number of port resources, and the maximum confidence between the target and the initiator.
In one embodiment, the credits are different for different links. Due to the physical difference of hardware links and the inherent difference in communication performance, different upper reliability limits are set for different links to ensure the stability and reliability of the storage system. The method comprises the following steps:
PCIe (Peripheral Component Interconnect Express, high speed serial computer expansion bus standard) link: 192.
IP link: 64;
RDMA (Remote Direct Memory Access), remote direct data Access) Link: 30_num, namely, each link is allocated with 30 IOs, and the number of the queues is determined by a driver;
other links: (total upper bound confidence value-assigned value)/number of remaining links, other links, meaning links of non-physical type, including: cross-frame links, cross-cluster links.
By setting different upper reliability limits for different links and different scenes, the hardware advantages of the physical device can be fully exerted.
In a specific embodiment, the credit value of the redundant link is set to 0. In combination with the characteristics of storage system cluster configuration, a redundant link is generally configured, for example, a main link is a ntb (Non-Transparent Bridge, non-transparent bridge protocol) link, and an FC link is additionally added as a redundant link. Based on the path preference strategy, the credit value of the redundant link is set to be 0, namely only one IO maintains the link connection state, so that the memory and CPU resources are saved.
When the high priority link fault exits, the redundant link is immediately activated, and the credit upper limit value is modified during the calculation of the credit period, so that the credit action instruction (increase) is calculated, and the IO concurrency is improved. And sending a credit action instruction to the initiator when the target sends the message back, and responding the instruction by the initiator to execute the IO application increasing action.
In one embodiment, a credit policy for a PCIe multi-control environment is described.
Compared with the prior storage cluster, the PCIe multi-control environment has the advantages that PCIe links are added, the function of supporting multiple PCIe links is added between the same-frame controllers, a cross-frame PCIe link topology mode is also added, and the original credibility calculation framework is adjusted accordingly.
The original PCIe link only refers to an on-board ntb link in the same frame, and the upper reliability limit is set to 192. The added external PCIe link is also set to 192 through computational analysis, and the sum of all link credits (including the external remote copy link) satisfies the condition that is not greater than the total upper limit.
Through test verification, the communication performance of the PCIe multi-control cluster is obviously better than that of a multi-control cluster built by FC links.
In a particular embodiment, a credit policy for an RDMA Link interconnect Environment is described.
To exploit the high concurrency low latency characteristics of RDMA links, the architecture of the storage system is promoted at the underlying hardware level, following the NVMe (Nonvolatile Memory Express, non-volatile memory protocol standard) protocol architecture, with RoCE (RDMA over Converged Ethernet, an interconnect technology that allows RDMA protocols to be used over ethernet). Correspondingly, the upper software part of the trunking communication is modified.
The NVMe standard protocol reduces CPU overhead, simplifies operation, reduces delay, and improves IOPS and throughput. Meanwhile, the advantage of the NVMe protocol queue depth QD is that the IO is evenly distributed to each queue in a polling mode in the communication layer CL, and due to the limitation of the queue depth (the current system queue depth is limited to 32 IOs), the comprehensive calculation results in the credit=30×queue_num, the number of the queues queue_num is currently set to 16, and the RDMA link credit=30×15=450 is far greater than the concurrency number of PCIe links except the management queue, so that the advantage of the network structure is fully exerted.
The reliability policy controls the number of IO concurrency on links between nodes based on the reliability value, adopts a dynamic adjustment mode to enable the number of the IO concurrency on the links to reach a theoretical upper limit, and distributes all the IOs on the links uniformly according to the characteristics of trunking communication (waiting time when the IOs reach a target end in idle). And calculating an IO upper limit at the target end according to different link types, and generating a credit action instruction. And the IO initiating terminal executes a flow control action according to the credit action instruction. Meanwhile, the redundant link saves resources, and the credit policy sets that only one IO of the link maintains a connected state. The credit policy may adapt to a variety of protocol models, a variety of hardware link types, and may cope with more complex field environments. The reliability policy is improved and perfected in the PCIe multi-control cluster and RDMA interconnection cluster, and the physical advantages of new hardware of the new technology are better exerted. The reliability policy realizes high concurrency and low time delay by dynamically adjusting the IO concurrency number in the cluster communication environment of the storage system, improves the IOPS and throughput to the maximum extent, solves the fluctuation problem of resource use due to the balanced distribution of IO data in the whole flow of the link, realizes the stability and reliability of the whole system, and effectively improves the utilization rate of system resources.
In some embodiments, the credit action value includes increasing, decreasing, and constant.
In some embodiments, calculating the credit action value for the link based on the upper credit limit value for the link and a credit value for a current credit value period includes:
subtracting the credit value of the link in the current credit value period from the credit upper limit value of the link to obtain a calculation result, and judging the calculation result;
determining that the credit action value of the link is increasing in response to the calculation result being greater than zero;
determining that the credit action value of the link is reduced in response to the calculation result being less than zero;
and determining that the credit action value of the link is unchanged in response to the calculation result being equal to zero.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the increase of the credit action value, restarting an IO message, destroying and recovering the IO message with the credit action value, and restarting an IO message after destroying and recovering the IO message with the credit action value.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the credit action value being reduced, destroying and recycling the received IO message with the credit action value set.
In some embodiments, performing the respective action based on the credit action value comprises:
and responding to the credit action value being unchanged, destroying and recycling the received IO message with the credit action value set, and then reinitiating an IO message.
In one embodiment, as shown in FIG. 2, a flow chart for flow control based on a credit policy is provided. The specific flow is as follows:
at an exchange layer (Communication Layer, abbreviated as CL), the exchange layer is a transport layer in the OS protocol, and an IO initiator (initiator) initiates a link establishment procedure, initially creates a channel, and sends an IO message to a target, where the initiator and the target are logical instances of a software layer based on physical link establishment.
The target destination of the correspondent node may be set according to the correlation, for example: the method comprises the steps of setting a reliability upper limit value of each link, and calculating a reliability action (action) of the link according to the reliability value and the reliability upper limit value of a current reliability value period (interval 400 ms), wherein the reliability action comprises constant (None), increased (extension) and reduced (withdraw).
When the target sends back the IO message, the fixed field of the IO message is set with a credit action mark obtained by credit calculation, and the initiator is informed to execute the current credit action. If the credit degree action is increased or reduced, only one time of adjustment action instruction is sent, namely the adjustment action instruction is set to be empty, and the calculation result is executed after the next period.
After receiving the IO message, the initiator analyzes the reliability action flag in the fixed field and executes the adjustment action. If action= =none, the number of IO concurrency remains unchanged, and after the current IO is destroyed and recovered, an IO application is started (the number of IO is equivalent to the previous one). If action= =increases, a new IO application is initiated before the current IO is destroyed and recycled, and meanwhile, an IO application is also initiated after the current IO is destroyed and recycled (the number of IOs is increased by 1 than before). If action= =shrink, then after the current IO is destroyed and recycled, no new IO application is initiated (the IO number is reduced by 1 more than before).
When multiple IOs are concurrent, since only one IO is added or subtracted per adjustment, and each IO has different residence time at the target end (if there is a message to be sent, return immediately; if there is no message, wait for a certain time, typically a credit period), all IOs will be distributed approximately equally to each link of the messaging.
According to the embodiment of the application, the communication of the storage system cluster is controlled through the reliability policy, the IO concurrency number on links between nodes is controlled based on the reliability value, the dynamic adjustment mode is adopted to enable the number of the IO concurrency links to reach the theoretical upper limit, all the IOs on the links are uniformly distributed according to the characteristics of the cluster communication (waiting time when the IOs reach the target end in idle time), the high concurrency and low time delay of the storage system cluster communication are realized, the message congestion is avoided, the IOPS (Input/Output Operations Per Second) and throughput are maximally improved, the fluctuation problem of resource use is solved due to the fact that the IO data are uniformly distributed in the whole flow of the links, the stability and the reliability of the whole system are realized, and the utilization rate of the system resources is effectively improved.
Based on the same inventive concept, according to another aspect of the present application, as shown in fig. 3, an embodiment of the present application further provides a flow control system, including:
the sending module 110 is configured to initiate a link establishment flow by the initiator, initiate an IO message in each credit value period based on the link, and send the IO message to the target;
the receiving module 120 is configured to set a reliability upper limit value of the link according to the information of the link after the target receives the IO message, and calculate a reliability action value of the link based on the reliability upper limit value of the link and a reliability value in a current reliability value period;
a return module 130, where the return module 130 is configured to set the credit action value in a fixed field of the IO message by the target party, and return the IO message with the credit action value set to the initiator party;
and the execution module 140 is configured to parse the credit action value in a fixed field of the return message after the initiator receives the IO message with the credit action value set, and execute a corresponding action based on the credit action value.
According to another aspect of the present application, as shown in fig. 4, according to the same inventive concept, an embodiment of the present application further provides a computer device 30, in which the computer device 30 includes a processor 310 and a memory 320, the memory 320 storing a computer program 321 executable on the processor, and the processor 310 executing the steps of the method as above.
The memory is used as a non-volatile computer readable storage medium, and can be used for storing non-volatile software programs, non-volatile computer executable programs and modules, such as program instructions/modules corresponding to the flow control method in the embodiment of the application. The processor executes various functional applications of the system and data processing by running non-volatile software programs, instructions and modules stored in the memory, i.e., implements the flow control method of the method embodiments described above.
The memory may include a memory program area and a memory data area, wherein the memory program area may store an operating system, at least one application program required for a function; the storage data area may store data created according to the use of the system, etc. In addition, the memory may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, the memory optionally includes memory remotely located relative to the processor, the remote memory being connectable to the local module through a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
According to another aspect of the present application, as shown in fig. 5, there is also provided a computer-readable storage medium 40, the computer-readable storage medium 40 storing a computer program 410 which, when executed by a processor, performs the above method.
Finally, it should be noted that, as will be appreciated by those skilled in the art, all or part of the procedures in implementing the methods of the embodiments described above may be implemented by a computer program for instructing relevant hardware, and the program may be stored in a computer readable storage medium, and the program may include the procedures of the embodiments of the methods described above when executed. The storage medium of the program may be a magnetic disk, an optical disk, a read-only memory (ROM), a random-access memory (RAM), or the like. The computer program embodiments described above may achieve the same or similar effects as any of the method embodiments described above.
Those of skill would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as software or hardware depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
The foregoing is an exemplary embodiment of the present disclosure, but it should be noted that various changes and modifications could be made herein without departing from the scope of the disclosure as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. The foregoing embodiment of the present application has been disclosed with reference to the number of embodiments for the purpose of description only, and does not represent the advantages or disadvantages of the embodiments. Furthermore, although elements of the disclosed embodiments may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
It should be understood that as used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly supports the exception. It should also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items.
Those of ordinary skill in the art will appreciate that: the above discussion of any embodiment is merely exemplary and is not intended to imply that the scope of the disclosure of embodiments of the application, including the claims, is limited to such examples; combinations of features of the above embodiments or in different embodiments are also possible within the idea of an embodiment of the application, and many other variations of the different aspects of the embodiments of the application as described above exist, which are not provided in detail for the sake of brevity. Therefore, any omission, modification, equivalent replacement, improvement, etc. of the embodiments should be included in the protection scope of the embodiments of the present application.

Claims (7)

1. A method of flow control, characterized in that the following steps are performed at a transport layer:
the initiator initiates a link establishment flow, initiates an IO message in each credit value period based on the link, and sends the IO message to the target;
after receiving the IO message, the target party sets a credit upper limit value of the link according to the information of the link, and calculates a credit action value of the link based on the credit upper limit value of the link and a credit value in a current credit value period;
the target sets the credit action value in a fixed field of the IO message, and returns the IO message with the credit action value to the initiator;
after receiving the IO message with the credit action value, the initiator analyzes the credit action value in a fixed field of the return message and executes corresponding action based on the credit action value;
wherein performing the corresponding action based on the credit action value comprises:
responding to the increase of the credit action value, restarting an IO message, destroying and recycling the IO message with the credit action value, and restarting an IO message after destroying and recycling the IO message with the credit action value;
responding to the reduction of the credit action value, and destroying and recycling the received IO message with the credit action value;
and responding to the credit action value being unchanged, destroying and recycling the received IO message with the credit action value set, and then reinitiating an IO message.
2. The method of claim 1, wherein setting the upper confidence limit value for the link based on the information for the link comprises:
the upper confidence limit for the link is set based on the type of the link, the number of port resources, and the maximum confidence between the target and the initiator.
3. The method of claim 1, wherein the credit action value comprises increasing, decreasing, and constant.
4. The method of claim 3, wherein calculating a credit action value for the link based on the upper credit limit value for the link and a credit value for a current credit value period comprises:
subtracting the credit value of the link in the current credit value period from the credit upper limit value of the link to obtain a calculation result, and judging the calculation result;
determining that the credit action value of the link is increasing in response to the calculation result being greater than zero;
determining that the credit action value of the link is reduced in response to the calculation result being less than zero;
and determining that the credit action value of the link is unchanged in response to the calculation result being equal to zero.
5. A flow control system, comprising:
the sending module is configured to initiate a link establishment flow by an initiator, initiate an IO message in each credit value period based on the link, and send the IO message to a target;
the receiving module is configured to set a reliability upper limit value of the link according to the information of the link after the target receives the IO message, and calculate a reliability action value of the link based on the reliability upper limit value of the link and a reliability value in a current reliability value period;
the return module is configured to set the credit action value in a fixed field of the IO message by the target party and return the IO message with the credit action value to the initiator;
the execution module is configured to analyze the credit action value in a fixed field of the return message after the initiator receives the IO message with the credit action value set, and execute corresponding actions based on the credit action value;
wherein the execution module is further to:
responding to the increase of the credit action value, restarting an IO message, destroying and recycling the IO message with the credit action value, and restarting an IO message after destroying and recycling the IO message with the credit action value;
responding to the reduction of the credit action value, and destroying and recycling the received IO message with the credit action value;
and responding to the credit action value being unchanged, destroying and recycling the received IO message with the credit action value set, and then reinitiating an IO message.
6. A computer device, comprising:
at least one processor; and
a memory storing a computer program executable on the processor, wherein the processor performs the steps of the method of any one of claims 1 to 4 when the program is executed.
7. A computer readable storage medium storing a computer program, characterized in that the computer program when executed by a processor performs the steps of the method according to any one of claims 1 to 4.
CN202211001271.XA 2022-08-19 2022-08-19 Flow control method, system, computer equipment and readable storage medium Active CN115378872B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211001271.XA CN115378872B (en) 2022-08-19 2022-08-19 Flow control method, system, computer equipment and readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211001271.XA CN115378872B (en) 2022-08-19 2022-08-19 Flow control method, system, computer equipment and readable storage medium

Publications (2)

Publication Number Publication Date
CN115378872A CN115378872A (en) 2022-11-22
CN115378872B true CN115378872B (en) 2023-08-18

Family

ID=84065154

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211001271.XA Active CN115378872B (en) 2022-08-19 2022-08-19 Flow control method, system, computer equipment and readable storage medium

Country Status (1)

Country Link
CN (1) CN115378872B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112134763A (en) * 2020-09-25 2020-12-25 北京浪潮数据技术有限公司 Method, system, equipment and medium for transmitting layered messages among cluster nodes
CN112751778A (en) * 2019-10-30 2021-05-04 阿里巴巴集团控股有限公司 Data transmission control method and device, congestion detection and device and server system
CN114500390A (en) * 2021-12-29 2022-05-13 中国航空工业集团公司西安航空计算技术研究所 RapidIO network flow control method

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150143021A1 (en) * 2012-12-26 2015-05-21 Unisys Corporation Equalizing wear on storage devices through file system controls

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112751778A (en) * 2019-10-30 2021-05-04 阿里巴巴集团控股有限公司 Data transmission control method and device, congestion detection and device and server system
CN112134763A (en) * 2020-09-25 2020-12-25 北京浪潮数据技术有限公司 Method, system, equipment and medium for transmitting layered messages among cluster nodes
CN114500390A (en) * 2021-12-29 2022-05-13 中国航空工业集团公司西安航空计算技术研究所 RapidIO network flow control method

Also Published As

Publication number Publication date
CN115378872A (en) 2022-11-22

Similar Documents

Publication Publication Date Title
US11082262B2 (en) Flow entry generating method and apparatus
US10462707B2 (en) Data transmission method and apparatus
CN108124003B (en) Network management equipment connection processing method, device and system
US10355997B2 (en) System and method for improving TCP performance in virtualized environments
EP3275140B1 (en) Technique for achieving low latency in data center network environments
WO2016138786A1 (en) Transmission control protocol data packet transmission method, transmission device and system
US9479384B2 (en) Data stream scheduling method, device, and system
US10516599B1 (en) Link priority for loop-protect
EP3264723B1 (en) Method, related apparatus and system for processing service request
US20200296046A1 (en) Method for Sending Service Packet, Network Device, and System
CN108476175B (en) Transfer SDN traffic engineering method and system using dual variables
WO2020199686A1 (en) Method and system for providing edge service, and computing device
CN111147573A (en) Data transmission method and device
Li et al. MPTCP incast in data center networks
JP7037066B2 (en) Evaluation device, evaluation method and evaluation program
WO2019192318A1 (en) Traffic smoothing method, server, and forwarding device
CN115776443A (en) Method, device and system for determining network optimization strategy
CN111431812B (en) Message forwarding control method and device
CN115378872B (en) Flow control method, system, computer equipment and readable storage medium
CN112202896A (en) Edge calculation method, frame, terminal and storage medium
US11677673B1 (en) Low latency flow control in data centers
JP4415391B2 (en) Method and apparatus for transmitting data to a network and method and apparatus for receiving data from a network
CN115941678A (en) Cloud edge collaborative service chain deployment method and device
Villanueva et al. QoS-predictable SOA on TSN: Insights from a case-study
CN106941474B (en) Session initiation protocol server overload control method and server

Legal Events

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