The real cost of random I/O
How good is the random_page_cost default, and should you lower it on modern flash storage?
The latest blog posts to take off on Hacker News. 1,888 posts.
How good is the random_page_cost default, and should you lower it on modern flash storage?
I’ve had this sense that HN has gotten absolutely innundated with bots last few months. First most obvious giveaway is the frequency with which you see accounts posting brilliant insights like 13 60 well and t6ctctfuvuh7hguhuig8h88gd to f6gug7h8j8h6fzbuvubt GB I be cugttc fav uhz cb ibub8vgxgvzdrc to bubuvtxfh tf d…
Mohammed Ketab
We are an exploratory species, just past the solar system now, but perhaps one day we will look back and call our galaxy merely the first. There are many problems to solve along the way, and today we will look at one very small one. How do we assign IDs to devices (or any object) so the IDs are guaranteed to always be…
Synchronization barriers let you test for race conditions with confidence.
Yes, for a supported subset of SQL. To establish a baseline, I integrated the SQLLogicTest suite.
Invariably, it involves trying to trap electrons in increasingly complicated ways.
Python 3.14 added Zstandard to stdlib; its incremental API finally makes classify-by-compression practical.
I love Rust and I love SQLite, so you can guess. Iwas pretty excited when I lerned that "SQLite was rewritten in Rust" What is SQLite, actually? 2 things: a
How I added Immich to my already robust photo management system to make it ridiculously robust.
Learn how to use PostgreSQL as a Dead Letter Queue (DLQ) for event-driven systems. Case study from Wayfair showing how to handle failures in Kafka consumers with PostgreSQL.
Creative ideas for speeding up queries in PostgreSQL
Why DuckDB has become my go-to tool for data processing, offering simplicity, speed, and powerful features.
Results and speed for other programs on enwik8 and enwik9 are available at the Large Text Compression Benchmark .
As my cat woke me up way too early for a Saturday morning, I decided to put all this extra time (and my ChatGPT Pro subscription) into good use and generated a QR-code generator for PostgreSQL, written as a single pure SQL statement. No external libraries or Postgres extension installation needed! The pqr.sql example…
We discovered that entire sections describing domestic U.S. intelligence facilities were deliberately removed from two published documents, while equivalent foreign facilities remained visible. The evidence exists in an unexpected place - the PDF metadata of documents published by The Intercept in 2016, and by The…
Sentiment analysis of 32,000 Hacker News posts shows 65% skew negative and earn 27% more points. Six transformer and LLM models tested, full data included.
The world tried to kill Andy off but he had to stay alive to to talk about what happened with databases in 2025.
CVE-2025-14847 allows attackers to read any arbitrary data from the database's heap memory. It affects all MongoDB versions since 2017, here's a simple explanation:
This article will show you how forming your Pokémon team can be turned into a mathematical optimization problem.
Learn how to clone PostgreSQL databases instantly using reflinks. Turn slow template copies into milliseconds with PostgreSQL 18's new file copy options.
I was chatting with a close friend of mine and he sent me a link to his new SaaS that he's developing.
Self-hosting Postgres is simpler and cheaper than managed services suggest, with comparable reliability and better performance tunability.
What does a relational database designed specifically for local SSDs look like? Postgres, MySQL, SQLite and many others were invented in the 90s and 00s, the era of spinning disks. A local NVMe SSD has ~1000x improvement in both throughput and latency. Design decisions like write-ahead logs, large page sizes, and…
Introduction Over the last decade, when working on databases with UUID Version 41 as the primary key data type, these databases have usually had bad performance and excessive IO. https://datatracker.ietf.org/doc/html/rfc4122#section-4.4 ↩
There comes a time in every software engineer’s life when they come up with a new binary-to-decimal floating-point conversion method. I guess my time has come. I just wrote one, mostly over a weekend: https://github.com/vitaut/zmij .
I wanted a dinner recommendation and got a research agenda instead. Using 13000+ restaurants, I rebuild its ratings with machine learning and map how algorithmic visibility actually distributes power.
Every modern exchange is a distributed database in disguise. This article reveals how trading engines transform chaotic streams of buy and sell orders into a perfectly ordered, replayable log, ensuring fairness, determinism, and market data reliability.
A blog mostly about Clojure programming