Tuesday, 6 May 2025

New top story on Hacker News: Show HN: AnuDB– Backed on RocksDB, 279x Faster Than SQLite in Parallel Workloads

Show HN: AnuDB– Backed on RocksDB, 279x Faster Than SQLite in Parallel Workloads
5 by hashmak_jsn | 0 comments on Hacker News.
We recently benchmarked AnuDB, a lightweight embedded database built on top of RocksDB, against SQLite on a Raspberry Pi. The performance difference, especially for parallel operations, was dramatic. GitHub Links: AnuDBBenchmark: https://ift.tt/sxS5Zvc AnuDB (Core): https://ift.tt/UkIPNnF Why Compare AnuDB and SQLite? SQLite is excellent for many embedded use cases — it’s simple, battle-tested, and extremely reliable. But it doesn't scale well when parallelism or concurrent writes are required. AnuDB, built over RocksDB, offers better concurrency out of the box. We wanted to measure the practical differences using real benchmarks on a Raspberry Pi. Benchmark Setup Platform: Raspberry Pi 2 (ARMv7) Benchmarked operations: Insert, Query, Update, Delete, Parallel AnuDB uses RocksDB and MsgPack serialization SQLite uses raw data, with WAL mode enabled for fairness Key Results Insert: AnuDB: 448 ops/sec SQLite: 838 ops/sec Query: AnuDB: 54 ops/sec SQLite: 30 ops/sec Update: AnuDB: 408 ops/sec SQLite: 600 ops/sec Delete: AnuDB: 555 ops/sec SQLite: 1942 ops/sec Parallel (10 threads): AnuDB: 412 ops/sec SQLite: 1.4 ops/sec (!) In the parallel case, AnuDB was over 279x faster than SQLite. Why the Huge Parallel Difference? SQLite, even with WAL mode, uses global database-level locks. It’s not designed for high-concurrency scenarios. RocksDB (used in AnuDB) supports: Fine-grained locking Concurrent readers/writers Better parallelism using LSM-tree architecture This explains why AnuDB significantly outperforms SQLite under threaded workloads. Try It Yourself Clone the repo: git clone https://ift.tt/sxS5Zvc cd AnuDBBenchmark ./build.sh /path/to/AnuDB /path/to/sqlite ./benchmark Results are saved to benchmark_results.csv. When to Use AnuDB Use AnuDB if: You need embedded storage with high concurrency You’re dealing with telemetry, sensor data, or parallel workloads You want something lightweight and faster than SQLite under load Stick with SQLite if: You need SQL compatibility You value mature ecosystem/tooling Feedback Welcome This is an early experiment. We’re actively developing AnuDB and would love feedback: Is our benchmark fair? Where could we optimize further? Would this be useful in your embedded project?

No comments:

Post a Comment