Speed ​​limit determination method, device, product, medium, equipment and cluster

By generating the scheduling status bitmap and the speed limit flow control bitmap and performing recursive operations, the problem of difficulty in accurately determining the speed limit of each node in the prior art is solved, and the accuracy and consistency of flow control are achieved.

CN119276431BActive Publication Date: 2025-03-25ZHUHAI XINGYUN ZHILIAN TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411793538.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-09
Publication Date
2025-03-25
Estimated Expiration
2044-12-09

AI Technical Summary

Technical Problem

The prior art is difficult to accurately determine the appropriate speed limit for each node at each level, making it difficult to achieve effective flow control in multi-level and multi-equipment environments.

Method used

By generating a scheduling status bitmap and a speed limit flow control bitmap and performing recursive operations, the speed limit of each node is determined to ensure that the speed limit relationship between nodes is consistent.

Benefits of technology

The speed limit determination of each node at each level is achieved, ensuring the accuracy and consistency of traffic control, and improving the efficiency of network resources.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119276431B_ABST
    Figure CN119276431B_ABST
Patent Text Reader

Abstract

The present application provides a method, device, product, medium, equipment and cluster for determining a speed limit. The method includes: generating a scheduling status bitmap according to a scheduling relationship bitmap, wherein the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; some nodes in the scheduling status bitmap point to one of the nodes in the next level; generating an initial bitmap according to the scheduling status bitmap and the speed limit flow control bitmap, wherein the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling status bitmap; performing a recursive operation on the initial bitmap to obtain an updated result bitmap, wherein the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of data processing, and in particular to a speed limit determination method, apparatus, product, medium, equipment and cluster. Background Art

[0002] Traffic Shaping or Rate Limiting is a technology that controls the data traffic rate. It aims to limit the bandwidth usage of a specific flow or port in order to avoid overload, ensure fairness, improve the efficiency of network resource usage, or avoid the impact of certain malicious behaviors (such as DDoS attacks). However, with the evolution of technology, more and more layers need to limit the speed, and more and more devices need to limit the speed. It is very difficult to set appropriate speed limits for each device at each layer. Summary of the invention

[0003] The present application provides a speed limit determination method, apparatus, product, medium, device, and cluster, which can more accurately determine the speed limit for each node at each level.

[0004] In a first aspect, a speed limit determination method is provided, comprising:

[0005] Generate a scheduling state bitmap according to the scheduling relationship bitmap, wherein the columns of the scheduling relationship bitmap are used to indicate nodes of different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes in the next level;

[0006] An initial bitmap is generated according to the scheduling state bitmap and the speed limit flow control bitmap, wherein the columns of the speed limit flow control bitmap are used to indicate nodes of different levels, the rows of the speed limit flow control bitmap are used to indicate one of the nodes of the corresponding level, the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling state bitmap;

[0007] A recursive operation is performed on the initial bitmap to obtain an updated result bitmap, wherein the columns of the result bitmap are used to indicate nodes of different levels, the rows of the result bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

[0008] In some possible designs, a scheduling state bitmap is generated according to the scheduling relationship bitmap, including:

[0009] A scheduling status bitmap is generated according to a scheduling relationship bitmap and a node enable bitmap, wherein the columns of the node enable bitmap are used to indicate nodes of different levels, the rows of the node enable bitmap are used to indicate one of the nodes of the corresponding level, and each bit value of the node enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the node enable bitmap is a first value, the corresponding node is enabled, and when the value of the bit of the node enable bitmap is a second value, the corresponding node is not enabled. The node corresponding to the bit in the scheduling status bitmap corresponding to the value of the first value in the node enable bitmap points to one of the nodes at the next level.

[0010] In some possible designs, generating an initial bitmap according to the scheduling state bitmap and the rate limit flow control bitmap includes:

[0011] An initial bitmap is generated according to the scheduling status bitmap, the speed limit flow control bitmap and the speed limit enable bitmap, wherein the columns of the speed limit enable bitmap are used to indicate nodes of different levels, the rows of the speed limit enable bitmap are used to indicate one of the nodes of the corresponding level, and each bit value of the speed limit enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the speed limit enable bitmap is a first value, the corresponding node is enabled; when the value of the bit of the speed limit enable bitmap is a second value, the corresponding node is not enabled; and the node corresponding to the bit in the initial bitmap corresponding to the value of the first value in the speed limit enable bitmap points to one of the nodes at the next level.

[0012] In some possible designs, the initial bitmap is recursively operated, including: forward updating the initial bitmap, in a single forward update:

[0013] When the sum of the speed limits of multiple nodes pointing to the same node at this level is less than the value of the pointed node, the value of the pointed node is set equal to the sum of the speed limits.

[0014] In some possible designs, in the step of performing a forward update on the initial bitmap, the method further comprises performing a reverse update on the updated initial bitmap, and in a single reverse update:

[0015] In the case that the speed limit of the directed node is less than the sum of the speed limits of the multiple nodes, the speed limit values ​​of the multiple nodes are distributed to the value of the directed node according to a ratio.

[0016] In some possible designs, the hierarchy includes one or more of an egress port, a service, a storage service, a device, and a queue.

[0017] In a second aspect, a speed limit determination device is provided, comprising:

[0018] A first generating module is used to generate a scheduling state bitmap according to a scheduling relationship bitmap, wherein the columns of the scheduling relationship bitmap are used to indicate nodes of different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes of the next level;

[0019] A second generating module is used to generate an initial bitmap according to the scheduling state bitmap and the speed limit flow control bitmap, wherein the columns of the speed limit flow control bitmap are used to indicate nodes of different levels, the rows of the speed limit flow control bitmap are used to indicate one of the nodes of the corresponding level, the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling state bitmap;

[0020] A recursive module is used to perform recursive operations on the initial bitmap to obtain an updated result bitmap, wherein the columns of the result bitmap are used to indicate nodes of different levels, the rows of the result bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

[0021] According to a third aspect, a computer program product comprising instructions is provided. When the instructions are executed by a computing device or a cluster, the computing device or the cluster executes the operation steps of the method described in any one of the first aspects.

[0022] In a fourth aspect, a computer-readable storage medium is provided, comprising computer program instructions. When the computer program instructions are executed by a computing device or a cluster, the computing device or the cluster performs the operation steps of the method described in any one of the first aspects.

[0023] In a fifth aspect, a computing device is provided, including a flow table unloading system and a storage unit, wherein the flow table unloading system and the storage unit can communicate with each other, and the flow table unloading system is a system as described in any one of the first aspects.

[0024] In a sixth aspect, a computing device cluster is provided, including a flow table unloading system and a storage unit, wherein the flow table unloading system and the storage unit can communicate with each other, and the flow table unloading system is a system as described in any one of the first aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0025] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the background technology, the drawings required for use in the embodiments of the present invention or the background technology will be described below.

[0026] Figure 1 It is a schematic diagram of a hierarchical structure provided by this application;

[0027] Figure 2 is a flow chart of a speed limit determination method provided by the present application;

[0028] Figure 3 is a schematic diagram of a process of generating a result bitmap provided by the present application;

[0029] Figure 4 is a schematic diagram of another process of generating a result bitmap provided by the present application;

[0030] Figure 5 It is a structural schematic diagram of a speed limit determination device provided by the present application;

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

[0032] The embodiments of the present invention are described below in conjunction with the accompanying drawings in the embodiments of the present invention. The terms used in the implementation mode of the present invention are only used to explain the specific embodiments of the present invention, and are not intended to limit the present invention.

[0033] See also Figure 1 , Figure 1 This is a schematic diagram of a hierarchical structure provided by this application. Figure 1As shown, the hierarchical structure of the present application includes: egress level, service level, storage level, device level and queue level. Among them, the egress level only includes one egress port, for example, the second egress port, the service level includes the first service and the third service, the storage service includes the second storage, the third storage and the fourth storage, the device level includes the first device, the third device, the fourth device and the fifth device, and the queue level includes the first queue, the second queue, the third queue, the fourth queue and the fifth queue. Among them, the egress port can be an Ethernet port, the service can be a storage service or a network service, the storage can be a remote direct memory access (RDMA), a virtual storage block (VBlock), etc. The device can be a network device and a storage device, etc. The queue can be a first-in-first-out queue, a last-in-first-out queue, etc. The first queue is connected to the first device, the second queue and the third queue are respectively connected to the third device, the fourth queue is connected to the fourth device, and the fifth queue is connected to the fifth device. The first device is connected to the second storage, the third device and the fourth device are connected to the third storage, and the fifth device is connected to the fourth storage. The second storage is connected to the first service, the third storage and the fourth storage are connected to the third service, and the third service is connected to the egress port. The first service and the third service are connected to the outbound port. Figure 1 The second device, the first storage, the second service, etc. are not shown. The second device, the first storage, and the second service may be forwarded through other output ports, which will not be explained here.

[0034] It can be understood that the above-mentioned hierarchical structure is only used as a specific example. In actual applications, the hierarchical structure can also include more or fewer levels or replace some or all of the levels. For example, the storage level can be reduced, or other levels can be added, and so on. Each level can also include more or fewer elements. For example, the second queue and the third queue can be deleted, or the sixth queue and the seventh queue can be added, and so on. The connection relationship between the levels can also be other, etc.

