mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-14 18:01:54 +00:00
![]() Previous strategy was to resize the hash table when the length of any one bucket exceeded a certain size, with some logic for intelligently stopping resizes when the gains from doing so weren't sufficient. While this was a good idea that attempted to optimize both space and lookup time, unfortunately under transient degenerate conditions this led to some issues with the tables not resizing when they should have, harming performance. The resizing restriction was lifted, but this had the result of exacerbating degenerate behavior and caused out of memory conditions. This patch changes the hash expansion criterion to be based on the number of elements in the table. Once the # of elements in the table exceeds the number of buckets, the table size is doubled. While the space efficiency of this method decreases relative to the perfectness of the hash function, at least this strategy puts the table performance squarely in the hands of the hash function. Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com> |
||
---|---|---|
babeld | ||
bgpd | ||
debian | ||
doc | ||
eigrpd | ||
fpm | ||
gdb | ||
init | ||
isisd | ||
ldpd | ||
lib | ||
m4 | ||
nhrpd | ||
ospf6d | ||
ospfclient | ||
ospfd | ||
pimd | ||
pkgsrc | ||
ports | ||
python | ||
qpb | ||
redhat | ||
ripd | ||
ripngd | ||
snapcraft | ||
solaris | ||
tests | ||
tools | ||
vtysh | ||
watchfrr | ||
zebra | ||
.clang-format | ||
.gitignore | ||
AUTHORS | ||
bootstrap.sh | ||
buildtest.sh | ||
ChangeLog | ||
common.am | ||
COMMUNITY.md | ||
configure.ac | ||
COPYING | ||
COPYING-LGPLv2.1 | ||
defaults.h | ||
git-reindent-branch.py | ||
indent.py | ||
Makefile.am | ||
NEWS | ||
README | ||
README.NetBSD | ||
render_md.py | ||
REPORTING-BUGS | ||
SERVICES | ||
stamp-h.in | ||
update-autotools |
FRRouting is free software that manages various IPv4 and IPv6 routing protocols. Currently FRRouting supports BGP4, BGP4+, OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng, PIM-SM/MSDP and LDP as well as very early support for IS-IS, EIGRP and NHRP. See the file REPORTING-BUGS to report bugs. Free RRRouting is free software. See the file COPYING for copying conditions. Public email discussion can be found at https://lists.frrouting.org/listinfo Our public slack channel is at https://frrouting.slack.com