mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-12-22 09:41:54 +00:00
0e39ed0004
Currently, all fib hash tables use the same hashing function. This leads to a situation where feeding routes through a pipe from one table to another causes significant number of collisions, as routes are fed in the order of increasing hash values, but dst tables are sized based on the number of stored routes. The patch makes fib hashing function parametric and chooses random parameter for each table. Also generally improves quality of hashing functions. Unfortunately, while this patch fixes the issue with initial collisions, having different hashing functions leads to 2x slowdown of pipe feeding, presumably due to worse cache behavior in dst tables. Also, the original issue significantly affects just the initial part of feed, when the dst table is small, so even ideal fix would not improve that much. Therefore, no merge for this patch. |
||
---|---|---|
.. | ||
bsd | ||
cf | ||
linux | ||
unix | ||
config.h | ||
Doc | ||
sysdep.sgml |