Scalability issues in the Internet routing system
Blaine Christian
blaine at blaines.net
Wed Oct 26 20:48:35 UTC 2005
>
>
>> I did read your comment on BGP lending itself to SMP. Can you
>> elaborate on where you might have seen this? It has been a
>> pretty monolithic implementation for as long as I can remember.
>> In fact, that was why I asked the question, to see if anyone had
>> actually observed a functioning multi-processor implementation of
>> the BGP process.
>>
>
> I can make the SMP statement with some authority as I have done the
> internal
> design of the OpenBGPd RDE and my co-worker Claudio has implemented
> it. Given
> proper locking of the RIB a number of CPU's can crunch on it and
> handle neighbor
> communication indepently of each other. If you look at Oracle
> databases they
> manage to scale performance with factor 1.9-1.97 per CPU. There is
> no reason
> to believe we can't do this with the BGP 'database'.
>
Neat! So you were thinking you would leave the actual route
selection process monolithic and create separate processes per peer?
I have seen folks doing something similar with separate MBGP routing
instances. Had not heard of anyone attempting this for a "global"
routing table with separate threads per neighbor (as opposed to per
table). What do you do if you have one neighbor who wants to send
you all 2M routes though? I am thinking of route reflectors
specifically but also confederation EIBGP sessions.
I think you hit the nail on the head regarding record locking. This
is the thing that is going to bite you if anything will. I have
heard none of the usual suspects speak up so I suspect that either
this thread is now being ignored or no one has heard of an
implementation like the one you just described.
More information about the NANOG
mailing list