> If it's just an experiment No one ever suggested writing a brand new, production ready DNS server from scratch.
Regards, Ryan -------- Original Message -------- On 2025-08-10 20:13, Mike Crute <[email protected]> wrote: > On Mon, Aug 11, 2025 at 02:34:56AM +0000, Ryan Kozak wrote: > >> > >> On 2025-08-10 10:40, Michael Crute via NANOG <[email protected]> > wrote: > >> > >> 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. > >> > > This is not necessarily true anymore. As of Python 3.13 the GIL is now > > optional, though it defaults to enabled. They are slowly working > > towards flipping that. > > While they're definitely working towards a lock-free world it's still > very early and experimental. It's in a rather recently (Oct 2024) > release of Python, default disabled and hidden behind a flag > (--disable-gil). Also, to quote the 3.13 docs "expect some bugs and a > substantial single-threaded performance hit". I would also venture a > guess that DNS software written in Python will probably also need to be > updated to break its GIL-based assumptions. > > Not saying you can't run production DNS on a Python server stack but you > definitely should understand how to effectively scale Python apps and > load test it carefully otherwise you're in for some uncomfortable > surprises. You should also probably not run it in GIL-free mode just > yet. > > ~mike >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ NANOG mailing list https://lists.nanog.org/archives/list/[email protected]/message/GNXZUSEA3DSCHKVL6MWGBEZTV7S5A3YY/