[0035] See also Figure 2 , Figure 2 This is a flow chart of a speed limit determination method provided by this application. Figure 2 As shown, the speed limit determination method of the present application includes the following steps:

[0036] S101: Generate a scheduling status bitmap according to a scheduling relationship bitmap.

[0037] The columns of the scheduling relationship bitmap are used to indicate nodes at different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes at the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level. Figure 3As shown, the first column of the scheduling relationship bitmap is used to indicate the queue level, the first column and the first row are used to indicate the first queue, the first column and the second row are used to indicate the second queue, the first column and the third row are used to indicate the third queue, the first column and the fourth row are used to indicate the fourth queue, and the first column and the fifth row are used to indicate the fifth queue. The second column is used to indicate the device level, the second column and the first row are used to indicate the first device, the second column and the second row do not indicate any device, the second column and the third row are used to indicate the third device, the second column and the fourth row are used to indicate the fourth device, and the second column and the fifth row are used to indicate the fifth device. The third column is used to indicate the storage level, the third column and the first row are not used to indicate any storage, the third column and the second row are used to indicate the second storage, the third column and the third row are used to indicate the third storage, the third column and the fourth row are used to indicate the fourth storage, and the third column and the fifth row are not used to indicate any storage. The fourth column is used to indicate the service level, the fourth column and the first row are used to indicate the first service, the fourth column and the second row are not used to indicate any service, the fourth column and the third row are used to indicate the third service, the fourth column and the fourth row are not used to indicate any service, and the fourth column and the fifth row are not used to indicate any service. The fifth column is used to indicate the export level, the first row of the fifth column does not indicate any export, the second row of the fifth column is used to indicate the second export port, the third row of the fifth column does not indicate any export, the fourth row of the fifth column does not indicate any export, and the fifth row of the fifth column does not indicate any export.

[0038] The value of the first row in the first column is "0". This is because the first row in the first column indicates the first queue, and the value "0" indicates that the traffic flows to the first device. Therefore, the value of the first row in the first column is "0" which indicates that the traffic flows from the first queue to the first device.

[0039] The value of the second row in the first column is "2". Because the second row in the first column means the second queue, and the value "2" means that the traffic flows to the third device, the value of the second row in the first column is "2" which means that the traffic flows from the second queue to the third device.

[0040] The value of the third row in the first column is "2". Because the third row in the first column means the third queue, and the value "2" means that the traffic flows to the third device, the value of the third row in the first column is "2" which means that the traffic flows from the third queue to the third device.

[0041] The value of the fourth row in the first column is "3". Because the fourth row in the first column indicates the fourth queue, and the value "3" indicates that the traffic flows to the fourth device, the value of the fourth row in the first column is "3". This means that the traffic flows from the fourth queue to the fourth device.

[0042] The value of the fifth row in the first column is "4". Because the fifth row in the first column means the fifth queue, and the value "4" means that the traffic flows to the fifth device, the value of the fifth row in the first column is "4" which means that the traffic flows from the fifth queue to the fifth device.

[0043] The value of the first row of the second column is "1". Because the first row of the second column means the first device, and the value "1" means the flow is to the second storage, so the value of the first row of the second column is "1" means that the traffic flows from the first device to the second storage;

[0044] The value of the second row in the second column is "-1", because the second row in the second column means the second device, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0045] The value of the third row in the second column is "2". Because the third row in the second column means the third device, and the value "2" means the traffic flows to the third storage, so the value of the third row in the second column is "2" means the traffic flows from the third device to the third storage.

[0046] The value of the fourth row in the second column is "2". Because the fourth row in the second column means the fourth device, and the value "2" means the flow to the third storage, the value of the fourth row in the second column is "2" which means the traffic flows from the fourth device to the third storage.

[0047] The value of the fifth row of the second column is "3". Since the fifth row of the second column means the fifth device and the value "3" means the flow to the fourth storage, the value of the fifth row of the second column is "3" means the traffic flows from the fifth device to the fourth storage.

[0048] The value of the first row of the third column is "-1", because the first row of the third column means the first storage, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0049] The value of the second row of the third column is "0", because the second row of the third column means the second storage, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0050] The value of the third column and the third row is "2". Because the third column and the third row represent the third storage, and the value "2" represents the flow to the third service, the value of the third column and the third row is "2" which means that the traffic flows from the third storage to the third service.

[0051] The value of the fourth row in the third column is "2". Because the fourth row in the third column means the fourth storage, and the value "2" means the flow to the third service, the value of the fourth row in the third column is "2" which means the traffic flows from the fourth storage to the third service.

