nanog mailing list archives

Re: Speaking of DNS server software...


From: Michael Crute via NANOG <nanog () lists nanog org>
Date: Sun, 10 Aug 2025 10:14:26 -0700

On Aug 10, 2025, at 07:43, Chris Woodfield via NANOG <nanog () lists nanog org> wrote:
On Aug 10, 2025, at 03:40, Etienne-Victor Depasquale via NANOG <nanog () lists nanog org> wrote:


Python is, well, Python. It makes as much sense to me to write a DNS
server in Perl or Javascript, which is to say: not much.

I don't follow. What's the objection?


I’d consider two off the top of my head -

1. Performance delta, but that’s likely anywhere near the issue with python than it is with earlier scripting 
runtimes. While it’s been a while since I’ve done a side-by-side comparison, I’d argue that once code is compiled, 
cpython runtime performance is far more akin to Java than perl or JS. Still not as performant as C or Go runtimes, 
though; bytecode is still bytecode.

The CPython interpreter does still have a global interpreter lock as well which causes thread synchronization on data 
access. You can mitigate this somewhat by running multiple instances of a server or asynchronous programming techniques 
but it still has a pretty substantial performance impact on highly concurrent systems. This is why most people scaling 
Python do so horizontally. I'd personally avoid something like Python for DNS or at least load test it very carefully 
before using it in production. 

~mike
_______________________________________________
NANOG mailing list 
https://lists.nanog.org/archives/list/nanog () lists nanog org/message/MBUKLDNVMTFCGLAWN5LJKFP4XLTGOM2K/

Current thread: