Distinguished Engineer @ Microsoft. Ex-MemSQL/SingleStoreDB cofounder. Database builder. One trick pony.

PostgreSQL famously does "double buffering" of data pages. It's one of the few SQL databases that uses buffered IO so some of its pages end up cached in both the kernel page cache and in PostgreSQL's own page cache (shared buffers). A nice side-effect of swapping out PostgreSQL's storage layer is that the double buffer disappears improving memory efficiency. This is why Azure HorizonDB uses a larger shared_buffers then typical PostgreSQL deployments.
5
8
34
2,538
We've done some work on HorizonDB to simplify PostgreSQL's interactions with cloud storage. Using storage designed for PostgreSQL lets PostgreSQL focus on running queries and transactions while letting the storage layer deal with everything else (i.e., hardening the log across AZs, replicating data to read replica's and standbys, handling dirty page writing, handling torn pages, etc.). The result is simpler algorithms and simpler code. This is the best way to make a system more reliable and more performant.
1
3
12
624
hmm... The pg_duckdb extension has been around for a few years with the same capabilities (in open source). This seems like a private fork of it based on the description? github.com/duckdb/pg_duckdb
A painful part of working with your data has always been that your live data and historical data are stuck in separate systems: the order a customer just placed lives in your database, while their last five years of orders sit in a data lake in S3. And answering a real question usually needs both at once (is this a normal purchase for them, or should we flag it?), and to do that you had to move the data together first, copying history out of the data lake into your database (or the other way around), because the database couldn’t read it where it lived. That meant guessing ahead of time which data you’d want, keeping a second copy of it all, building pipelines to move it, and constantly syncing so the two didn’t drift apart. A lot of plumbing, and slow going, all before you could answer one question. And even then, the answers were only as fresh as your last sync. That now changes with Aurora PostgreSQL, which can call your live data and historical data in S3 together, in a single query. No copying, no pipelines to keep in sync. And it’s fast, because we’ve built in DuckDB, a popular open source engine that’s really good at reading and analyzing data right where it’s stored. DuckDB reads the open formats like Parquet and Iceberg already sitting in your data lake, so there’s nothing to convert or move. As folks build AI agents into their apps, the data their agent needs will depend on the task in front of it. Being able to query that specific data live, instead of copying it over just in case, is gonna be a big help for builders. aws.amazon.com/blogs/aws/ama…
1
1
9
977
Adam Prout retweeted
We asked an agent to tune the same slow query on 3 Postgres MCP servers: Supabase, Neon and Postgres MCP Pro. Baton let us see why the agent ran extra queries and built unnecessary indexes, and once we knew why, we knew how to fix it. goodtiming.ai/blog/agent-tas…
6
3
17
936
Redis if implemented by experienced systems developers that know what they're doing :) (MongoDB went through a similar arc a decade ago with the shift to WiredTiger's storage engine)
The Garnet research paper has received the best paper award at VLDB 2026! The work will be presented in Boston on Thursday, Sep 3. Thanks to all our collaborators, users, partners, & OSS contributors! Links: vldb.org/pvldb/vol19/p224-ch… github.com/microsoft/garnet vldb.org/2026/conference-awa…
2
3
86
20,582
Good paper. transaction log\WAL storage for OLTP databases doesn't belong in S3 (for datalakes... maybe?). The design proposed in the paper is very similar to the HorizonDB WAL server.
There is a lot of hype around putting the WAL on object storage. However, for low-latency systems, e.g. OLTP databases, object storage is a suboptimal primitive for the WAL: (1) PUTs are expensive for small WAL writes [bytes/$]. (2) Object stores are optimized for throughput, not latency, with write latencies often around 10-50 ms. Because every transaction must wait for its WAL record to become durable, every transaction inherits that latency. This points to a missing storage primitive. In our (@maxikuschewski @melhindiCS @viktor_leis) latest accepted research paper at VLDB, we looked at how to close that gap.
2
45
10,692
Has anyone tallied up the amount of revenue generated in some way on the Postgres code base (via companies selling forks, services, extensions)? I made an attempt to list some of the services/databases built on its code here: techcommunity.microsoft.com/…
1
1
5
516
Broadly agree that there is some pressure to go faster via agents and hope your tests are good enough to catch problems. That said, I still have hope that the overall quality of software will go up with agents debugging, testing and fixing bugs. They are good at this.
I strongly believe there are entire companies right now under heavy AI psychosis and its impossible to have rational conversations about it with them. I can't name any specific people because they include personal friends I deeply respect, but I worry about how this plays out. I lived through the great MTBF vs MTTR (mean-time-between-failure vs. mean-time-to-recovery) reckoning of infrastructure during the transition to cloud and cloud automation. All those arguments are rearing their ugly heads again but now its... the whole software development industry (maybe the whole world, really). It's frightening, because the psychosis folks operate under an almost absolute "MTTR is all you need" mentality: "its fine to ship bugs because the agents will fix them so quickly and at a scale humans can't do!" We learned in infrastructure that MTTR is great but you can't yeet resilient systems entirely. The main issue is I don't even know how to bring this up to people I know personally, because bringing this topic up leads to immediately dismissals like "no no, it has full test coverage" or "bug reports are going down" or something, which just don't paint the whole picture. We already learned this lesson once in infrastructure: you can automate yourself into a very resilient catastrophe machine. Systems can appear healthy by local metrics while globally becoming incomprehensible. Bug reports can go down while latent risk explodes. Test coverage can rise while semantic understanding falls. Changes happens so fast that nobody notices the underlying architecture decaying. I worry.
1
5
1,108
Agreed, shared storage (Aurora, AlloyDB, HorizonDB, Neon, etc.) is the dominate design for cloud OTLP. It's not the best in every scenario, but it is for most use cases. You can push a lot of work (replication, full page writes, dirty page writes, etc.) into the storage layer
There is a new era of data tech that is effectively "__ on object storage": Turbopuffer is "vector search on object storage" Warpstream is "kafka on object storage" Neon is "Postgres on Object Storage" or “Postgres on S3”. It doesn’t mean that every read and write goes directly to S3. That would be incredibly slow. I’m saying that a Postgres database in the "Postgres on object storage" category can be faster than one in the "Postgres on a cluster of servers with NVMe disks" category. No one is claiming that S3 is faster than NVMe but Postgres on S3 (with low latency storage in between) can be faster than Postgres running on NVMe with HA on. HA is important here, without HA you don’t do durable writes so it would be an unfair comparison. While neon runs on s3, calls into s3 are almost never on the transaction reads or writes. Writes are sent into a consensus service and streamed into s3 asynchronously. So the claim can be expanded to Postgres running on a disaggregated storage which implements low latency tier on top of s3 is faster then Postgres with HA running on NVMe. We are not the only ones making this claim. For example AWS Aurora says "Aurora has 5x the throughput of MySQL and 3x of PostgreSQL with full PostgreSQL and MySQL compatibility." So why does disaggregating compute allow for higher throughput on Postgres and potentially lower latency as well? The reason is that we can offload a number of CPU and IO operations down to storage. We just published a blog post on how we can turn off full page writes which dramatically reduces WAL volume and saves on CPU cycles on the Postgres node. In many scenarios this may be a wash because for many workloads you might not be write throughout bound and therefore Postgres checkpoints and full page writes don’t impact overall throughput. However this is general purpose enough to impact a large swath of workloads. It’s also important to mention that scaling write throughput is more important since Postgres is a single write system and you can’t scale writes with read replicas. So is Postgres on S3 faster than Postgres on NVMe? We believe it can and will be. Postgres with disaggregated storage and several kernel performance optimizations has higher throughput than stock Postgres on NVMe with HA implemented via sync replication. We'll share more including latency impact as we gather insights after rollout. Lots of things to learn here if saving CPU on full page writes can have a material impact on latency under high throughput. The idea is that if CPU is all used up, freeing up some CPU will impact both latency and throughput - but we'll see! The statement is indeed provocative, but far from “shock value marketing” as some of the responses claim.
4
1
37
6,395
This approach gives you more CPU to run your workload. I talked about this in more detail recently in Andy's CMU tech talk series. HorizonDB uses Azure blob store as its durable storage (same design as the Socrates paper) piped.video/EdgeqeW47_w?si=wkn-… via @YouTube
7
655
If I had known database twitter was going to blow up about NVMe vs blob store for OLTP today, we would have hit on that in a little more detail! Still, if you're interested in a career working on databases hopefully this podcast will be of some interest to you.
🎙️ New #TalkingPostgres podcast Ep39 is out! @a_prout, distinguished engineer at Microsoft, talked about his engineering journey from MemSQL to HorizonDB, shared-storage, & why good systems programmers are paranoid 🎧 talkingpostgres.com/episodes… 📺 piped.video/L_2kyfL9LN0?si=6o5o…
1
2
30
3,093
🎙️ New #TalkingPostgres podcast Ep39 is out! @a_prout, distinguished engineer at Microsoft, talked about his engineering journey from MemSQL to HorizonDB, shared-storage, & why good systems programmers are paranoid 🎧 talkingpostgres.com/episodes… 📺 piped.video/L_2kyfL9LN0?si=6o5o…
1
2
7
3,361
If you're interested in: - how databases (and database services) are built - how building a database service at a startup compares to doing it at big tech - how Postgres vs MySQL vs SQL Server are different/same (I've work on/around all three!) come check this out!
Looking forward to talking to database architect Adam Prout @a_prout today/Wed 6 May at 10am PDT on the #TalkingPostgres podcast! Ep39 topic: From MemSQL to HorizonDB, an engineer's journey Where? Live on the Microsoft Open Source Discord. Join us: aka.ms/talkingpostgres-ep39-…
4
484
Agents are great testers and bug fixers if focused on this work. For code bases with a high quality bar (databases) and massive test suites, agents root causing bugs and proposing fixes is a big time saver. I hope they keep improving as testers! medium.com/@adamprout/agents…
1
2
21
5,673
Adam Prout retweeted
It is personal now. I have a new archenemy. I was having a great time at @AntithesisHQ's conference (the lineup for this year is fantastic), but then @carlsverre ruined my day. I hate that guy now. How? he told me about Hegel, and then I ended up spending the whole day fixing stuff. Carl might have saved me some 3 months of work. But he ruined my day. Can I ever forgive him? Read more 👇
3
3
92
9,578
Representing team Postgres... I'll talk about some of the changes we've made to Azure (and to Postgres) to improve the performance/reliability/security of running PostgreSQL in the cloud.
Today's Postgres vs. World Seminar Speaker: Adam Prout (@a_prout) will present the architecture of the newly released Microsoft Azure HorizonDB. Zoom talk open to public at 4:30pm ET. YouTube video available after: db.cs.cmu.edu/events/pg-vs-w…
3
7
65
17,124
Spring 2026 @CMUDB Seminar Series: PostgreSQL vs. The World db.cs.cmu.edu/seminars/sprin… Starts Mon Feb 2nd @ 4:30pm EST. We will alternate between a speaker from either a @Postgres DBMS or a non-Postgres DBMS. Open to the public over Zoom. All videos available on YouTube afterwards.
2
51
277
16,907
The pg_duckdb extension is now available to use with Azure Postgres. It's a quick way to get faster analytical query results from Postgres via running queries with duckdb's very good vectorized query engine. techcommunity.microsoft.com/…
2
1
6
1,211
feedback welcome. We're interested in improving PostgreSQL's support for analytical queries at Microsoft. Is pg_duckdb enough?
2
219