A Case for Upserts
Some thoughts on why upserts are necessary to write reliable web applications.
Topics /
The most popular blog posts about databases & data on Hacker News. 1,888 posts.
Some thoughts on why upserts are necessary to write reliable web applications.
LLMs will make more of your average stuff. And that's OK. Here's how average SQL beats fancy attribution models when your agent writes the queries.
Having seen this failure mode happen a couple times now, it's time to share. Yes, Virgil, multi-disk failures DO happen during RAID rebuilds. I have pictures, so it MUST be true!First,
You're probably reading this page because you've attempted to access some part of my blog (Wandering Thoughts) or CSpace , the wiki thing it's part of. Unfortunately you're using a browser version that my anti-crawler precautions consider suspicious, most often because it's too old (most often this applies to versions…
pqR — a “pretty quick” version of R — is now available to be downloaded, built, and installed on Linux/Unix systems. This version of R is based on R-2.15.0, but with many performance im…
While making a proposal to update Noto fonts for OpenStreetMap tiles, which fixes an issue with Kurdish labels using ڵا , I noticed a street with mismatched parentheses and was anticipating a deep dive into the tile renderer. But the actual problem was somewhere else:
Embedding sizes and architectures have changed remarkably over the past 5 years
Visualizations are awesome.
And a hateful ode to Object-Relational Mappers
How Postgres’ concurrency model coupled with long-lived transactions can degrade the performance of indexes on hot tables in your database.
Update, 2017-09-25 Hi! This essay is undergoing a long-overdue rewrite. In the meantime, consider my 2015 follow-up essay, Obergefell v. Hodges: the database engineering perspective....
Many internet companies use A/B testing to evaluate the performance of website changes they want to make. A typical metric in such scenarios is the conversion rate (CVR) of a user, i.e. the probability that a user converts (e.g. makes a purchase) on the website. A typical A/B test setup in such a situation would…
I was chatting with a close friend of mine and he sent me a link to his new SaaS that he's developing.
(This blog entry has been recovered for the sole purpose of repairing a link in Hackernews. This blog entry is otherwise hidden on the website. 2026-04-13)
I’ve been getting a lot of useful work done with Redis recently. Redis is typically categorised as yet another of those new-fangled NoSQL key/value stores, but if you look closer …
A high-level overview of Numba and Cython architectures
Since this article will probably have more reach than my usual rambling, It'll be written in English (but let's not make a habit of it).
Building MVT tiles from scratch
Starting with MySQL 5.0.3, the maximum field length for VARCHAR fields was increased from 255 characters to 65,535 characters. This is good news, as VARCHAR fields, as opposed to TEXT fields, are stored in-row for the MyISAM storage engine (InnoDB has different characteristics). TEXT and BLOB fields are not stored…
For a while now, Microsoft have provided a free Jupyter Notebook service on Microsoft Azure. At the moment they provide compute kernels for Python, R and F# providing up to 4Gb of memory per sessio…
A visual explanation of multi-level modeling
john-foreman.com is your first and best source for information about john foreman. Here you will also find topics relating to issues of general interest. We hope you find what you are looking for!
Download faa-wildlife-strikes.csv , a dataset of all aircraft-wildlife collisions reported to the Federal Aviation Administration between 2010 and mid-2016.