Before jumping into books like DDIA or Database Internals, it helps to understand the systems layer these designs are built on.
A lot of the design of such data-intensive systems is based on virtual memory: page tables, page faults, mmap, the page cache, swapping, NUMA placement, TLBs, and the tradeoffs between what the OS wants and what the database wants.
My latest article is a ~25,000-word mini-book on virtual memory.
It starts from first principles and goes all the way down to advanced topics like NUMA placement and performance debugging with tools like perf and /proc.
I also wrote it differently: as a dialogue between a user-space process and the kernel.
Most treatments of virtual memory are dry and fact-heavy. I wanted this one to feel more like a story, while still being technically deep.
Link below.
Tom and I have finally finished a draft of Dynamic Programming Vol 2! Exhausting but satisfying. New approach to DP theory, advanced material, many applications... https://t.co/PPDk98DFgV
Thomas Watson has a new computational complexity textbook about to be published by Cambridge University Press. There's a free version online for personal use.
https://t.co/jHU7Uuy8G2
@LeaVerou I can get an "I don't know" from a person much more readily than from an LLM, which will make up stuff. That said, I need to think more about how to articulate my frustration with LLMs, since my objections don't seem well-defined.
I'm helping my computer scientists today, with this publicly available primer on intuitionistic type theory, by its creator, Per Martin-Löf, who is half man, half amazing
It would be hard to find clearer explanations of the type theory than this.
Pdf link in the comments
@techgirl1908 I don't use it because I have to curate its output so closely that I might as well write the code myself. It writes code that looks correct, but often is wrong or doesn't do quite what I want it to do.
Just found this nifty "Hitchhiker's Guide to Morphisms" cheatsheet -- lots of useful intuition for the zoo of recursion schemes (& very handy for keeping track of their names!)
Great complement to the "Fantastic Morphisms & How to Find Them" paper
https://t.co/iz5MzV7KcW
@kprather88 Holy cow. Election to the National Academy of Sciences is a career-defining accomplishment all by itself. Members are top scientists, according to other top scientists.
Here's another cute data structure trivia.
When we talk about memory layouts of static search trees, the most common ones we talk about are depth first, breadth first and Inorder layouts. However in all of the cache oblivious data structures based on search trees, we see the van Emde Boas layout being used.
What is the rationale behind this ?
The reason is that any root-leaf path in a vEB layout can be traversed cache-obliviously in O(log(B) N) memory transfers. And that matches the optimal bound of a B-Tree.
This has a very cute and interesting proof, which can be found in many papers that discuss cache oblivious data structures. In case you are looking for one, look no beyond this Erik Demaine lecture 7 video of his 6.851 Advanced Data Structures course (https://t.co/5cHxTgl2Bz), starting around 42:42. It's awesome.