Top all-time · #5319
Jeremy Cole
Personal blog · blog.jcole.usdatasystemsprogramming
Jeremy Cole's personal blog at blog.jcole.us covers data, systems and programming. Since 2012, 15 different Hacker News readers have linked it 33 times, most often “The MySQL “swap insanity” problem and the effects of the NUMA arch (2010)”. It is still writing: the last post was on 2026-01-02, and you can follow it by feed.
Too few sampled comments (9) to say how often HN recommends it.?
Why HN links it
HN readers link Jeremy Cole's blog for deep, detailed writing on MySQL InnoDB internals, including B+ tree index structures and tooling to visualize .ibd files.
Summarised by Claude from a sample of 9 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Geek, electronics nerd, database nerd, aviation nerd, father of three.
Most-linked posts?
- The MySQL “swap insanity” problem and the effects of the NUMA arch (2010)3 people · 3 mentions · first linked 2017-11-22
- B+Tree index structures in InnoDB2 people · 2 mentions · first linked 2013-01-10
- Visualizing the impact of ordered vs. random index insertion in InnoDB2 people · 2 mentions · first linked 2018-03-21
- B+Tree index structures in InnoDB (2013)2 people · 2 mentions · first linked 2025-10-27
- A brief update on NUMA and MySQL2 people · 2 mentions · first linked 2012-04-16
What Hacker News says?
As a semi-toxic semi-expert, I think one of the main reasons there is precious little blog-sized content that goes deep is that it’s hard to do. Most subjects, in or out of tech, can go incredibly deep on many, many points. The more detail that’s included, the harder it becomes to write less. If you ask me to write 500 words on indexing strategies for an RDBMS, I’ll probably manage, but very little will be explained…
Comment linking /innodb/
on “A visual introduction to big O notation”Submitted The MySQL “swap insanity” problem and the effects of the NUMA architecture as a story · 92 points
HN discussionIf anyone is interested in contrasting this with InnoDB (MySQL’s default engine), Jeremy Cole has an outstanding blog series [0] going into incredible detail. [0]: https://blog.jcole.us/innodb/
Comment linking /innodb/
on “How Postgres stores data on disk – this one's a page turner”Submitted A brief update on NUMA and MySQL as a story · 41 points
HN discussionThis reminded me of innodb_ruby [0]. Super useful set of tools to visualize and learn about the InnoDB structure. Example usage [1]. [0]: https://github.com/jeremycole/innodb_ruby [1]: https://blog.jcole.us/2014/10/02/visualizing-the-impact-of-o...
Comment linking /2014/10/02/visualizing-the-impact-of-ordered-vs-random-index-insertion-in-innodb/
on “Visualizing Ext4”Submitted B+Tree index structures in InnoDB as a story · 7 points
HN discussionYou reboot a machine every time it starts to use swap?? What the hell kind of applications are you running? Even with java apps (which I grant you are difficult to estimate memory limits on without knowing the application's design) swapping can be a useful way to page out unneeded parts of memory - and more importantly, keep needed parts of memory intact. This can also mean keeping the Java processes in memory while…
Comment linking /2012/04/16/a-brief-update-on-numa-and-mysql/
on “Improved default settings for Linux machines”Submitted Nine years later, Citibank’s fraud department is still self-defeating as a story · 5 points
HN discussionLots of people mentioning Oracle, but only one mentioning MySQL (which is famous for doing this; I wasn't even sure Oracle did ;P). This article hasn't showed this is a massive win... and frankly I doubt this is even that difficult to prototype. Before writing this article I would have loved to see them do some simple benchmark to show this was an interesting direction. As it stands I don't even see why this was pub…
Comment linking /2014/04/16/the-basics-of-the-innodb-undo-logging-and-history-system/amp/
on “Do or undo – there is no VACUUM”Submitted The basics of the InnoDB undo logging and history system as a story · 3 points
HN discussion> If I were them, I'd confirm this by "perf record" or eBPF and/or by disabling transparent huge page compaction The report does look a lot like transparent hugepage defrag moving around memory randomly & system CPU spikes for no good reason. And the workaround is valid, because THP can currently only map anonymous memory regions such as heap and stack space. Literally the first thing I have to do to a Hadoop cluste…
Comment linking /2012/04/16/a-brief-update-on-numa-and-mysql/
on “System CPU Usage and Glibc”Submitted B+Tree index structures in InnoDB (2013) as a story · 2 points
HN discussionInnoDB does indeed use a B+ tree. A more thorough article on the topic is http://blog.jcole.us/2013/01/10/btree-index-structures-in-in... or the book High Performance MySQL.
Comment linking /2013/01/10/btree-index-structures-in-innodb/
on “MySQL (InnoDB) clustered and non-clustered indexes”Submitted Stupid and dangerous in MySQL: SET GLOBAL sql_log_bin as a story · 2 points
HN discussionTHIS. My favorite example is Jeremy Cole’s blog [0], especially the stuff on InnoDB. You want to take a deep dive into the murky internals of MySQL? This is it. Tons of other stuff as well, but those are my favorite. He wrote tooling to visualize .ibd files FFS. [0]: https://blog.jcole.us/
Comment linking /
on “Write about what you learn. It pushes you to understand topics better”Submitted InnoDB bugs found during research on InnoDB data storage as a story · 2 points
HN discussionWith a 16GiB RAM laptop I often use more memory than that which then ends up on swap (on zram) With NUMA swap etc. also becomes a bit more complicated (see also https://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the... ) I think the main question here is to use a swap partition or a swap file. The main problem of swap partitions is how inflexible they are, but lvm/btrfs/zfs make that less of an issue. On Solar…
Comment linking /2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
on “Ask HN: Do we still need SWAP partition?”Submitted The physical structure of records in MySQL/InnoDB as a story · 2 points
HN discussionSubmitted The physical structure of InnoDB index pages as a story · 2 points
HN discussionSubmitted Exploring InnoDB page management with innodb_ruby as a story · 2 points
HN discussionSubmitted Page management in InnoDB space files as a story · 2 points
HN discussionSubmitted A quick introduction to innodb_ruby as a story · 2 points
HN discussionSubmitted On learning InnoDB: A journey to the core as a story · 2 points
HN discussionSubmitted The basics of the InnoDB undo logging and history system – Jeremy Cole as a story · 1 points
HN discussionSubmitted B+Tree Index Structures in InnoDB as a story · 1 points
HN discussionSubmitted The MySQL “Swap Insanity” Problem and the Effects of NUMA (2010) as a story · 1 points
HN discussionSubmitted Visualizing the impact of ordered vs. random index insertion in InnoDB as a story · 1 points
HN discussionSubmitted The MySQL “swap insanity” problem and the effects of the NUMA arch (2010) as a story · 1 points
HN discussionSubmitted Visualizing the impact of ordered vs. random index insertion in InnoDB as a story · 1 points
HN discussionSubmitted A little fun with InnoDB multi-versioning as a story · 1 points
HN discussion