@lbugdb

Lake house for graphs: a fork of @kuzudb

Joined October 2025
Graph Database is the Filesystem
1
3
1
6
754
LadybugDB also uses OPFS in wasm mode! Also the shell has been updated to the recent 0.20.4 release. Link in Replies. nitter.cf/duckdb/status/21010256…
When #DuckDB-Wasm was launched in 2021, databases could not be persisted: everything lived in the Wasm heap and vanished when the tab closed. Keeping data meant serializing tables to Parquet, storing the bytes in IndexedDB, and re-registering them on the next page load. This was doable, but had to be handled at the application layer and was not offered out of the box by DuckDB-#Wasm. Modern browsers now ship the Origin Private File System (OPFS), a per-origin, sandboxed file system with random-access reads and writes. DuckDB-Wasm can use it as a storage backend. This post by @carlo_piovesan and @GeertjanW shows you how: duckdb.org/2026/09/18/opfs-w…
1
2
8
1,390
If you were interested in benchmarking the Cypher equivalent of this optimization with @lbugdb nitter.cf/motherduck/status/2100…
DuckDB 2.0 rewrote recursive CTEs. Walking a 20,000-commit git history: 1.8 to 16 s on 1.5.5, 0.10 s on 2.0, every run. 1.5: re-read the whole table every round. 2.0: read once, build a lookup, touch only the frontier's rows. Deep parent/child chains are where it shows.
1
1
1
4
891
We wrote about these optimizations back in June: nitter.cf/lbugdb/status/20679989…
Find out about recent performance improvements that improved some queries by 30x. These enhancements will be included in the upcoming 0.18.x release. Link in replies. nitter.cf/eatonphil/status/20628…
1
89
🦆🤓 When Denis Hirn implemented DuckDB’s first recursive CTE operator in 2020, correctness determined the design: evaluate the non-recursive term once, then evaluate the recursive term until the next working table is empty. That established the right semantic contract, but reusable runtime state was scoped too narrowly. In the upcoming DuckDB v2.0 release, we assign those scopes explicitly. #DuckDB’s recursive CTE engine now treats recursion as one long-lived computation: it retains eligible epoch-invariant state, chooses execution modes from exact frontier cardinalities and physical work, probes keyed state directly and gives `USING KEY ... UNION` changed-key semantics. Read more in this preview of the forthcoming v2.0 release: duckdb.org/2026/08/25/how-du…
73
icebug-disk is now the default export format in LadybugDB!
1
2
7
236
lbug -i xet://datasets/ladybugdb/lsqb-sf1/main/icebug-disk/schema.cypher
24
Replying to @ApacheArrow
@ApacheArrow and Arrow Flight now with Graph Databases
1
1
2
5
1,308
Even though its called Arrow Flight "SQL", Cypher works just fine.
1
1
43
Another 10x optimization KuzuDB used a technique called SIP (sideways information passing) which is essentially a bitmask called semi-join filter that the build side of a Hash-Join passes to the probe side. One problem: this worked for node tables only!
2
1
3
233
Our experiments show this is a very effective optimization. Implemented in the PR below. Shipping at the end of the month as a part of the 0.21.x release.
1
37
We've done some work to extend this to the REL tables. So on a social media benchmark with queries such as "Unique people who commented on posts tagged Cate_Blanchett.", you end up scanning large REL tables with millions of rows.
42