<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: pdet</title><link>https://news.ycombinator.com/user?id=pdet</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 22 Oct 2026 02:53:16 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=pdet" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by pdet in "DuckDB 2.0.0 LTS “Cinnamon Teal”"]]></title><description><![CDATA[
<p>The DuckDB format supports Async I/O.<p>Disclaimer: I'm the DuckDB developer who implemented Async I/O for parquet, csvs and the DuckDB Format.</p>
]]></description><pubDate>Wed, 21 Oct 2026 18:09:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=50185157</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=50185157</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50185157</guid></item><item><title><![CDATA[New comment by pdet in "DuckDB Ducklake"]]></title><description><![CDATA[
<p>The main reason was due to a much easier tight-integration with the DuckDB internals, so we can take the most of the DuckDB engine (and existing code) to use. As the extension must interact with table scanners, casting functions and whatnot.<p>However, DuckLake doesn't need to be implemented in C++ at all, I believe that whatever fits the engine that will be performing the reads/writes in Parquet and the connectors for the DBMSs should be a good fit.<p>For example 
<a href="https://github.com/borchero/ducklake-sdk" rel="nofollow">https://github.com/borchero/ducklake-sdk</a> - Rust
<a href="https://github.com/datafusion-contrib/datafusion-ducklake" rel="nofollow">https://github.com/datafusion-contrib/datafusion-ducklake</a> - Rust
<a href="https://github.com/motherduckdb/ducklake-spark" rel="nofollow">https://github.com/motherduckdb/ducklake-spark</a> - Scala
<a href="https://github.com/brikk/trino-ducklake" rel="nofollow">https://github.com/brikk/trino-ducklake</a> - Kotlin<p>Disclaimer: I'm the lead developer of DuckLake.</p>
]]></description><pubDate>Fri, 09 Oct 2026 15:59:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=50022427</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=50022427</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50022427</guid></item><item><title><![CDATA[New comment by pdet in "DuckDB Ducklake"]]></title><description><![CDATA[
<p>The fundamental requirements of DBMS so it can be a DuckLake catalog are the following:
1. It must support primary keys
2. It must support basic data types (INTEGER,VARCHAR,TIMESTAMP)
3. ACID<p>There are ofc some quirks from the SQL supported on each DBMS. Hence, the DuckLake extension from DuckDB currently supports DuckDB, SQLite, Postgres, DuckDB + Quack and MySQL. With MySQL being in a rather experimental state.<p>Disclaimer: I'm the lead developer in DuckLake.</p>
]]></description><pubDate>Fri, 09 Oct 2026 15:43:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=50022182</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=50022182</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50022182</guid></item><item><title><![CDATA[New comment by pdet in "Asynchronous I/O in DuckDB: Work, Thread, Work"]]></title><description><![CDATA[
<p>DuckDB uses a speculative parallel CSV parsing technique. The basic idea is that the parser speculates about the state the CSV parser is in at a random byte (e.g., whether it is inside a quoted field) and tries to figure out where the next row starts based on that.There are validation steps during finalization as well, to ensure the parser did not got anything wrong in its speculation.<p>I've never gotten around to writing a blog post about it, but I go quite in-depth on the technique in this presentation:
<a href="https://www.youtube.com/watch?v=YrqSp8m7fmk" rel="nofollow">https://www.youtube.com/watch?v=YrqSp8m7fmk</a><p>(Disclaimer: I'm the author of the blog post and also the developer who implemented the entire CSV parser in DuckDB.)</p>
]]></description><pubDate>Sun, 16 Aug 2026 10:23:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49318687</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=49318687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49318687</guid></item><item><title><![CDATA[New comment by pdet in "Asynchronous I/O in DuckDB: Work, Thread, Work"]]></title><description><![CDATA[
<p>I've run quite a few benchmarks on that as well, on a few different machines, and oversubscribing ASYNC threads demonstrated very little performance downside. In the end, the memory governor also keeps these threads "in check" while still allowing full utilization when possible.<p>There is still something to gain from tuning it further (as you can see in the async I/O tuned benchmark), but having that network saturation by default is still a work in progress.<p>(Disclaimer: I'm the author of the blogpost)</p>
]]></description><pubDate>Sun, 16 Aug 2026 09:05:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49318269</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=49318269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49318269</guid></item><item><title><![CDATA[New comment by pdet in "Asynchronous I/O in DuckDB: Work, Thread, Work"]]></title><description><![CDATA[
<p>The main reason I decided to use a beefier machine is that it gives me flexibility when benchmarking, without the need to set up different environments. The CSV data, for example, is >80 GB. We can also “scale down the machine” for experiments where we want to stress-test lower-memory scenarios or use fewer threads by configuring DuckDB’s settings (e.g., SET memory_limit = '10GB'; or SET threads TO 1;).<p>(Disclaimer: I’m the author of the blog post.)</p>
]]></description><pubDate>Sun, 16 Aug 2026 08:59:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=49318232</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=49318232</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49318232</guid></item><item><title><![CDATA[Asynchronous I/O in DuckDB: Work, Thread, Work]]></title><description><![CDATA[
<p>Article URL: <a href="https://duckdb.org/2026/07/31/asynchronous-io">https://duckdb.org/2026/07/31/asynchronous-io</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49243061">https://news.ycombinator.com/item?id=49243061</a></p>
<p>Points: 281</p>
<p># Comments: 31</p>
]]></description><pubDate>Mon, 10 Aug 2026 13:01:18 +0000</pubDate><link>https://duckdb.org/2026/07/31/asynchronous-io</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=49243061</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49243061</guid></item><item><title><![CDATA[New comment by pdet in "Quack: The DuckDB Client-Server Protocol"]]></title><description><![CDATA[
<p>I think that Quack will become the primary option for a DuckLake catalog in the future, for several reasons. To list a few:<p>1. No type mismatches for inlining. If you use a non-DuckDB catalog, many types do not have a 1:1 mapping, which introduces additional overhead when operating on those data types.<p>2. You get the raw performance of DuckDB analytics (and now transactions) over the catalog. DuckDB reading DuckDB is simply faster than any of our Postgres/SQLite scanners.<p>3. No round-trip for retries. We can easily(tm) run the full retry logic on the DuckDB server side. Right now, these retries trigger multiple round trips for Postgres, making it a performance bottleneck for high-contention workloads.<p>Disclaimer: I'm a duckdb/ducklake developer.</p>
]]></description><pubDate>Tue, 12 May 2026 21:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48114693</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=48114693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48114693</guid></item><item><title><![CDATA[DuckDB’s Vectorized, Zero-Copy Scalar Python UDFs]]></title><description><![CDATA[
<p>Article URL: <a href="https://duckdb.org/2023/07/07/python-udf.html">https://duckdb.org/2023/07/07/python-udf.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=36653896">https://news.ycombinator.com/item?id=36653896</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 09 Jul 2023 12:25:18 +0000</pubDate><link>https://duckdb.org/2023/07/07/python-udf.html</link><dc:creator>pdet</dc:creator><comments>https://news.ycombinator.com/item?id=36653896</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36653896</guid></item></channel></rss>