Mali 团队耗时重写 PostgreSQL 核心代码至 Rust,经历三次失败并花费十万美元后,最终通过全部回归测试。文章详细记录了从 C 到 Rust 迁移过程中的技术陷阱、性能权衡及具体实现细节,包括内存管理、并发模型适配及编译期检查策略,为大型 C 项目现代化改造提供了极具参考价值的一手工程经验。
It’s been a week since I published the original pgrust post. pgrust is my attempt to rewrite Postgres in Rust. My ultimate goal is to build a database that is safer to work with so that I can work … ...
I’ve written dozens of blog posts about Postgres internals. Postgres is one of the greatest databases out there. But from chatting with a lot of my friends at startups, I’ve seen consistent challenges...
Once a design of a system meets all the business constraints necessary, my next priority is to make the system as simple as possible. By simple, I mean a system that is both easy to understand and eas...
Over the past few years, I’ve interviewed with a dozen or so companies and have completed ~50 or so individual algorithm problems. I’m frequently given feedback that I did a great job at the algorithm...
One of the most important skills I believe programmers need is to understand when to use certain tools. My typical process for solving a problem is to go through each tool in my toolbox and see which ...
Day 3’s problem was an interesting one. We are given two wires and have to find the point where the two wires intersect that’s closest to the origin. As usual, we’ll approach this problem in two steps...
Day 2 of the Advent of Code is a classic – implement a virtual machine for a simple assembly like. Eric Wastl, the creator of the AoC, has been writing challenges like this for years before the AoC ev...
The Advent of Code is back! In past iterations of the Advent of Code, a bunch of my friends and I would share all our solutions. This year, I thought why not go the extra step and publicly write up … ...
In my last post, I showed you how you could use a number of SQL tricks to generate a class of fractals known as the “escape-time fractals”. In this post I’ll show you how you can use the same … Read t...
This post is based on half of a talk I gave at!!con. If you want to watch the talk, you can find it here. One not too well known aspect of SQL is that it’s Turing complete. This … Read the rest The...
I recently gave a talk at!!Con West about how you can use some of the dark corners of SQL to generate fractals. You can watch the recording here: To summarize the video, I write SQL queries that gene...
After being in beta for several months, Perfalytics is now generally available. Perfalytics is my attempt to bring a new approach to database performance. Perfalytics integrates directly with your da...
Today I’m announcing the beta for Perfalytics. Perfalytics is a tool I’ve been working on designed to make it easy to analyze query performance for Postgres. As the lead of the Database team at Heap, ...
It’s extremely important that you have backups. Without backups, you are at serious risk of losing data. If you don’t have backups, all it takes is one machine failure or fat fingered command to lose ...
JSONB is a nifty Postgres type that allows you to store unstructured data inside of Postgres. A common use case of JSONB is to represent a mapping from a set of keys to arbitrary values. JSONB is nice...
The parameter track_io_timing is a relatively unknown, but super helpful parameter when optimizing queries. As the name suggests, when the parameter is turned on, Postgres will track how long I/O take...