0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
bird/proto
Ondrej Zajicek ba2a076001 BGP: Improve tx performance during feed/flush
The prefix hash table in BGP used the same hash function as the rtable.
When a batch of routes are exported during feed/flush to the BGP, they
all have similar hash values, so they are all crowded in a few slots in
the BGP prefix table (which is much smaller - around the size of the
batch - and uses higher bits from hash values), making it much slower due
to excessive collisions. Use a different hash function to avoid this.

Also, increase the batch size to fill 4k BGP packets and increase minimum
BGP bucket and prefix hash sizes to avoid back and forth resizing during
flushes.

This leads to order of magnitude faster flushes (on my test data).
2022-05-15 15:05:37 +02:00
..
babel Babel: Fix compilation when LOCAL_DEBUG is set in packets.c 2022-04-22 17:04:56 +02:00
bfd BFD: Add 'strict bind' option 2022-04-07 19:33:40 +02:00
bgp BGP: Improve tx performance during feed/flush 2022-05-15 15:05:37 +02:00
mrt Routing tables list iteration should use explicit node struct position 2021-03-30 21:56:08 +02:00
ospf Nest: Clean up main channel handling 2021-06-17 16:56:51 +02:00
perf Perf: changed route update pattern to be more like common protocols 2020-03-12 09:26:05 +01:00
pipe BGP: Implement flowspec validation procedure 2022-02-06 23:27:13 +01:00
radv Nest: Clean up main channel handling 2021-06-17 16:56:51 +02:00
rip Nest: Clean up main channel handling 2021-06-17 16:56:51 +02:00
rpki RPKI: Add contextual out-of-bound checks in RTR Prefix PDU handler 2021-12-18 16:35:28 +01:00
static Nest: Clean up main channel handling 2021-06-17 16:56:51 +02:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00