Quack is DuckDB’s beta client-server protocol, which lets one DuckDB instance execute work through another over HTTP. It has two modes: attach mode makes remote tables appear local, leaving the client to plan queries and stream table data; pushdown mode sends SQL to the server for remote execution. To measure the network layer’s cost, the author built a benchmarking lab that emphasizes reproducible experiments rather than isolated timing claims. Each result is stored with its raw timings, configuration, software and hardware details, and safeguards for identifying changes or tampering. Experiments use regenerated data, cold-cache runs, and five replications per condition.
The first experiment compared in-process DuckDB, Quack attach, and Quack pushdown across tables of 1,000 to 10 million rows. It used an unfiltered aggregation that always returns 12 rows, keeping output size constant while the amount of data scanned grows. The results overturn the hypothesis that network overhead would fade as scans grew: attach mode slowed from 2.6 times in-process at 100,000 rows to 9.5 times at 10 million, with a fitted scaling exponent near 0.55. Because attach streams table data to the client, its overhead increases with scan size. Pushdown stayed near twice the in-process time across scales, with a similar scaling pattern, since only the small result set crosses the network. The comparison identifies data streaming, rather than returning query results, as the source of attach mode’s growing cost.
Summary generated by AI from the linked article. hn.today is not affiliated with Hacker News or Y Combinator.