Systems We ❤
I had a really great time at Systems We Love 2 weeks ago. It was refreshing to attend a conference that had genuine talks about complicated systems that keep or kept the “world” running. No sponsor-driven drivel and no “here is how to do X” talks that could’ve been summarized by documentation.
Ozan Onay has already summarized all the talks, including links to videos, so I don’t have to. A few talks stood out in particular.
Ryan Zezeski’s coverage of the /proc filesystem was interesting because it was part technical, part a memorial to Roger Faulkner. The /proc filesystem is a very elegant solution to monitoring and debugging UNIX systems. The full paper is on my reading list.
Adam Fletcher’s “Life of an Airline Flight” dove deep into the complexities of reservation systems. Powered by behemoths with 100% uptime that pass your credit card number around willy-nilly, flight reservation is complicated; encapsulating legacy systems, EXPSPACE hard problems and arcane seat pricing rules.
Did you know that confirmation codes are 6 digits because the original system stored these records on a disk drive that could be entirely addressed using only 6 bytes? The offset where your record was stored was your confirmation code! Seat pricing rules include things like how to account for a baby who would travel free, but has a birthday that occurs when crossing the international date line. They also have tables for pricing organs being carried ex vivo.
Man’splained by Breanne Boland deserves praise for the clever title, and the excellent call to arms to write better documentation. Her insistence that all code, even the one you were going to throw away after the prototype, becomes permanent is true. Man pages are also a great window into our profession’s history. Breanne has links to resources in the blog version of the talk.
It is unfortunate that Marianna Bellotti’s talk, “7074 says Hello World”, was not recorded. It was a charming walkthrough off legacy systems used by the US government. The IBM 7074 was a decimal architecture computer that still powers various record keeping in the government. When the migration to IBM S/370 was made, they decided to just write an emulator for the 7074 instead of porting the programs. These are still operational. Demands to expose various data as JSON over the Web are satisfied by a Java servlet that executes commands using a terminal emulator and reads and re-formats the data. Kludges upon kludges. When Marianne was sent in to optimize response times, she discovered the older machines responding within 1-6ms, and the new Java application being the bottleneck…
Brian Troutwine took a look at the computer that literally took us to the moon, replete with compromises and bugs in mission critical components (which were fortunately never triggered). One interesting design choice was how various counters would eventually overflow in the 16-bit machine, but this was deemed acceptable because they would happen several months after the mission would end. In his words, the Apollo missions were “barely possible”, a feeling I now get about SpaceX. It would be awesome if someone from SpaceX could talk about modern computing systems in spaceflight at the next Systems We Love.
Kavya Joshi’s A Race Detector Unfurled was cool because using Lamport clocks for race detection in TSan is an interesting application of a device for reasoning about consensus to detecting instruction ordering, and admitting that modern multi-core systems are no different from distributed systems.
A special mention to Alex Wilson for using Harvard Graphics running on PC-DOS for his presentation on DNS.
One common thread throughout the conference was how the systems people loved were often from the past, but had principles that remain relevant even today. It is probably an outcome of survivor bias. The detritus of a technical field is only visible to those who deal with it day to day and we promote the “best” until all technology from the past seems great. Also interesting is how several talks focused on systems that were at the frontiers of computing when they made an impact. Perhaps modern engineers love the systems that solved the thorniest problems of their time (flight, reaching the Moon, the Internet) although the original authors were very likely cursing back then.
The day was long, but the year will be short and I would love to see another Systems we Love in 2017!