[0052] The value of the third column and the fifth row is "-1" because the third column and the fifth row represent the fifth storage, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure.

[0053] The value of the first row of the fourth column is "1". Because the first row of the fourth column means the first service, and the value "1" means that the traffic flows to the second egress port, the value of the first row of the fourth column is "1" which means that the traffic flows from the first service to the second egress port.

[0054] The value of the second row of the fourth column is "-1", because the second row of the fourth column means the second service, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0055] The value of the third row of the fourth column is "1". Because the third row of the fourth column means the third service, and the value "1" means that the traffic flows to the second egress port, the value of the third row of the fourth column is "1" which means that the traffic flows from the third service to the second egress port.

[0056] The value of the fourth column and the fourth row is "-1", because the fourth column and the fourth row represent the fourth service, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0057] The value of the fourth column and the fifth row is "-1" because the fourth column and the fifth row represent the fifth service, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure.

[0058] The value of the first row of the fifth column is "-1", because the first row of the fifth column means the first output port, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0059] The value of the second row of the fifth column is "1", because the second row of the fifth column means the second output port, and the value "1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0060] The value of the third row of the fifth column is "-1", because the third row of the fifth column means the third output port, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0061] The value of the fourth row of the fifth column is "-1", because the fourth row of the fifth column means the fourth output port, and the value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure;

[0062] The value of the fifth column and the fifth row is "-1" because the fifth column and the fifth row represent the fifth output port. The value "-1" means that the device does not exist, or there is no relationship between the device and other elements in the hierarchical structure.

[0063] In a specific embodiment, the following can be obtained based on the scheduling relationship bitmap: Figure 3 The scheduling state bitmap shown in . Among them, the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes of the next level. The nodes represented by each bit of the scheduling state bitmap are exactly the same as the nodes represented by each bit of the scheduling relationship bitmap, and will not be repeated here.

[0064] The scheduling status bitmap includes two values: "1" and "-1", where "1" means that the corresponding node exists, and "-1" means that the corresponding node does not exist.

[0065] Here, the node in the first row and the first column points to the node in the first row and the second column, which means that the traffic flows from the first queue to the first device. The node in the second row and the first column points to the node in the third row and the second column, which means that the traffic flows from the second queue to the third device. The node in the third row and the first column points to the node in the third row and the second column, which means that the traffic flows from the third queue to the third device. The node in the fourth row and the first column points to the node in the fourth row and the second column, which means that the traffic flows from the fourth queue to the fourth device. The node in the fifth row and the first column points to the node in the fifth row and the second column, which means that the traffic flows from the fifth queue to the fifth device.

[0066] The node in the first row, second column points to the node in the second row, third column, which means that the traffic flows from the first device to the second storage. The node in the third row, second column points to the node in the third row, third column, which means that the traffic flows from the third device to the third storage. The node in the fourth row, second column points to the node in the third row, third column, which means that the traffic flows from the fourth device to the third storage. The node in the fifth row, second column points to the node in the fourth row, third column, which means that the traffic flows from the fifth device to the fourth storage.

[0067] The node in the second row and third column points to the node in the first row and fourth column, which means that the traffic flows from the second storage to the first business. The node in the third row and third column points to the node in the third row and fourth column, which means that the traffic flows from the third storage to the third business. The node in the fourth row and third column points to the node in the third row and fourth column, which means that the traffic flows from the fourth storage to the third business.

[0068] The node in the first row and fourth column points to the node in the second row and fifth column, which means that the traffic flows from the first service to the second output port. The node in the third row and fourth column points to the node in the second row and fifth column, which means that the traffic flows from the third service to the second output port.

[0069] In another embodiment, the following can be obtained based on the scheduling relationship bitmap and the node enable bitmap: Figure 4 The scheduling status bitmap shown in . The columns of the node enable bitmap are used to indicate nodes of different levels, and the rows of the node enable bitmap are used to indicate one of the nodes of the corresponding level. The nodes represented by each bit of the node enable bitmap are exactly the same as the nodes represented by each bit of the scheduling relationship bitmap, and will not be repeated here. Each bit value of the node enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the node enable bitmap is a first value, the corresponding node is enabled. When the value of the bit of the node enable bitmap is a second value, the corresponding node is not enabled. It is not difficult to understand that only the enabled bits are processed as described above, and the disabled bits do not need to be processed as described above.

[0070] S102: Generate an initial bitmap according to the scheduling status bitmap and the rate limit flow control bitmap.

