Skip to content

gk: speed get_empty_fib_id() up#608

Merged
AltraMayor merged 1 commit intomasterfrom
speedy
Sep 20, 2022
Merged

gk: speed get_empty_fib_id() up#608
AltraMayor merged 1 commit intomasterfrom
speedy

Conversation

@AltraMayor
Copy link
Owner

@AltraMayor AltraMayor commented Sep 20, 2022

The original get_empty_fib_id() prioritizes having all fib entries close together. This strategy is too slow for large routing tables. Having a speedy get_empty_fib_id() is critical to quickly populate the routing table when Gatekeeper boots up.

To compare performance, a production routing table with 891094 prefixes was loaded via the Dynamic Configuration block. With the original get_empty_fib_id(), the loading took 26 minutes and 10 seconds. With the speedy get_empty_fib_id(), the same load took 4 minutes and 26 seconds. That is almost 6 times faster!

The original get_empty_fib_id() prioritizes having all
fib entries close together.  This strategy is too slow for
large routing tables.  Having a speedy get_empty_fib_id() is
critical to quickly populate the routing table when Gatekeeper
boots up.

To compare performance, a production routing table with
891094 prefixes was loaded via the Dynamic Configuration block.
With the original get_empty_fib_id(), the load took 26 minutes and
10 seconds.  With the speedy get_empty_fib_id(), the same load took
4 minutes and 26 seconds. That is almost 6 times faster!
@AltraMayor AltraMayor added the Operational demand This issue would make Gatekeeper safer and/or cheaper to operate label Sep 20, 2022
@AltraMayor AltraMayor added this to the Version 1.1 milestone Sep 20, 2022
@AltraMayor AltraMayor marked this pull request as ready for review September 20, 2022 19:47
@AltraMayor AltraMayor merged commit ef671ba into master Sep 20, 2022
@AltraMayor AltraMayor deleted the speedy branch September 20, 2022 19:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Operational demand This issue would make Gatekeeper safer and/or cheaper to operate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant