Kuzu V0 120 Better
Here’s a technical write-up on Kuzu v0.1.20 — focusing on the performance and usability improvements that make it “better” compared to earlier versions.
8. Benchmarks – Real‑World Numbers
| Dataset | Query | 0.11.x (avg) | 0.12.0 (avg) | Speed‑up |
|---------|-------|--------------|--------------|----------|
| Social‑graph (10 M nodes, 50 M edges) | MATCH (p:Person)-[:FRIEND_OF]->(f) WHERE p.age>30 RETURN p.name, COUNT(f) | 4.8 s | 1.8 s | 2.7× |
| E‑commerce (5 M products, 30 M purchases) | MATCH (u:User)-[:PURCHASED]->(p) WHERE p.price>100 RETURN u.id, SUM(p.price) | 3.5 s | 1.1 s | 3.2× |
| Graph analytics – PageRank (10 M nodes) | CALL algo.pagerank('Page','LINKS') | 12 s | 4.0 s | 3.0× |
| CSV import (200 M rows) | kuzu load … --format csv | 14 min | 5 min | 2.8× | kuzu v0 120 better
Case B: Cybersecurity EDR (Endpoint Detection)
An Endpoint Detection agent runs on a server with only 8GB RAM for graph analysis. It must correlate 1M network flows per minute. V0.1.2’s new WCOJ join allows the agent to detect multi-stage attack patterns (lateral movement) without spiking CPU to 100%. Here’s a technical write-up on Kuzu v0
- Default: Usually defaults to a modest size.
- Better: Increase this if you have RAM available. A larger buffer pool means more of the graph stays in memory, reducing disk I/O.
- Python Example:
# Set buffer pool to 4GB db = kuzu.Database("./db_path", buffer_pool_size=4 * 1024 * 1024 * 1024)
If you are tired of fighting Docker containers for Neo4j, tired of recursive CTEs in SQLite, or tired of your graph analysis OOM-killing your laptop, download Kuzu v0.1.2. Default: Usually defaults to a modest size