RE: [net PATCH] fib_trie: Fix trie balancing issue if new node pushes down existing node
From: David Laight <hidden>
Date: 2014-12-12 17:06:40
From: Alexander Duyck ...
quoted
quoted
One has to be mindful with this code that what it's doing now might be intentional. For example, it might be doing things this way on purpose in order to minimize rebalancing during route flaps. Barring anything like that, I think your change is fine.Alex, in case it isn't clear, I'm hoping that you might have some thoughts on this aspect of your changes. :)Route flaps should at most trigger an inflate without a deflate due to the way the resize logic works. If this occurs often it would be useful since then there would already be space in the tree for the next time around.
One way to deal with 'flapping' is to leave deleted items in the tree (marked so they won't be used). Deleted entries do need to be garbage collected at some point. Doing so during insert is more than adequate, and possibly only for nodes that are traversed while processing the insert itself (and maybe only is the ratio of valid to invalid entries is low). This might also mean that you don't need to actively run any timeouts. Timed out entries just stay put - marked invalid by their timestamp. David