[0071] The columns of the rate-limit flow control bitmap are used to indicate nodes at different levels, and the rows of the rate-limit flow control bitmap are used to indicate one of the nodes at the corresponding level. The nodes represented by each bit of the rate-limit flow control bitmap are exactly the same as the nodes represented by each bit of the scheduling relationship bitmap, and will not be repeated here. The value of each bit in the rate-limit flow control bitmap is used to indicate the rate limit of the corresponding node. Figure 3 As shown, the value of the node in the first row and the first column is 3, indicating that the speed limit of the first queue is 3 units, the value of the node in the second row and the first column is 3, indicating that the speed limit of the second queue is 3 units, the value of the node in the third row and the first column is 3, indicating that the speed limit of the third queue is 3 units, the value of the node in the fourth row and the first column is 2, indicating that the speed limit of the fourth queue is 2 units, and the value of the node in the fifth row and the first column is 3, indicating that the speed limit of the fifth queue is 3 units.

[0072] The value of the node in the first row and second column is 2, indicating that the speed limit of the first device is 3 units, the value of the node in the second row and second column is -1, indicating that the second device does not exist, the value of the node in the third row and second column is 2, indicating that the speed limit of the third device is 2 units, the value of the node in the fourth row and second column is 3, indicating that the speed limit of the fourth device is 3 units, and the value of the node in the fifth row and second column is 3, indicating that the speed limit of the fifth device is 3 units.

[0073] The value of the node in the first row and third column is -1, indicating that the first storage does not exist, the value of the node in the second row and third column is 5, indicating that the speed limit of the second storage is 5 units, the value of the node in the third row and third column is 10, indicating that the speed limit of the third storage is 10 units, the value of the node in the fourth row and third column is FF, indicating that the fourth storage has no rate limit, and the value of the node in the fifth row and third column is -1, indicating that the fifth storage does not exist.

[0074] The value of the node in the first row and fourth column is 3, indicating that the speed limit of the first service is 3 units. The value of the node in the second row and fourth column is -1, indicating that the second service does not exist. The value of the node in the third row and fourth column is 5, indicating that the speed limit of the third service is 5 units. The value of the node in the fourth row and fourth column is -1, indicating that the fourth service does not exist. The value of the node in the fifth row and fourth column is -1, indicating that the fifth service does not exist.

[0075] The value of the node in the first row and fifth column is -1, indicating that the first output port does not exist, the value of the node in the second row and fifth column is 15, indicating that the speed limit of the second output port is 15 units, the value of the node in the third row and fifth column is -1, indicating that the third output port does not exist, the value of the node in the fourth row and fifth column is -1, indicating that the fourth output port does not exist, and the value of the node in the fifth row and fifth column is -1, indicating that the fifth output port does not exist.

[0076] In a specific embodiment, the following can be generated according to the scheduling state bitmap and the rate limit flow control bitmap: Figure 3 The initial bitmap shown. During the generation process, the value in the speed limit flow control bitmap is added to the corresponding bit in the scheduling status bitmap to obtain the initial bitmap. For example, the value 3 in the first row and first column of the speed limit flow control bitmap is assigned to the first row and first column of the scheduling status bitmap, and the value of the first row and first column in the initial bitmap can be obtained. Similar operations are performed on other bits to obtain the initial bitmap. Among them, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling status bitmap.

[0077] In a specific embodiment, the following can be generated according to the scheduling status bitmap, the rate limit flow control bitmap and the rate limit enable bitmap: Figure 4The initial bitmap shown. The columns of the speed limit enable bitmap are used to indicate nodes of different levels, the rows of the speed limit enable bitmap are used to indicate one of the nodes of the corresponding level, and each bit value of the speed limit enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the speed limit enable bitmap is a first value, the corresponding node is enabled, and when the value of the bit of the speed limit enable bitmap is a second value, the corresponding node is not enabled. It is not difficult to understand that only the enabled bits are processed as described above, and the disabled bits do not need to be processed as described above.

[0078] S103: performing a recursive operation on the initial bitmap to obtain an updated result bitmap.

[0079] The recursive operation of the initial bitmap includes two processes: forward update and reverse update. Figure 3 Provide a detailed description.

