
Henry Robinson
6.2K posts

Henry Robinson
@HenryR
Infrastructure @SlackHQ. Distributed systems engineer. I have of late - but wherefore I know not - lost all my data.



Let's assign CAP to the cabinet of curiosities: brooker.co.za/blog/2024/07/2… If you’re an experienced distributed systems person teaching new folks about trade-offs in your space, please don’t start with CAP. Tons of more interesting, more instructive, trade-offs.

So here's a story of, by far, the weirdest bug I've encountered in my CS career. Along with @maciejwolczyk we've been training a neural network that learns how to play NetHack, an old roguelike game, that looks like in the screenshot. Recenlty, something unexpected happened.





You ever see the same term pop up in a few places and think "hmmm"? @TigerBeetleDB often talks of "fault models". Wonder if theres more to this idea than I think. (Paper is "A Transaction Model", Jim Gray, IBM Research Laboratory 1980)


I’ve had a PR that fixed a *production outage* blocked once because one of the engineers did not appreciate the variable name I’ve chosen




Reading the Adaptive Radix Tree paper - Having the realisation that trie is such an underrated data structure. Wondering why we should use any other data structure for in memory database indexes. Here are some rough notes from the paper .. Tree based indexes (e.g. binary search tree or b-tree needs special care for cache friendliness, are expensive for updates and can show pipeline stall for branch misprediction. Hash based indexes are great for point queries, not so for range queries, are expensive to grow with O(n) complexity for reorganisation. Tries have O(k) complexity where k is the size of the key, which means independence from n (that is a HUGE plus). The trie height can be controlled through the span s of the radix tree and is usually smaller than the height of a binary search tree. Hence search can be faster - O(k) compared to O(k lg n) in BSTs. One problem with tries is they can have higher space consumption compared to trees. But ART manages this through variable sized data structures for inner nodes and leaves. The paper is a great read ..








