Mooncake Engineering Blog
Porting pg_mooncake and duckdb_mooncake to DuckDB 2.0, pg_duckdb 1.2.0, and pgrx 0.19.3
An engineering walkthrough of adapting duckdb_mooncake v0.0.2 and pg_mooncake v0.3.0 to DuckDB 2.0 C++ catalog/filter APIs, wiring LSN-consistent snapshot reads via dlsym, and fixing NULL filter …
pg_mooncake 0.3.0: First PGSTY Release with DuckDB 2.0, pgrx 0.19.3, and PostgreSQL 14–18 Support
pg_mooncake 0.3.0 (together with duckdb_mooncake v0.0.2 and moonlink v0.0.1) is the first release maintained by PGSTY, delivering DuckDB 2.0 / pg_duckdb 1.2.0 compatibility, pgrx 0.19.3 across …
Mooncake is joining Databricks!
Unifying the operational (Postgres / Lakebase) and intelligence (Lakehouse) data estates. The right way.
Mooncake: a real-time storage engine for Apache Iceberg
Technical whitepaper on Mooncake and Moonlink: Arrow write buffers, positional deletion vectors, conflict-free compaction remapping, Puffin indexes, and NVMe caching for real-time Apache Iceberg.
No, Iceberg won’t fix your data stack.
Apache Iceberg is great for Netflix-scale batch lakes, but painful for real-time apps unless we give it true RDBMS ergonomics: concurrent writes, online compaction, and native indexing.
but, my Postgres (+ lakehouse) is free
Snowflake and Databricks paid billions for their Postgres. Why Postgres + Apache Iceberg is the open, free stack for modern apps and AI agents.
HTAP is Dead
I spent the last 10 years building, and then rescuing HTAP databases. Their spirit lives on in the Lakehouse today.
What does Analytics in Postgres really mean?
From Level 0 SQL tuning to Level 3 real-time OLTP-to-columnstore sync: what developers actually want from Analytics in Postgres.
pg_mooncake v0.2: what we're cooking
The release where out-of-the-box analytics becomes reality: logical replication into columnstore tables, rowstore write buffering, and Apache Iceberg.
How to improve DuckDB performance on Parquet
How we made DuckDB run faster on Parquet files in ClickBench with the help of PostgreSQL system tables, row-group min/max pruning, and metadata caching.
Clickbench says Postgres is a great analytics database
PostgreSQL is now Top 10 on ClickBench with pg_mooncake — delivering specialized OLAP performance entirely inside Postgres.
wth are S3 tables
I studied AWS S3 Tables so you don't have to: how S3 table buckets enable catalog-free Apache Iceberg commits and what they mean for Postgres.
The easiest way to Analytics in Postgres: pg_mooncake v0.1
pg_mooncake comes out of beta, bringing native columnstore tables and DuckDB vectorized execution to Postgres.
pg_mooncake 🤝 drizzle: typed SDKs for your analytic workloads
Use your favorite TypeScript ORM (Drizzle) for analytical workloads on pg_mooncake columnstore tables in PostgreSQL.
pg_mooncake + Neon: serverless analytics in Postgres
How we accidentally built the best serverless database for analytics by combining Neon's storage engine with pg_mooncake's lakehouse architecture.
pg_mooncake: Fast Analytics in Postgres with Columnstore Tables and DuckDB
pg_mooncake brings columnstore tables with DuckDB execution to Postgres for fast analytics, supporting transactional inserts, updates, and deletes.
Mooncake: next-gen search and analytic systems
We are Zhou, Cheng, and Pranav, and we've spent the last decade building databases. Here are our principles for the next generation of data systems.
Reflections from the Iceberg Meetup
Last month, I spoke at the Iceberg meetup at Snowflake HQ. Here are my key takeaways on community-driven development, the early stages of open table formats, and the future of data performance.
Porting pg_mooncake and duckdb_mooncake to DuckDB 2.0, pg_duckdb 1.2.0, and pgrx 0.19.3
An engineering walkthrough of adapting duckdb_mooncake v0.0.2 and pg_mooncake v0.3.0 to DuckDB 2.0 C++ catalog/filter APIs, wiring LSN-consistent snapshot reads via dlsym, and fixing NULL filter …
pg_mooncake 0.3.0: First PGSTY Release with DuckDB 2.0, pgrx 0.19.3, and PostgreSQL 14–18 Support
pg_mooncake 0.3.0 (together with duckdb_mooncake v0.0.2 and moonlink v0.0.1) is the first release maintained by PGSTY, delivering DuckDB 2.0 / pg_duckdb 1.2.0 compatibility, pgrx 0.19.3 across …
Mooncake is joining Databricks!
Unifying the operational (Postgres / Lakebase) and intelligence (Lakehouse) data estates. The right way.
Mooncake: a real-time storage engine for Apache Iceberg
Technical whitepaper on Mooncake and Moonlink: Arrow write buffers, positional deletion vectors, conflict-free compaction remapping, Puffin indexes, and NVMe caching for real-time Apache Iceberg.
No, Iceberg won’t fix your data stack.
Apache Iceberg is great for Netflix-scale batch lakes, but painful for real-time apps unless we give it true RDBMS ergonomics: concurrent writes, online compaction, and native indexing.
but, my Postgres (+ lakehouse) is free
Snowflake and Databricks paid billions for their Postgres. Why Postgres + Apache Iceberg is the open, free stack for modern apps and AI agents.
HTAP is Dead
I spent the last 10 years building, and then rescuing HTAP databases. Their spirit lives on in the Lakehouse today.
What does Analytics in Postgres really mean?
From Level 0 SQL tuning to Level 3 real-time OLTP-to-columnstore sync: what developers actually want from Analytics in Postgres.
pg_mooncake v0.2: what we're cooking
The release where out-of-the-box analytics becomes reality: logical replication into columnstore tables, rowstore write buffering, and Apache Iceberg.
How to improve DuckDB performance on Parquet
How we made DuckDB run faster on Parquet files in ClickBench with the help of PostgreSQL system tables, row-group min/max pruning, and metadata caching.
Clickbench says Postgres is a great analytics database
PostgreSQL is now Top 10 on ClickBench with pg_mooncake — delivering specialized OLAP performance entirely inside Postgres.
wth are S3 tables
I studied AWS S3 Tables so you don't have to: how S3 table buckets enable catalog-free Apache Iceberg commits and what they mean for Postgres.
The easiest way to Analytics in Postgres: pg_mooncake v0.1
pg_mooncake comes out of beta, bringing native columnstore tables and DuckDB vectorized execution to Postgres.
pg_mooncake 🤝 drizzle: typed SDKs for your analytic workloads
Use your favorite TypeScript ORM (Drizzle) for analytical workloads on pg_mooncake columnstore tables in PostgreSQL.
pg_mooncake + Neon: serverless analytics in Postgres
How we accidentally built the best serverless database for analytics by combining Neon's storage engine with pg_mooncake's lakehouse architecture.
pg_mooncake: Fast Analytics in Postgres with Columnstore Tables and DuckDB
pg_mooncake brings columnstore tables with DuckDB execution to Postgres for fast analytics, supporting transactional inserts, updates, and deletes.
Mooncake: next-gen search and analytic systems
We are Zhou, Cheng, and Pranav, and we've spent the last decade building databases. Here are our principles for the next generation of data systems.
Reflections from the Iceberg Meetup
Last month, I spoke at the Iceberg meetup at Snowflake HQ. Here are my key takeaways on community-driven development, the early stages of open table formats, and the future of data performance.
-
Porting pg_mooncake and duckdb_mooncake to DuckDB 2.0, pg_duckdb 1.2.0, and pgrx 0.19.3
When Mooncake Labs paused public updates to pg_mooncake after v0.2.0, the extension was pinned to an earlier DuckDB 1.3.x / pg_duckdb snapshot and pgrx 0.12. Meanwhile, the PostgreSQL ecosystem moved forward to PostgreSQL 18, pgrx 0.19.3, and …
When Mooncake Labs paused public updates to pg_mooncake after v0.2.0, the extension was pinned to an earlier DuckDB 1.3.x / pg_duckdb snapshot and pgrx 0.12. Meanwhile, the PostgreSQL ecosystem moved forward to PostgreSQL 18, pgrx 0.19.3, and …
-
pg_mooncake 0.3.0: First PGSTY Release with DuckDB 2.0, pgrx 0.19.3, and PostgreSQL 14–18 Support
pg_mooncake 0.3.0 — released alongside duckdb_mooncake v0.0.2 and moonlink v0.0.1 — is the first release of the Mooncake real-time analytics suite maintained by PGSTY: pgsty/pg_mooncake v0.3.0 (MIT) pgsty/duckdb_mooncake v0.0.2 (MIT) pgsty/moonlink …
pg_mooncake 0.3.0 — released alongside duckdb_mooncake v0.0.2 and moonlink v0.0.1 — is the first release of the Mooncake real-time analytics suite maintained by PGSTY: pgsty/pg_mooncake v0.3.0 (MIT) pgsty/duckdb_mooncake v0.0.2 (MIT) pgsty/moonlink …
-
Mooncake is joining Databricks!
Thirteen months ago, we started Mooncake to bring the data intelligence stack that powers giants like OpenAI to every vibe-coded app and developer. From first prompt to IPO. Today, we’re joining forces with Databricks. The mission continues: make …
Thirteen months ago, we started Mooncake to bring the data intelligence stack that powers giants like OpenAI to every vibe-coded app and developer. From first prompt to IPO. Today, we’re joining forces with Databricks. The mission continues: make …
-
Mooncake: a real-time storage engine for Apache Iceberg
This technical overview assumes familiarity with Apache Iceberg, an open table format for analytical datasets. Iceberg is part of the general “Lakehouse” movement, where users: Store large datasets using open file formats (Parquet + Metadata) in …
This technical overview assumes familiarity with Apache Iceberg, an open table format for analytical datasets. Iceberg is part of the general “Lakehouse” movement, where users: Store large datasets using open file formats (Parquet + Metadata) in …
-
No, Iceberg won’t fix your data stack.
Life is expectations vs reality. Here is one for Apache Iceberg – a favorite amongst the data community. Expectations: Iceberg is the solution to all my data pains See, the core of Iceberg is pretty neat: Keep all data in object storage in open file …
Life is expectations vs reality. Here is one for Apache Iceberg – a favorite amongst the data community. Expectations: Iceberg is the solution to all my data pains See, the core of Iceberg is pretty neat: Keep all data in object storage in open file …
-
but, my Postgres (+ lakehouse) is free
Disclaimer: Your Postgres and Lakehouse are free and open too. You don’t need to be (or spend like) a giant to use them. Why Postgres + Lakehouse? Reason #1: If you believe in AI, this is the agent stack Agents need memory. Both working memory and …
Disclaimer: Your Postgres and Lakehouse are free and open too. You don’t need to be (or spend like) a giant to use them. Why Postgres + Lakehouse? Reason #1: If you believe in AI, this is the agent stack Agents need memory. Both working memory and …
-
HTAP is Dead
This blog is inspired by Jordan Tigani’s blog titled “Big Data is Dead”. Jordan and I actually spent some time building an HTAP database at SingleStore. The good old days (’80s) Back in the ’80s, one relational database did everything. Transactions …
This blog is inspired by Jordan Tigani’s blog titled “Big Data is Dead”. Jordan and I actually spent some time building an HTAP database at SingleStore. The good old days (’80s) Back in the ’80s, one relational database did everything. Transactions …
-
What does Analytics in Postgres really mean?
Few areas in databases are hotter right now than extending Postgres to support analytics queries. This isn’t a particularly novel area either –– there have been plenty of attempts in the last decade: Here is what it means to our customers –– and why …
Few areas in databases are hotter right now than extending Postgres to support analytics queries. This isn’t a particularly novel area either –– there have been plenty of attempts in the last decade: Here is what it means to our customers –– and why …
-
pg_mooncake v0.2: what we're cooking
With v0.1, we proved that Postgres can deliver great analytics performance. Our approach combined two key pieces—DuckDB vectorized engine and a columnstore table—making pg_mooncake the only extension in Postgres that integrates both. The results …
With v0.1, we proved that Postgres can deliver great analytics performance. Our approach combined two key pieces—DuckDB vectorized engine and a columnstore table—making pg_mooncake the only extension in Postgres that integrates both. The results …
-
How to improve DuckDB performance on Parquet
Last week, we ran ClickBench on Postgres and ranked in the top 10. We showed that Postgres can be extended with pg_mooncake to support serious analytics workloads. In the announcement, we got a lot of questions on how pg_mooncake outperforms DuckDB …
Last week, we ran ClickBench on Postgres and ranked in the top 10. We showed that Postgres can be extended with pg_mooncake to support serious analytics workloads. In the announcement, we got a lot of questions on how pg_mooncake outperforms DuckDB …
-
Clickbench says Postgres is a great analytics database
TL;DR: We spent a few months optimizing PostgreSQL and made it to the Top 10 on ClickBench, a benchmark typically dominated by specialized analytics databases. What’s more, all compute is within Postgres, and all tables are managed directly by …
TL;DR: We spent a few months optimizing PostgreSQL and made it to the Top 10 on ClickBench, a benchmark typically dominated by specialized analytics databases. What’s more, all compute is within Postgres, and all tables are managed directly by …
-
wth are S3 tables
Amazon announced table buckets during re:Invent last year. An S3 bucket that’s also a table? What does that mean? TL;DR: S3 tables allow Iceberg tables to exist without a catalog. Let me explain. Iceberg vs Delta Lake What? I thought Iceberg and …
Amazon announced table buckets during re:Invent last year. An S3 bucket that’s also a table? What does that mean? TL;DR: S3 tables allow Iceberg tables to exist without a catalog. Let me explain. Iceberg vs Delta Lake What? I thought Iceberg and …
-
The easiest way to Analytics in Postgres: pg_mooncake v0.1
We announced pg_mooncake to the world on Day 60. Today, Day 131, pg_mooncake comes out of beta. pg_mooncake wins on ease and performance. So, we doubled down for v0.1. That’s it. The Easiest Way to Fast Analytics in Postgres With a native columnstore …
We announced pg_mooncake to the world on Day 60. Today, Day 131, pg_mooncake comes out of beta. pg_mooncake wins on ease and performance. So, we doubled down for v0.1. That’s it. The Easiest Way to Fast Analytics in Postgres With a native columnstore …
-
pg_mooncake 🤝 drizzle: typed SDKs for your analytic workloads
A thing that surprised us in the pg_mooncake launch was how much developers cared about ORMs for their analytical workloads. We saw two typical requests: “I have a bunch of Parquet files. I want full ORM support over them.” “I use Drizzle/Prisma for …
A thing that surprised us in the pg_mooncake launch was how much developers cared about ORMs for their analytical workloads. We saw two typical requests: “I have a bunch of Parquet files. I want full ORM support over them.” “I use Drizzle/Prisma for …
-
pg_mooncake + Neon: serverless analytics in Postgres
pg_mooncake launched in beta two months ago. It adds columnar storage and a vectorized engine to Postgres. Over the last two months, with our customers, we’ve realized we accidentally built the best serverless database for analytics. Here’s the …
pg_mooncake launched in beta two months ago. It adds columnar storage and a vectorized engine to Postgres. Over the last two months, with our customers, we’ve realized we accidentally built the best serverless database for analytics. Here’s the …
-
pg_mooncake: Fast Analytics in Postgres with Columnstore Tables and DuckDB
pg_mooncake brings columnstore tables with DuckDB execution to Postgres for fast analytics. It supports transactional inserts, updates, and deletes, just like regular Postgres tables. Data is written with Delta Lake (and Apache Iceberg in v0.2+) …
pg_mooncake brings columnstore tables with DuckDB execution to Postgres for fast analytics. It supports transactional inserts, updates, and deletes, just like regular Postgres tables. Data is written with Delta Lake (and Apache Iceberg in v0.2+) …
-
Mooncake: next-gen search and analytic systems
We are Zhou, Cheng, and Pranav. And we’ve spent the last decade building databases at MemSQL (now SingleStore). We love complex systems, deep-tech engineering, and naturally – physics 🙂 Data systems, much like physics, are built on certain …
We are Zhou, Cheng, and Pranav. And we’ve spent the last decade building databases at MemSQL (now SingleStore). We love complex systems, deep-tech engineering, and naturally – physics 🙂 Data systems, much like physics, are built on certain …
-
Reflections from the Iceberg Meetup
Last month, I spoke at the Iceberg meetup at Snowflake HQ. Public speaking has never been my favorite, and knowing Snowflake CEO Sridhar and Tabular CEO Ryan were in the audience did not help. It was day 18 of starting Mooncake Labs, and I spoke …
Last month, I spoke at the Iceberg meetup at Snowflake HQ. Public speaking has never been my favorite, and knowing Snowflake CEO Sridhar and Tabular CEO Ryan were in the audience did not help. It was day 18 of starting Mooncake Labs, and I spoke …