[0080] In the process of forward update, the calculation starts from the first column to the fifth column. If the sum of the speed limits of the queues in the first column pointing to the same device in the second column is less than or equal to the speed limit of the device pointed to in the second column, the speed limit of the device pointed to in the second column is modified to the sum of the speed limits. Otherwise, no processing is performed. For example, if the speed limit (that is, the sum of the speed limits) of the first queue corresponding to the first row and the first column is greater than the speed limit of the first device corresponding to the first row and the second column, the speed limit of the first device corresponding to the first row and the second column is not processed. If the sum of the speed limits of the first queue corresponding to the first row and the first column and the second queue corresponding to the second row and the first column is greater than the speed limit of the second device corresponding to the second row and the second column, the speed limit of the second device corresponding to the second row and the second column is not processed. If the speed limit (that is, the sum of the speed limits) of the fourth queue corresponding to the fourth row and the first column is less than the speed limit of the fourth device corresponding to the fourth row and the second column, the speed limit of the fourth device corresponding to the fourth row and the second column is modified to the speed limit of the fourth queue, that is, 2 units. If the speed limit (that is, the sum of speed limits) of the fifth queue corresponding to the first column of the fifth row is equal to the speed limit of the fifth device corresponding to the second column of the fifth row, the speed limit of the fifth device corresponding to the second column of the fifth row will not be processed. Process the second to fifth columns in the same way, and you can get the following: Figure 3 The result after the forward update process is shown in .

[0081] After the forward update is completed, the reverse update process begins. During the reverse update process, first start calculating from the fifth column to the first column. If the sum of the speed limits in the fourth column pointing to the same output port in the fifth column is greater than the speed limit of the output port pointed to in the fifth column, the speed limits of the multiple services in the fourth column are proportionally distributed to the speed limit of the output port, otherwise, no processing is performed. For example, the sum of the speed limits of the first service and the third service in the fourth column pointing to the same second output port in the fifth column is equal to the speed limit of the output port pointed to in the fifth column, so no processing is required. Then, if the sum of the speed limits in the third column pointing to the same service in the fourth column is greater than the speed limit of the service pointed to in the fourth column, the speed limits of the multiple storages in the third column are proportionally distributed to the speed limit of the service, otherwise, no processing is performed. For example, the speed limit of the second storage is less than the speed limit of the first service, so no processing is required. However, the sum of the third storage and the fourth storage is greater than the speed limit of the third service, so the speed limit of the third storage is modified to 8, approximately equal to 3.2, change the speed limit of the fourth storage to 8, approximately equal to 1.8. By processing the third column to the first column in the same way, we can get the following Figure 3 The result after the reverse update process is shown in .

[0082] The result after the forward update and the reverse update is the result bitmap. The columns of the result bitmap are used to indicate nodes at different levels, the rows of the result bitmap are used to indicate one of the nodes at the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

[0083] See also Figure 5 , Figure 5 Schematic diagram of a speed limit determination device provided by the present application. Figure 5 As shown, the speed limit determination device of the present application includes:

[0084] The first generating module 110 is used to generate a scheduling state bitmap according to the scheduling relationship bitmap, wherein the columns of the scheduling relationship bitmap are used to indicate nodes of different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes of the next level;

[0085] A second generating module 120 is used to generate an initial bitmap according to the scheduling state bitmap and the speed limit flow control bitmap, wherein the columns of the speed limit flow control bitmap are used to indicate nodes of different levels, the rows of the speed limit flow control bitmap are used to indicate one of the nodes of the corresponding level, the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling state bitmap;

[0086] The recursive module 130 is used to perform a recursive operation on the initial bitmap to obtain an updated result bitmap, wherein the columns of the result bitmap are used to indicate nodes of different levels, the rows of the result bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

[0087] It can be understood that each module in the speed limit determination device can execute Figure 2 For details on the various steps of the speed limit determination method shown in Figure 2 And related descriptions will not be repeated here.

[0088] See also Figure 6 , Figure 6 4 is a schematic diagram of a computing device provided by the present application. The computing device 400 includes: one or more processing units 410 , a communication interface 420 and a storage unit 430 .

[0089] The processing unit 410, the communication interface 420 and the storage unit 430 are interconnected via a bus 440. Optionally, the computing device 400 may also include an input / output interface 450, which is connected to an input / output device for receiving parameters set by a user, etc. The computing device 400 can be used to implement some or all of the functions of the device embodiment or system embodiment in the above-mentioned embodiment of the present application; the processing unit 410 can also be used to implement some or all of the operation steps of the method embodiment in the above-mentioned embodiment of the present application. For example, the specific implementation of the various operations performed by the computing device 400 can refer to the specific details in the above-mentioned embodiment, such as the processing unit 410 is used to perform some or all of the steps in the above-mentioned method embodiment or some or all of the operations in the above-mentioned method embodiment. For another example, in the embodiment of the present application, the computing device 400 can be used to implement some or all of the functions of one or more components in the above-mentioned device embodiment, and the communication interface 420 can be specifically used for the communication functions necessary to implement the functions of these devices and components, and the processing unit 410 can be specifically used for the processing functions necessary to implement the functions of these devices and components, etc.

