Take a look at this wait-event table: wait_event_type | wait_event | count ----------------+---------------+------- LWLock | WALWrite | 1193 IO | DataFileRead | 194 IO | DataFileWrite | 4 Lock | frozenid | 2 IO | WalSync | 1 1193 backends on WALWrite made no sense at all. This was a Postgres whose normal workload barely wrote anything. IOPS had exhausted a few hours earlier, connections had…
While doing some routine upgrades, I restarted hundreds of pods of a Nodejs websocket application. Every pod came back at ~250 MiB of memory, but one of them soon started to be hammered by some automation tool we have, and memory spike to 500+ MiB, and stayed there. This pattern wasn’t new. I’ve been seeing this for months. Well, today I decided to understand what’s happening,…
I’ve been kind of obsessed with packet switching and what it represented in the history of telecom and computer networking. In circuit switching, host A calls host B, a dedicated path is established through the network. Data goes through switches and reaches the host. The problem is that that path reserves bandwidth, which maintains a hard state. In telephones, it works well: in a 10 minute…
I’m getting old, so I gifted myself a terminal keyboard. Last years I read this article and got really fascinated by this. Well, I found this DEC-style Televideo terminal keyboard from the 70s or 80s (not sure the exact date). These old terminal keyboards were sold alongside a “computer terminal.” A computer terminal was essentially a “dumb” display and input device.…
The dumbest viable strategy is called Explore-Then-Commit: try each machine m times, average the payouts, then go with the winner. It works, but it’s not optimal. Measurement isn’t free. Too few rounds exploring, and you commit with bad data. But if you explore too much, you burn rounds you could have spent on the best machine. Now look at the degenerate case of ETC: m = 0. You walk…
Queueing & Load Modeling Open Versus Closed: A Cautionary Tale The Tail at Scale Controlling Queue Delay (CoDel) Database How Good Are Query Optimizers, Really? The Five-Minute Rule LeanStore: A High-Performance Storage Engine for NVMe SSDs Storage & I/O What Modern NVMe Storage Can Do A Wake-Up Call for Kernel-Bypass on Modern Hardware I/O Interface Independence with xNVMe Moving on From Group…