<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m" -->

---
title: Highlights: Multi-Threaded Routing Daemons « ipSpace.net...
description: A curated collection of expert commentary on multi-threaded routing daemon implementations, sparked by a prior blog post. Industry veterans including Jeff...
canonical: https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Highlights: Multi-Threaded Routing Daemons « ipSpace.net blog | daily.dev
og:description: A curated collection of expert commentary on multi-threaded routing daemon implementations, sparked by a prior blog post. Industry veterans including Jeff...
og:url: https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m
og:image: https://api.daily.dev/og/posts/EK2uQ1L8M.png
og:image:alt: Highlights: Multi-Threaded Routing Daemons « ipSpace.net blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Highlights: Multi-Threaded Routing Daemons « ipSpace.net blog

**[ipSpace.net Blog](https://daily.dev/sources/ipspace)** · 7 min read · 0 upvotes · 0 comments

## Summary

A curated collection of expert commentary on multi-threaded routing daemon implementations, sparked by a prior blog post. Industry veterans including Jeff Tantsura, Dr. Tony Przygienda, Henk Smit, and others weigh in on the genuine difficulty of parallelizing routing protocol software. Key themes include: all modern routing implementations have some threading but true massive multi-threading at scale remains unsolved; moving to multi-threaded code in the early 2010s took years and caused hundreds of bugs; BGP implementations have seen little architectural improvement in 20 years; FIB download and installation time is arguably the biggest bottleneck, not the control plane; and OS scheduler centralization, inter-thread synchronization overhead, and compiler limitations all compound the problem at high core counts. The consensus is that significant improvement in BGP implementation quality is unlikely in the near term.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ipspace.net/2021/12/highlights-multi-threaded-routing-daemons>

## Questions this post answers

### Why is it so hard to make BGP daemons fully multi-threaded at scale?

Full multi-threading of BGP requires parallelizing ingress policy, best-path computation, RIB installation, egress policy, and update generation across many cores. Some stages require locking or must remain single-threaded (e.g., installing routes into Adj-RIB-In). Beyond that, inter-thread synchronization overhead and OS scheduler inefficiency cause performance to peak and then degrade as more cores are added, and the massive existing codebases make architectural refactoring extremely risky.

_Developers navigating BGP scalability trade-offs find the ongoing expert debate on daily.dev._

### What is the biggest performance bottleneck in modern routers — control plane or FIB download?

FIB download and installation time is the biggest bottleneck in modern routers, not the control plane. This problem has been known for over a decade and grows exponentially worse as the number of routes increases. At million-route scale or higher, FIB insertion latency becomes the most painful part of the problem, and approaches like Juniper's RIB sharding may or may not help.

_Engineers working at high route-count scale track developments like RIB sharding on daily.dev._

## Similar posts on daily.dev

- [Faster than Dijkstra?](https://daily.dev/posts/faster-than-dijkstra--luk6oiopf) · Hacker News · 3 upvotes · 0 comments
- [The Staggering Complexity And Subtlety Of Concurrency](https://daily.dev/posts/the-staggering-complexity-and-subtlety-of-concurrency-e4mpqhp2q) · Hackaday · 1 upvotes · 0 comments
- [Your Distributed System Is Slower Than a Laptop. You Just Don't Know It Yet., CodeGood](https://daily.dev/posts/your-distributed-system-is-slower-than-a-laptop-you-just-don-t-know-it-yet-codegood-w0xn0std3) · CodeGood · 3 upvotes · 0 comments

---

Tags: [#bgp](https://daily.dev/tags/bgp)

[View this post on daily.dev](https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Highlights: Multi-Threaded Routing Daemons « ipSpace.net blog","url":"https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m"},"datePublished":"2026-08-11T08:52:21.200Z","dateModified":"2026-08-11T08:59:47.843Z","description":"A curated collection of expert commentary on multi-threaded routing daemon implementations, sparked by a prior blog post. Industry veterans including Jeff...","image":"https://media.daily.dev/image/upload/s--OHB84bZF--/f_auto/v1722860399/public/Placeholder%2010","thumbnailUrl":"https://media.daily.dev/image/upload/s--OHB84bZF--/f_auto/v1722860399/public/Placeholder%2010","isAccessibleForFree":true,"articleSection":"ipSpace.net Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ipSpace.net Blog","logo":"https://media.daily.dev/image/upload/s--xS7E82MT--/f_auto,q_auto/v1786438303/logos/ipspace?_a=BAMAMicg0","url":"https://daily.dev/sources/ipspace"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"bgp","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ipSpace.net Blog","item":"https://daily.dev/sources/ipspace"},{"@type":"ListItem","position":3,"name":"Highlights: Multi-Threaded Routing Daemons « ipSpace.net blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/highlights-multi-threaded-routing-daemons-ipspace-net-blog-ek2uq1l8m#faq","mainEntity":[{"@type":"Question","name":"Why is it so hard to make BGP daemons fully multi-threaded at scale?","acceptedAnswer":{"@type":"Answer","text":"Full multi-threading of BGP requires parallelizing ingress policy, best-path computation, RIB installation, egress policy, and update generation across many cores. Some stages require locking or must remain single-threaded (e.g., installing routes into Adj-RIB-In). Beyond that, inter-thread synchronization overhead and OS scheduler inefficiency cause performance to peak and then degrade as more cores are added, and the massive existing codebases make architectural refactoring extremely risky. Developers navigating BGP scalability trade-offs find the ongoing expert debate on daily.dev."}},{"@type":"Question","name":"What is the biggest performance bottleneck in modern routers — control plane or FIB download?","acceptedAnswer":{"@type":"Answer","text":"FIB download and installation time is the biggest bottleneck in modern routers, not the control plane. This problem has been known for over a decade and grows exponentially worse as the number of routes increases. At million-route scale or higher, FIB insertion latency becomes the most painful part of the problem, and approaches like Juniper's RIB sharding may or may not help. Engineers working at high route-count scale track developments like RIB sharding on daily.dev."}}]}
```