[0090] Figure 6 The computing device 400 may include one or more processing units 410, and the multiple processing units 410 may provide processing capabilities in a coordinated manner in a parallel connection manner, a serial connection manner, a serial-parallel connection manner, or any connection manner, or the multiple processing units 410 may constitute a processor sequence or a processor array, or the multiple processing units 410 may be divided into a main processor and an auxiliary processor, or the multiple processing units 410 may have different architectures such as a heterogeneous computing architecture. In addition, Figure 6 The computing device 400 shown in the figure, and the related structural description and functional description are exemplary and non-limiting. In some exemplary embodiments, the computing device 400 may include Figure 6 More or fewer components may be shown, or some components may be combined or separated, or may have a different arrangement of components.

[0091] The processing unit 410 may have a variety of specific implementation forms. For example, the processing unit 410 may include a processor (central processing unit, CPU), a graphic processing unit (graphic processing unit, GPU), a neural-network processing unit (neural-network processing unit, NPU), a tensor processing unit (tensor processing unit, TPU) or a data processing unit (data processing unit, DPU) and other combinations thereof, which are not specifically limited in the embodiments of the present application. The processing unit 410 may also be a single-core processor or a multi-core processor. The processing unit 410 may be a combination of a CPU and a hardware chip. The above-mentioned hardware chip may be an application-specific integrated circuit (application-specific integrated circuit, ASIC), a programmable logic device (programmable logic device, PLD) or a combination thereof. The above-mentioned PLD may be a complex programmable logic device (complex programmable logic device, CPLD), a field-programmable gate array (field-programmable gate array, FPGA), a generic array logic (generic array logic, GAL) or any combination thereof. The processing unit 410 may also be implemented using a logic device with built-in processing logic alone, such as an FPGA or a digital signal processor (digital signal processor, DSP), etc. The communication interface 420 may be a wired interface or a wireless interface for communicating with other modules or devices. The wired interface may be an Ethernet interface, a local interconnect network (LIN), etc., and the wireless interface may be a cellular network interface or a wireless local area network interface, etc.

[0092] The storage unit 430 may be a non-volatile memory, such as a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The storage unit 430 may also be a volatile memory, which may be a random access memory (RAM) used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous connection dynamic random access memory (SLDRAM), and direct rambus RAM (DR RAM). The storage unit 430 may also be used to store program codes and data, so that the processing unit 410 can call the program codes stored in the storage unit 430 to execute some or all of the operation steps in the above method embodiment, or to execute the corresponding functions in the above device embodiment. Figure 6 Show more or fewer components, or have different component configurations.

[0093] The bus 440 may be a peripheral component interconnect express (PCIe) bus, an extended industry standard architecture (EISA) bus, a unified bus (Ubus or UB), a compute express link (CXL), a cache coherent interconnect for accelerators (CCIX), etc. The bus 440 may be divided into an address bus, a data bus, a control bus, etc. In addition to the data bus, the bus 440 may also include a power bus, a control bus, and a status signal bus, etc. However, for the sake of clarity, Figure 6 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0094] The present application also provides a system, which includes multiple computing devices, and the structure of each computing device can refer to the structure of the computing device described above. The functions or operations that can be implemented by the system can refer to the specific implementation steps in the above method embodiment and / or the specific functions described in the above device embodiment, which will not be repeated here.

[0095] In the above embodiments, all or part of the embodiments can be implemented by software, hardware, firmware or any combination thereof. When implemented by software, all or part of the embodiments can be implemented 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, all or part of the processes or functions described in the embodiments of the present invention are generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from one network site, computer, server or data center to another network site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, microwave, etc.) means. The computer-readable storage medium can be any available medium that can be accessed by a computer, or it can be a data storage device such as a server or data center that includes one or more available media integrated. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape, etc.), an optical medium (e.g., a DVD, etc.), or a semiconductor medium (e.g., a solid-state hard disk), etc. In the above embodiments, the description of each embodiment has different emphases. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.

Claims

1. A method for determining a speed limit, characterized in that: include: Generate a scheduling state bitmap according to the scheduling relationship bitmap, wherein the columns of the scheduling relationship bitmap are used to indicate nodes of different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes in the next level; An initial bitmap is generated according to the scheduling state bitmap and the speed limit flow control bitmap, wherein the columns of the speed limit flow control bitmap are used to indicate nodes of different levels, the rows of the speed limit flow control bitmap are used to indicate one of the nodes of the corresponding level, the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling state bitmap; A recursive operation is performed on the initial bitmap to obtain an updated result bitmap, wherein the columns of the result bitmap are used to indicate nodes of different levels, the rows of the result bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

