Filesystems versus general tree structures
A while back I read Felix Kohlgrüber's The Tree Structure of FileSystems ( via ).As I read it, it argues that filesystem directories should be aricher and more general data structure, one that could contain bothdata and children ( which would make web paths map better on tothe 'filesystem API' ). As ithappens, I think there is a relatively good reason that directoriesare organization this way, one beyond simple history.
To put it simply, filesystem directories are optimized for
Why reproducible machines didn't used to be a priority (I think)
When I wrote about why we care about being able to (efficiently)reproduce machines , I mentioned that thisdidn't used to be a priority in the sufficiently old days. By thesufficiently old days I mean broadly the 1990s, at least in moremoderate sized environments like what used to be common at theuniversity ; I think by even the early00s, people here were starting to care. Today it's time for myrambles about some reasons why I think we didn
A quiet shift in what tech people build for their blogs
Tech people have always had a certain attraction to building theirown blogs instead of using a canned platform. Not every tech person,by any means (there are plenty of people who use readily availableplatforms because they have better things to spend time and energyon), but there's generally been enough tech people that there havebeen tendencies and trends. Back when I started Wandering Thoughts , the in thing to do was to build a dynamic blogengine. DWiki , the engine behind Wandering Thoughts was such a dynamic
Having one is often much easier than having more than one
Recently, I was sort of asked why we didn't just have multiplePrometheus servers (and were instead using mirrored 20TB HDs ). There are specific answers for the caseof Prometheus, but in general one is the easiest number of thingsto have . The moment you have more than one of something, you geta bunch of extra problems. At a minimum, you have to worry aboutconsistency between your N things, coordination between your Nthings, and choosing which of your N things you'
Notes on the Linux kernel's 'pressure stall information' and its meanings
As we increasingly move toUbuntu 22.04, enough of our machines now have the Linux kernel'ssomewhat new Pressure Stall Information ( also ) that I'vebeen investigating adding PSI information to our per-host dashboardsin our metrics setup .In the process I realized that I didn't understand the PSI informationas well as I needed to, so here are some notes.
The raw global PSI information appears in /proc/pressure in filescalled 'cpu', 'io',
What symmetric and asymmetric IP routing are
In a recent entry I talkedsomewhat informally about symmetric (IP) routing . Symmetric andasymmetric IP routing are ideas that I'm familiar with from workingon firewalls and networking, but it's not necessarily common knowledgein the broader community. We can approach what they are from twodirections, so I'm going to start from how conventional IP routingworks.
The traditional and normal way that your IP stack decides where anoutgoing IP packet should be sent is based (only) on the destinationIP address
Wishing for a simple way to set up multi-interface symmetric routing on Linux
For neither the first nor the last time, I've wound up in a situationwhere it would be quite useful for one of our machines to havewhat I will describe as simple symmetric routing across multipleinterfaces . What I mean by this is a situation where each of thehost's IP addresses is associated with an interface and when packetsgo out with a particular IP address, they use that interface (and theinterface's default route). I call this "symmetric routing" because itmakes the
Modern disk sizes and powers of two
Recently I grumbled in an aside about how disk drive vendors usedecimal ('SI') numbers instead of IEC 'binary'numbers , which I andvarious other people consider more natural. You might wonder what makesbinary sizes more natural for disk drives, especially since vendors havebeen using decimal sizes for a long time. My answer is that it comesdown to sector size.
Almost all disks have had 512 byte sectors for decades, and diskshave a user usable capacity that is an integer number of
A limitation on what 'go install' can install (as of Go 1.18)
As all people dealing with Go programs know or are learning, now that Go is module-only , the way you install thirdparty Go programs from source is now ' Famously, one difference between HDDs and SSDs is that SSDshave limits on how much data you can write to them and HDDsmostly don't (which means that SSDs have a definite lifetime ). These limits are a matter both ofactual failure and of warranty coverage, with the warranty coveragelimit generally being lower. We don't normally think about about this, though, because we're not awrite-intensive place. Sometimes there are surprises, such as highwrite volume on our MTAs or more go install go get $ go install github
Even for us, SSD write volume limits can matter
Menu