DuckLake Redefines Data Architecture by Pairing Real Databases with Plain Parquet Storage

The modern data engineering landscape has long been plagued by operational complexity, high storage costs, and cumbersome query planning. Traditional data lakehouses often require querying intricate hierarchies of JSON, Avro, and metadata files just to discover which Parquet files are relevant to a specific analytical workload. Seeking to dismantle this structural overhead, the creators of DuckDB have introduced DuckLake—an innovative open table format designed to drastically simplify data management by replacing complex metadata file layers with a standard, relational SQL database.
The Architectural Philosophy of DuckLake
At its core, DuckLake operates on a radical yet deceptively simple premise: store the metadata in a real relational database and keep the raw data in plain Parquet files on object storage like Amazon S3, Google Cloud Storage, or Azure Blob Storage.
In established open table formats such as Apache Iceberg or Delta Lake, multi-file structures, manifest lists, and snapshot chains dictate how engines find and read data. This decentralized metadata approach can result in significant latency and performance degradation, particularly when handling high volumes of small, incremental write operations—a phenomenon widely known in the industry as the "small file problem."
DuckLake eliminates these multi-step metadata discovery hoops. Instead of executing numerous remote requests to navigate nested metadata files, an analytical query engine asks a single, direct SQL question to the database catalog to retrieve the precise list of Parquet files required for execution. This architecture collapses structural complexity, cuts down unnecessary network round trips, and accelerates query planning across distributed environments.
Origins and Evolution within the DuckDB Ecosystem
The journey toward DuckLake began years ago within the academic and research corridors of the Centrum Wiskunde & Informatica (CWI) in the Netherlands. Pedro Holanda, the lead developer of DuckLake, joined the DuckDB project in 2018 when it was still in its infancy as a research prototype under co-creators Hannes Mühleisen and Mark Raasveldt.
Holanda’s early contributions focused heavily on foundational database components, including optimizing CSV readers—often regarded as one of the most challenging and unglamorous bottlenecks in data ingestion. Meanwhile, Guillermo Sanchez Dionis joined the core team with a rich background as a software and data engineer who had managed heavy, second-generation analytics platforms like BigQuery and Snowflake. Recognizing the steep operational expenses and high abstraction costs associated with enterprise serverless platforms, Dionis sought a leaner, developer-friendly alternative, eventually collaborating on DuckLake and the newly developed Quack protocol.
Overcoming High-Contention Workloads with the Quack Protocol
While DuckLake is fundamentally designed to decouple compute, storage, and catalog layers, database architectures frequently struggle with heavy write contention. Traditional lakehouse formats are engineered primarily for batch-oriented ingestion, often resulting in sluggish transaction throughput when subjected to heavy concurrent writes.
To address this limitation, the DuckDB team developed Quack, a modern client-server protocol built on standard HTTP/S infrastructure. When paired with Quack as the underlying catalog service, DuckLake handles up to 200 high-contention transactions per second—a benchmark performance level that significantly outpaces traditional open table formats.
By executing transactional conflict resolution and automated retry mechanisms directly on the server side rather than round-tripping back to the client application, Quack effectively eliminates the transaction bottlenecks that typically plague distributed data lakes. This optimization allows data teams to ingest streaming data and execute concurrent transactional workflows without sacrificing performance or durability.
Mitigating the Small File Problem via Data Inlining
One of the most persistent engineering hurdles in object storage environments is the proliferation of small files generated by frequent streaming insertions or micro-batch updates. Reading thousands of small files introduces severe latency and inefficient CPU caching.
DuckLake addresses this challenge through a specialized optimization known as data inlining. Rather than immediately generating thousands of fragmented Parquet files on object storage during minor data writes, DuckLake temporarily inlines the incoming tuples directly into an internal staging table within the catalog database.
These inlined records include snapshot identification markers and deletion tracking flags, preserving full ACID transaction guarantees without littering object storage with microscopic files. Once the accumulated data reaches an optimal volume threshold—such as a targeted half-gigabyte file size—the engine flushes the records into a unified, properly structured Parquet file. Benchmarks evaluating this feature indicate dramatic performance improvements over traditional lakehouse setups when processing continuous, high-frequency micro-writes.
Industry Implications and the Path to Production Readiness
As enterprises increasingly reevaluate their cloud data warehouse expenditures, open, cost-effective infrastructure has emerged as a primary architectural goal. DuckLake provides a flexible, modular foundation that avoids vendor lock-in. Because the specification relies on standard relational database primitives (such as timestamps, integers, and varchars) combined with open-source Parquet files, compute engines beyond DuckDB—including data fusion tools and specialized Spark connectors—can readily read and write to DuckLake instances.
Furthermore, DuckLake’s versatility supports diverse deployment patterns. For lightweight environments, developers can utilize an in-process DuckDB or SQLite catalog alongside local or cloud object storage. For large-scale enterprise deployments requiring multi-user write concurrency, PostgreSQL or the Quack protocol serve as robust, high-performance catalog engines.
Having achieved stability milestones following rigorous checkpointing, compaction, and orphan-file cleanup implementations, DuckLake has transitioned into a production-ready framework. Early adopters across various software verticals are already integrating the format into their core data stacks to drive down infrastructure costs while preserving relational consistency. As upcoming iterations of DuckDB and the Quack protocol roll out advanced asynchronous I/O and enhanced interoperability with Apache Iceberg, DuckLake stands positioned to fundamentally influence how modern applications and data scientists interact with analytical storage.







