-
Notifications
You must be signed in to change notification settings - Fork 236
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
ovn-controller: Handle addresses deletion in address set incrementally.
The cost of reprocessing a lflow referencing a big address set can be very high. Now a single address change in an address set would cause the related logical flows being reprocessed. When the change rate of an address set is high, ovn-controller would be busy reprocessing lflows. This patch handles addresses deletion incrementally. It deletes the related flows for the deleted addresses only, without deleting and recreating unrelated flows unnecessarily. Scale test shows obvious performance gains because the time complexity changed from O(n) to O(1). The bigger the size of address set, the more CPU savings. With the AS size of 10k, the test shows ~40x speed up. Test setup: CPU: Intel(R) Core(TM) i9-7920X CPU @ 2.90GHz. 5 ACL all referencing an address set of 10,000 IPs. Measure the time spent by ovn-controller for handling one IP deletion from the address set. Before: ~400ms After: 11-12ms There is memory cost increase, due to the index built to track each individual IP. The total memory cost for the OF flows in ovn-controller increased ~20% in the 10k AS size test. Before: ofctrl_desired_flow_usage-KB:22248 ofctrl_installed_flow_usage-KB:14850 ofctrl_sb_flow_ref_usage-KB:7208 After: ofctrl_desired_flow_usage-KB:22248 ofctrl_installed_flow_usage-KB:14850 ofctrl_sb_flow_ref_usage-KB:15551 Signed-off-by: Han Zhou <hzhou@ovn.org> Acked-by: Mark Michelson <mmichels@redhat.com> Acked-by: Numan Siddique <numans@ovn.org>
- Loading branch information
Showing
6 changed files
with
265 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters