I enjoy these wide ranging, deeply technical conversations.
One particularly interesting tidbit occurs at 27:30 when they are discussing the need for a standardized inter-controller protocol/API.
If you go to other software domains, they don’t have a need or want for standardization at this level.
You’ll want to listen to the following few minutes to get the gist of the whole line of thinking.
This paper is worth reading just for one neat idea. Everyone wants to make their code fast. If you had a magic wand that enabled you to ‘make function X’ faster then you could measure the impact on the performance of the system and you would know how important said function is to the overall performance. Obviously, this is a bit silly because if you had such a wand, you would just use it everywhere and not have to optimize the code yourself.
This paper inverts this idea. Instead of making function X faster, they leverage a neat trick to make every other function slower. Then the relative importance of the function to overall system performance can be measured. The results are impressive. Neat!
Note: The paper doesn’t just look at whole functions.
As of a couple days ago, for the first time since 1997, I no longer run a production email server – I’m a bit sad about it.
I’ve long been a proponent of distributed communications systems like email. I spent a lot of time with XMPP but eventually had to concede I was never going to get my non-uber-geek contacts to use it. However, I stubbornly continued hosting my personal email on my own server. It wasn’t a huge amount of work as I had experience running email servers with thousands of users so I didn’t have to learn anything new.
Over time keeping up on the spam and email authentication tools has gotten to be more work and I’ve had some problems with Outlook classifying my domain’s email as spam. Since neither the server’s addresses nor the domain have been in any email blacklists, I presume that some of the delivery problems are simply that my little one inbox email server doesn’t generate enough traffic to build a good reputation. Add to this that my trusty server, which has been running without failure since 2007, is long overdue for a component failure made it time to move on.
io_uring is a new interface for asynchronous I/O to the Linux kernel. The LWN article and the io_uring design doc are both worth reading. I’ve been playing with AF_XDP a bit and after reading the io_uring doc it seemed like some of the io_uring ideas would be great enhancements to AF_XDP. Happily, one of the more interesting features, adding a wake-up flag to AF_XDP to avoid syscalls, was recently posted to Netdev.