A previous customer needed to replace a program before a 32-bit counter turned over, a simple task... However, the 2^32 links pointed to 2^32 large files, so suddenly we were doing a large-data migration. ProblemsBefore the new service can be used, we have to do all of get the current working set onto the new servicearrange… Continue reading When “Update” means “Migration”
Back in my ill-spent youth, I worked for three years on Solaris binary stability. These days, I work on Linux, which it turns out, has to deal with exactly the same problems. One of them is retiring deprecated kernel interfaces. Introduction We ship continuously to add features, but we keep having to fix bugs. It's… Continue reading How about a stable Kernel API?
In a previous life on clunky old individual machines, I used to have to semi-manually run steps with careful checks in between and stop if anything didn't work. Gee, now I have clusters, which have gazillions of machines, all of which I have to apply a series of steps to, and stop if anything goes… Continue reading Try, try again (without catch)
Go can be trapped into an NP-complete problem, that of handing mutually contradictory library dependencies, if we fail to render the problem impossible. Multics started in a world where such contradictions could exist, but refused to stay there. The Multicians responded by making the problem impossible by construction. This wheel was re-invented in Solaris, and… Continue reading Avoiding an NP-Complete Problem by Recycling Multics’ Answer
Bill Duncan, in a blog on event-pair latency, Deep Dive, ETL Dotplots, showed a different way to look at a time series that includes latency or response times. When I'm doing load tests (and I did a lot last year) I normally take a pair of plots like these as my raw data. These are from… Continue reading A different dimension for time series plots
Not IBM's Multiple Virtual Storage, minimum version selection. In Russ Cox's article on minimum version selection, he addresses the problem of what to do with a conflict, when two dependencies of your program ask for two versions of a common dependency of theirs, one newer, one older. In his model, you can only have one, so one… Continue reading An alternative to MVS
Kunle Olukotun didn't like systems that wasted their time stalled on loads and branches. He and his team at Afara Websystems therefore designed a SPARC processor that did work without waits. It became the Sun T1. Speed without speculating The basic idea is to have more decoders than ALUs, so you can have lots of threads… Continue reading How to go fast without speculating… Maybe. Perhaps.