Buffer management system and method for data center network switch
By combining queue gradient and traffic number on the data center network switch to identify burst traffic and accurately allocate buffer resources, the problem of insufficient allocation of burst flow resources in the existing technology is solved, and the burst absorption capacity of the data center network is improved. Transmission performance.
Patent Information
- Application Number
- CN202411022875.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-07-29
- Publication Date
- 2024-12-24
AI Technical Summary
The existing data center network switch buffer management solution fails to effectively identify and distinguish different traffic types in a high-speed network environment, resulting in the buffer resources of burst streams being preempted and causing packet loss. The existing solution is used to identify burst indicators. The traffic hierarchy characteristics are ignored and buffer resources cannot be accurately allocated.
Using the method of coordinating queue gradient and the number of traffic in the queue, a buffer management strategy is designed on the switch. Through the incoming and dequeuing modules, the incoming and dequeuing modules are used to calculate the queue threshold and accurately allocate the buffer. area resources to improve sudden absorption capacity.
The characteristic buffer resource allocation for each queue is realized, which significantly improves the burst absorption capacity and transmission performance of the high-speed data center network, reduces tail delay, and optimizes the flow completion time.
Smart Images

Figure CN119182724A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of data center networks, and in particular relates to a buffer management system and method for a data center network switch. Background Art
[0002] As the computing and storage requirements of massive data on the Internet continue to grow, modern data centers have gradually become the cornerstone for carrying a large number of applications. The various devices inside the data center are interconnected through the data center network. In the data center network, switches widely adopt a shared cache architecture, that is, the output port queues on the switch share the buffer resources on the switch to temporarily absorb the traffic arriving at the switch to reduce packet loss. However, the limited sharing of buffer resources on the switch naturally brings about the problem of how to reasonably allocate resources. Therefore, it is a challenging problem to design a reasonable buffer management solution to reasonably allocate a certain amount of buffer resources to each port on the switch to achieve better traffic absorption capacity.
[0003] At present, there are a lot of research results on buffer management solutions, which can be summarized into two categories: solutions that do not distinguish between traffic types and solutions that distinguish between traffic types. Traffic types can be divided into large flows and small flows according to the size of the traffic, and different traffic types have different performance requirements. Large flows are more sensitive to throughput, while small flows are more sensitive to latency. Due to the large-scale deployment of distributed applications in modern data centers, the proportion of burst flows in small flows has increased significantly, and burst flows are more sensitive to packet loss. Solutions that do not distinguish between traffic types, such as DT, ABM, Credence and other buffer management solutions, use buffer resources more effectively from different entry points to improve traffic transmission performance, such as ensuring fairness between queues, limiting occupancy time, and improving buffer utilization. Their commonality is that they use the same processing strategy for all arriving traffic and do not identify and distinguish traffic types. The core idea of solutions that distinguish between traffic, such as EDT, TDT, Smartbuf, FAB, Protean and other solutions, is to allocate buffer resources more specifically on the switch according to traffic requirements.
[0004] However, both the schemes that do not distinguish traffic types and the schemes that distinguish traffic types have shortcomings under the new characteristics of today's data center networks. The line rate of modern data center networks has reached 100Gbps and is developing towards 400Gbps. At the same time, the scale of deployment of distributed applications in data centers continues to expand. Under this trend, the traffic characteristics of data center networks are increasingly characterized by multiple small flows and high bursts. Under this feature, the core of the buffer management solution should be a stronger burst absorption capability. The common problem of buffer management solutions that do not distinguish traffic types is that the same buffer allocation strategy is implemented for all arriving traffic, and no special treatment is given to burst flows, which will lead to packet loss caused by the buffer resources of burst flows being preempted. Therefore, it is very necessary to identify and distinguish traffic and allocate buffer resources in a targeted manner. The existing solutions for distinguishing traffic types can be divided into two types: queue length-based and queue gradient-based, but they are not precise enough in distinguishing the needs of queues for buffers. The scheme based on queue length can only determine which queues have generated bursts and assign the same threshold to all burst queues. However, the problem is that the degree of bursts varies, and queues with more bursts should get more buffer resources. The scheme based on queue gradient attempts to further differentiate the buffer resource requirements between burst queues according to the rate of change of queue length. However, the problem is that in fact, queues with the same rate of change of queue length also have different requirements for buffers.
[0005] All existing buffer management solutions have failed to accurately determine the buffer demand for each queue. The main reason is that the indicators for identifying bursts only consider the factors at the queue level and ignore the characteristics of the traffic level. In high-speed networks, more than 60% of the traffic size is less than 1 BDP. The buffer should give priority to absorbing the bursts caused by these flows to reduce tail delays and thus improve overall transmission performance. The existing solutions only determine bursts from the queue level and cannot determine which type of traffic causes the change in queue length or gradient. Therefore, a strategy is needed to further refine whether the cause is a large flow or a small flow when the queue length or gradient changes. However, it is very difficult to obtain traffic size information on the switch in the existing solutions. First, it is assumed that the solution with known accurate traffic size information can theoretically achieve the best effect, but this type of solution is very difficult to deploy in the current data center. It may require many priority queues or rebuild the entire TCP / IP protocol stack; while the solution of dynamically estimating traffic size is easy to implement in the actual deployment environment, but the prediction accuracy of all current solutions is limited. Therefore, whether a simpler solution can be found to obtain the cause of the current burst from the side is very important. In the present invention, it is proposed to use the number of flows in the queue as an additional indicator. First, from the perspective of time characteristics, the transmission of large flows in the queue is more stable and continuous, so it may occupy most of the buffer resources for a long period of time, and the subsequent traffic may be lost due to excessive occupation of large flows, so the number of flows in the queue where the large flow is located changes less obviously; secondly, from the perspective of network load characteristics, the decomposition / aggregation working mode commonly used in widely deployed distributed applications leads to the fact that most bursts are caused by traffic incast, and the number of flows entering the queue can well reflect the degree of incast, that is, it can better distinguish bursts; finally, the mechanism for obtaining the number of flows is easier to implement and deploy in today's switches. Using the five-tuple information commonly used in current traffic analysis, it is easy to distinguish different flows and obtain the number of flows. Compared with obtaining traffic size information on the switch, the complexity is greatly reduced. In summary, the number of flows in the queue can further refine the degree of bursts on the switch. Simply put, the more flows in the queue in the same time, the higher the burst characteristics, so more buffer resources should be obtained. Summary of the invention
[0006] In view of the difficulties in the prior art, the present invention proposes a buffer management system and method for a data center network switch; the present invention adopts a buffer management strategy to maximize the burst flow absorption capacity on the switch by coordinating the queue gradient and the number of flows in the queue; the present invention can allocate buffer resources in a targeted manner according to the characteristics in each queue, thereby achieving a switch buffer management strategy with higher burst absorption capacity; the key of the present invention is to retain the advantages of the buffer management scheme based on the queue gradient, and at the same time use a queue flow characteristic that has been neglected in the buffer management scheme in the past - the number of flows as an allocation indicator of buffer resources, and design a scheme that can better distinguish the demand for buffers for burst flows in different queues, so as to maximize the burst absorption capacity of the switch in the high-speed data center network.
[0007] In order to solve the problems of the prior art, the present invention adopts the following technical solutions:
[0008] A buffer management system for a data center network switch, the buffer management system comprises an enqueue module and an outqueue module; the enqueue module is composed of a packet admission decision maker, a packet comparator and an enqueue flow number counter; the outqueue module is composed of a queue information update unit, a burst information learning unit and a burst queue threshold calculation unit; the queue information update unit is composed of an outqueue flow number counter and a gradient calculator; wherein:
[0009] The packet admission decision maker is used to determine whether the current length of the corresponding queue exceeds its queue threshold when the data packet arrives at the queue. If the current queue has not reached the threshold, the data packet is admitted to the queue, otherwise the data packet is discarded;
[0010] The packet comparator analyzes and compares the data packets that are allowed to enter the queue to determine whether the flow to which the data packets that are allowed to enter the queue belong is a new flow that does not exist in the queue that is about to enter; the queue entry flow number counter is used to update the number of flows in the queue when entering the queue;
[0011] The queue information updating unit is used to obtain all the gradients related to the burst and the corresponding information related to the maximum queue occupancy; the dequeuing flow number counter is used to update the number of flows in the queue when the data packet is dequeued;
[0012] The burst information learning unit is used to determine whether the current queue generates burst information according to the queue gradient, and record the queue gradient and the relevant information of the maximum queue occupancy when the burst occurs;
[0013] The burst queue threshold calculation unit calculates and outputs a queue threshold for limiting the use of queue buffer resources by obtaining corresponding burst information and queue flow quantity information provided by the queue information update unit and the burst information learning unit, thereby realizing allocation and management of buffer resources.
[0014] The present invention can also be implemented by the following technical solution: A buffer management method for a data center network switch, comprising the following steps:
[0015] When a data packet arrives at a queue, the packet admission decision maker determines whether the queue length of the current target queue exceeds the queue threshold after entering the queue. If it does not exceed the threshold, the data packet is allowed to enter the queue, otherwise the data packet is directly discarded;
[0016] After the data packet is allowed to enter the queue, the packet comparator analyzes the five-tuple information of the current data packet to check whether the five-tuple information of the current data packet matches the flow in the current queue. If the current data packet belongs to a flow that does not exist in the queue, the queued flow number counter updates the flow number in the current queue and records the data packet information of the current new flow for subsequent statistics of the number of data packets of the flow; if the data packet is a subsequent data packet of an existing flow, the queued flow number counter updates the number of data packets corresponding to the current flow;
[0017] When a data packet is dequeued, the dequeued traffic number counter checks whether the current data packet is the last data packet of a certain flow. If it is the last data packet, it indicates that the flow has been transmitted in the queue, and the number of flows in the queue is updated; if it is not the last data packet, the number of data packets corresponding to the flow is updated; the gradient calculator continuously calculates the queue gradient information after the data packet is dequeued during the dequeuing process;
[0018] The burst information learning unit determines whether the current entry is a burst-related entry according to the gradient information; if the current entry is a burst-related entry, the corresponding entry is inserted into the burst-related queue; otherwise, the above process is repeated to continuously update the data packets of the queue entry module and the queue exit module.
[0019] Furthermore, the burst queue threshold calculation unit processes a threshold calculation process of the queue after the burst entry is generated, including:
[0020] When a burst-related entry is detected and the burst-related entry ends, the K nearest neighbor algorithm is used to find the maximum queue occupancy corresponding to the K saved gradients that are larger than the current data packet gradient and closest to the current gradient as the corresponding queue threshold;
[0021] Calculate the average occupancy value when a burst occurs based on the K maximum occupancy values;
[0022] The queue threshold used to control the queue buffer occupancy is calculated based on the average occupancy value and the amount of traffic corresponding to the current queue.
[0023] Beneficial Effects
[0024] 1. When the traffic data packets enter the queue, the number of traffic in the queue is monitored and recorded in real time. When the traffic data packets leave the queue, in addition to recording the changes in the number of traffic in the queue, the gradient value of the queue is also calculated and recorded. At the same time, in the dequeue module, if a burst is identified in the queue, the threshold of the current queue is calculated based on the recorded gradient value and the number of traffic in the queue, so as to realize the allocation and management of buffer resources.
[0025] 2. The present invention can more accurately identify the traffic bursts of the current queue and set corresponding thresholds more specifically according to the burst level of each queue. The present invention further enhances the burst absorption capacity within the data center network and further optimizes the flow completion time in the transmission performance. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] Figure 1 is a system architecture diagram of the present invention;
[0027] Figure 2 is a flow chart of the learning phase of the present invention;
[0028] Figure 3 It is a flow chart of the queue threshold calculation stage of the present invention. DETAILED DESCRIPTION
[0029] The following is combined with Figure 1 ~Attached Figure 3 The present invention is described as follows:
[0030] The present invention proposes a buffer management strategy for maximizing the burst traffic absorption capacity on a switch by coordinating the queue gradient and the number of traffic in the queue. The core idea of the present invention is to capture burst behavior based on the gradient, and use the recorded gradient information and the corresponding traffic number information to predict the buffer requirements of the future queue. In order to describe the purpose and technical solution of the present invention in more detail, the present invention is further described in detail below in conjunction with the transmission process of the data packet.
[0031] like Figure 1 As shown, the present invention includes the design of an entry module and an exit module on a switch. The entry module is used to determine whether a data packet is admitted to a corresponding queue according to the current queue threshold, and to compare and count packets when the data packet enters the queue, while the exit module is responsible for information update after the packet exits the queue, burst judgment after a burst is generated, burst information storage, and queue threshold calculation.
[0032] Enqueue module: consists of three parts: packet admission decider, packet comparator and flow number counter.
[0033] (1) Packet admission decision maker: When a data packet arrives at a queue, it checks whether the current length of the corresponding queue exceeds its queue threshold. If the current queue has not reached the threshold, the data packet is admitted to the queue; otherwise, the data packet is discarded.
[0034] (2) Packet comparator: When a new data packet is allowed to enter the queue, the packet is analyzed and compared to determine whether the flow to which the packet belongs is a new flow that does not exist in the queue to be entered. The comparison index used in this component is the five-tuple of the data packet, which is very commonly used in traffic analysis.
[0035] (3) The queue entry flow number counter is used to update the number of flows in the queue when entering the queue;
[0036] The dequeue module includes a queue information updating unit, a burst information learning unit and a burst queue threshold calculation unit. The queue information updating unit is composed of a dequeue flow number counter and a gradient calculator.
[0037] (1) Queue information update unit: It includes two parts: the dequeuing flow number counter and the gradient calculator. The function of the dequeuing flow number counter is similar to that in the enqueuing module, which updates the corresponding flow information when the data packet is dequeued; the function of the gradient calculator is to calculate and update the information related to the queue gradient when the data packet is dequeued, such as the current queue gradient size, the current queue maximum occupancy, etc., for subsequent burst judgment;
[0038] (2) Burst information learning unit: It includes two parts: burst judgment and burst information update. The burst judgment unit is used to use the queue gradient to determine whether a burst has occurred in the current queue. After the burst is determined to have occurred and ended, the burst information is stored for subsequent burst queue threshold calculation;
[0039] (3) The queue threshold calculation unit uses the queue information update unit and the burst information learning unit to obtain the corresponding burst information and the number of flows in the queue, and jointly calculates a queue threshold for limiting the use of queue buffer resources.
[0040] like Figure 2-3 As shown, the present invention is mainly divided into two stages on the switch, a learning stage and a queue threshold calculation stage. The basic implementation environment of the present invention: a data center switch in which each output port corresponds to an output queue.
[0041] Basic information storage:
[0042] a. Temp_map[port number, [gradient, current queue maximum occupancy]] is a hash map consisting of integers (port ID) and queue length gradient (Gradient) and maximum buffer occupancy (max_buf_seen) pairs. It temporarily records all gradient-related information and waits for the burst to be detected before inserting the table entry into Main_map;
[0043] b. Main_map[gradient, current queue maximum occupancy] is also a hash map, which only records the gradient related to the burst and the corresponding buffer usage peak information;
[0044] cF low_num[port], records the number of flows in the current queue;
[0045] d.Packet_num[five-tuple, number of packets], records the number of packets corresponding to the traffic in the current queue.
[0046] The present invention consists of two stages, a learning stage and a queue threshold calculation stage. The specific implementation scheme is as follows:
[0047] like Figure 2 The purpose of the learning phase is to obtain all the gradients related to the burst and the corresponding maximum queue occupancy information, store them in Main_map, and use them to predict the future queue occupancy. The process is as follows:
[0048] (1) When a data packet arrives at a queue, it first determines whether the queue length of the current target queue exceeds the queue threshold after it enters the queue. If it does not exceed the threshold, the data packet is allowed to enter the queue; otherwise, the data packet is directly discarded.
[0049] (2) After the data packet is allowed to enter the queue, the packet comparator analyzes the data packet. Specifically, it analyzes the five-tuple information of the current data packet to check whether the five-tuple information of the current data packet matches the flow in the current queue. If the current data packet belongs to a flow that already exists in the queue, the flow number counter updates the flow number Flow_num in the current queue and records the data packet information of the current new flow for subsequent counting of the number of data packets in the flow; if the data packet is a subsequent data packet of an existing flow, the flow number counter updates the number of data packets Packet_num corresponding to the current flow.
[0050] (3) Data packets are queued and dequeued normally.
[0051] (4) When a data packet is dequeued, the traffic number counting component first checks whether the current data packet is the last data packet of a certain flow. If it is the last data packet, the traffic number in the queue is updated and the corresponding information of the flow is deleted; if it is not the last data packet, the number of packets corresponding to the flow is updated.
[0052] (5) After the traffic number is updated, the corresponding gradient information is calculated. The gradient is the speed of change of the queue length, so the calculation method is the change value of the queue length per unit time. At the same time, in order to reduce the sensitivity of the method to error values, the idea of EWMA (exponential weighted moving average) is used to calculate the current gradient in a short time window. The parameter α is used to represent the weight of the gradient at the current moment, and 1-α is the weight of the gradient at the previous moment. This parameter can be configured according to the actual situation to ensure the smoothness of the obtained gradient and filter out extreme outliers, thereby improving accuracy.
[0053] (6) After the gradient calculation is completed, check the maximum occupancy of the current queue, insert the entry corresponding to [gradient, maximum occupancy] into Temp_map for temporary storage, and wait to determine whether it is a burst entry.
[0054] (7) Identify the burst based on the gradient and determine whether the current entry is a burst-related entry. There are two main conditions for determining whether the entry is a burst-related entry:
[0055] a. If the current buffer occupancy of the port drops below a certain value, it can be considered that the current burst has ended, and it may be time to insert this entry in Temp_map into Main_map. The specific scheme is that if the current buffer occupancy of the port drops below a certain proportion of the observed maximum buffer occupancy, you can consider adding this information to Main_map, because the burst is likely to have disappeared.
[0056] b. If an entry in Temp_map is to be inserted into Main_map, the entry must be associated with a burst. Based on the above conditions, it is necessary to ensure that the previously captured maximum buffer occupancy is definitely related to a burst. The specific approach is to compare whether the previously recorded maximum buffer occupancy reaches a certain proportion of the buffer size. The possible value of this proportion depends on the definition of a burst in a specific network. Therefore, this threshold should be configurable to match the current workload.
[0057] If the above two conditions are met, the burst information can be determined and inserted into Main_map.
[0058] (8) The above process continues during the data packet transmission, constantly updating the value of Main_map and regularly clearing expired Main_map values.
[0059] like Figure 3 The queue threshold calculation phase is used to calculate the queue threshold after a burst occurs. The threshold is calculated by combining the information in Main_map obtained in the learning phase with the number of Flow_num flows. The calculation method is as follows:
[0060] (1) In this phase, all operations in the learning phase are still in progress. When a burst is detected and ends, the switch calculates the corresponding queue threshold based on the entry value in Main_map. The specific approach is to use the idea of K-NN (K nearest neighbor algorithm). The switch will search the Main_map for the maximum queue occupancy corresponding to the K saved gradients that are larger than the current gradient and closest to the current gradient, and then calculate the average occupancy value avg when the burst occurs based on these K maximum occupancies;
[0061] (2) After calculating the above average value, the switch calculates the actual threshold of the queue used to control the queue buffer occupancy based on the number of flows corresponding to the current queue. σ is used to control the weight of the flow number in the algorithm.
[0062] Although the present invention has been described above, the present invention is not limited to the above-mentioned specific embodiments. The above-mentioned specific embodiments are merely illustrative and not restrictive. Under the guidance of the present invention, ordinary technicians in this field can make many modifications without departing from the purpose of the present invention, which are all within the protection of the present invention.
Claims
1. A buffer management system for a data center network switch, characterized in that: The buffer management system comprises an enqueue module and an outqueue module; the enqueue module is composed of a packet admission decision maker, a packet comparator and an enqueue flow number counter; the outqueue module is composed of a queue information update unit, a burst information learning unit and a burst queue threshold calculation unit; the queue information update unit is composed of an outqueue flow number counter and a gradient calculator; wherein: The packet admission decision maker is used to determine whether the current length of the corresponding queue exceeds its queue threshold when the data packet arrives at the queue. If the current queue has not reached the threshold, the data packet is admitted to the queue, otherwise the data packet is discarded; The packet comparator analyzes and compares the data packets that are allowed to enter the queue to determine whether the flow to which the data packets that are allowed to enter the queue belong is a new flow that does not exist in the queue that is about to enter; the queue entry flow number counter is used to update the number of flows in the queue when entering the queue; The queue information updating unit is used to obtain all the gradients related to the burst and the corresponding information related to the maximum queue occupancy; the dequeuing flow number counter is used to update the number of flows in the queue when the data packet is dequeued; The burst information learning unit is used to determine whether the current queue generates burst information according to the queue gradient, and record the queue gradient and the relevant information of the maximum queue occupancy when the burst occurs; The burst queue threshold calculation unit calculates and outputs a queue threshold for limiting the use of queue buffer resources by obtaining corresponding burst information and queue flow quantity information provided by the queue information update unit and the burst information learning unit, thereby realizing allocation and management of buffer resources.
2. A buffer management method for a data center network switch, characterized in that: The method adopts the system in claim 1 to implement buffer management, comprising the following steps: When a data packet arrives at a queue, the packet admission decision maker determines whether the queue length of the current target queue exceeds the queue threshold after entering the queue. If it does not exceed the threshold, the data packet is allowed to enter the queue, otherwise the data packet is directly discarded; After the data packet is allowed to enter the queue, the packet comparator analyzes the five-tuple information of the current data packet to check whether the five-tuple information of the current data packet matches the flow in the current queue. If the current data packet belongs to a flow that does not exist in the queue, the queue flow number counter updates the flow number in the current queue and records the data packet information of the current new flow for subsequent counting of the number of data packets of the flow. If the data packet is a subsequent data packet of an existing flow, the queued flow number counter updates the number of data packets corresponding to the current flow; When a data packet is dequeued, the dequeued traffic number counter checks whether the current data packet is the last data packet of a certain flow. If it is the last data packet, it indicates that the flow has been transmitted in the queue, and the number of flows in the queue is updated; if it is not the last data packet, the number of data packets corresponding to the flow is updated; the gradient calculator continuously calculates the queue gradient information after the data packet is dequeued during the dequeuing process; The burst information learning unit determines whether the current entry is a burst-related entry according to the gradient information; if the current entry is a burst-related entry, the corresponding entry is inserted into the burst-related queue; otherwise, the above process is repeated to continuously update the data packets of the queue entry module and the queue exit module.
3. A buffer management method for a data center network switch according to claim 2, characterized in that: The burst queue threshold calculation unit processes the threshold calculation process of the queue after the burst entry is generated, including: When a burst-related entry is detected and the burst-related entry ends, the K nearest neighbor algorithm is used to find the maximum queue occupancy corresponding to the K saved gradients that are larger than the current data packet gradient and closest to the current gradient as the corresponding queue threshold; Calculate the average occupancy value when a burst occurs based on the K maximum occupancy values; The queue threshold used to control the queue buffer occupancy is calculated based on the average occupancy value and the amount of traffic corresponding to the current queue.