2. The method according to claim 1, characterized in that: Generate a scheduling status bitmap according to the scheduling relationship bitmap, including: A scheduling status bitmap is generated according to a scheduling relationship bitmap and a node enable bitmap, wherein the columns of the node enable bitmap are used to indicate nodes of different levels, the rows of the node enable bitmap are used to indicate one of the nodes of the corresponding level, and each bit value of the node enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the node enable bitmap is a first value, the corresponding node is enabled, and when the value of the bit of the node enable bitmap is a second value, the corresponding node is not enabled. The node corresponding to the bit in the scheduling status bitmap corresponding to the value of the first value in the node enable bitmap points to one of the nodes at the next level.

3. The method according to claim 1, characterized in that Generating an initial bitmap according to the scheduling state bitmap and the rate limit flow control bitmap includes: An initial bitmap is generated according to the scheduling status bitmap, the speed limit flow control bitmap and the speed limit enable bitmap, wherein the columns of the speed limit enable bitmap are used to indicate nodes of different levels, the rows of the speed limit enable bitmap are used to indicate one of the nodes of the corresponding level, and each bit value of the speed limit enable bitmap is used to indicate whether the corresponding node is enabled. When the value of the bit of the speed limit enable bitmap is a first value, the corresponding node is enabled; when the value of the bit of the speed limit enable bitmap is a second value, the corresponding node is not enabled; and the node corresponding to the bit in the initial bitmap corresponding to the value of the first value in the speed limit enable bitmap points to one of the nodes at the next level.

4. The method according to claim 1, characterized in that: The initial bitmap is recursively operated, including: forward updating the initial bitmap, in a single forward update: When the sum of the speed limits of multiple nodes pointing to the same node at this level is less than or equal to the pointed node, the value of the pointed node is set equal to the sum of the speed limits.

5. The method according to claim 4, characterized in that After the initial bitmap is forward updated, the method further includes reverse updating the updated initial bitmap. In a single reverse update: In the case that the speed limit of the directed node is less than the sum of the speed limits of the multiple nodes, the speed limit values ​​of the multiple nodes are distributed to the value of the directed node according to a ratio.

6. The method according to any one of claims 1 to 5, characterized in that: The levels include one or more of an egress port, a service, a storage service, a device, and a queue.

7. A speed limit determination device, characterized in that: include: A first generating module is used to generate a scheduling state bitmap according to a scheduling relationship bitmap, wherein the columns of the scheduling relationship bitmap are used to indicate nodes of different levels, the rows of the scheduling relationship bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the scheduling relationship bitmap is used to indicate the node to be merged into the next level; the columns of the scheduling state bitmap are used to indicate nodes of different levels, the rows of the scheduling state bitmap are used to indicate one of the nodes of the corresponding level, and some nodes in the scheduling state bitmap point to one of the nodes of the next level; A second generating module is used to generate an initial bitmap according to the scheduling state bitmap and the speed limit flow control bitmap, wherein the columns of the speed limit flow control bitmap are used to indicate nodes of different levels, the rows of the speed limit flow control bitmap are used to indicate one of the nodes of the corresponding level, the value of each bit in the speed limit flow control bitmap is used to indicate the speed limit of the corresponding node, the columns of the initial bitmap are used to indicate nodes of different levels, the rows of the initial bitmap are used to indicate one of the nodes of the corresponding level, the value of each node in the initial bitmap is used to indicate the speed limit of the corresponding node, and the pointing relationship between the nodes in the initial bitmap is exactly the same as the node pointing relationship in the scheduling state bitmap; A recursive module is used to perform recursive operations on the initial bitmap to obtain an updated result bitmap, wherein the columns of the result bitmap are used to indicate nodes of different levels, the rows of the result bitmap are used to indicate one of the nodes of the corresponding level, and the value of each bit in the result bitmap is used to indicate the speed limit of the corresponding node after the update.

8. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device or a cluster, the computing device or the cluster executes the operation steps of the method according to any one of claims 1 to 6.

9. A computer-readable storage medium, characterized in that: The method comprises computer program instructions. When the computer program instructions are executed by a computing device or a cluster, the computing device or the cluster performs the operation steps of the method according to any one of claims 1 to 6.

10. A computing device, characterized in that It comprises a flow table unloading system and a storage unit, the flow table unloading system and the storage unit can communicate with each other, and the flow table unloading system is the method according to any one of claims 1-6.

11. A computing device cluster, characterized in that: It comprises a flow table unloading system and a storage unit, the flow table unloading system and the storage unit can communicate with each other, and the flow table unloading system is the method according to any one of claims 1-6.

Citation Information

Patent Citations

  • Traffic scheduling method, computer equipment and medium

    CN118590443A

  • Communication device, non-transitory computer readable medium and wireless communication system

    US20180083739A1