Skip to content

Add PedraDB SnapshotStore adapter and compare in backend benches - #19

Draft
jaredLunde wants to merge 3 commits into
mainfrom
cursor/pedradb-snapshot-adapter-cb1b
Draft

Add PedraDB SnapshotStore adapter and compare in backend benches#19
jaredLunde wants to merge 3 commits into
mainfrom
cursor/pedradb-snapshot-adapter-cb1b

Conversation

@jaredLunde

@jaredLunde jaredLunde commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds an opt-in pedradb backend (rocksdb-compat @ 5b6789c) and extends snapshot_backends so fjall / RocksDB / Pedra compare on the same route-fold workload.

500M results (unsettled)

metric fjall rocksdb pedradb winner
hydrate throughput 0.88 M/s 0.98 M/s 0.80 M/s rocksdb
hydrate wall time 566 s 512 s 624 s rocksdb
on-disk size 105.3 GiB 107.0 GiB 120.7 GiB fjall
bytes / entry 226 B 230 B 259 B fjall
cold hit p50 458 µs 215 µs 77 µs pedradb
cold hit p90 1.9 ms 1.9 ms 1.1 ms pedradb
cold hit p99 2.4 ms 4.5 ms 4.2 ms fjall
cold hit p999 2.6 ms 26.3 ms 6.7 ms fjall
cold hit max 2.9 ms 80.5 ms 114.3 ms fjall
cold miss p50 471 ns 532 ns 3.9 µs fjall
cold miss p99 618 ns 768 ns 5.6 µs fjall
warm get_hit 714 µs 501 µs 233 µs pedradb
prefix_scan (1k keys) 201 µs 177 µs 447 µs rocksdb
lookup_100 get-loop 31.1 ms 31.2 ms ~tie
lookup_100 multi_get 37.6 ms 36.1 ms pedradb

Caveats: settle skipped for all three (disk headroom). 1B attempted, aborted (~420+ GiB needed on a 254 GiB disk).

Bottom line: Pedra wins point-get latency; Rocks wins hydrate; fjall wins space / miss reject / hit tails.

Changes

  • Pedra rocksdb-compat pinned to 5b6789c
  • Sequential large-N mode, progress logging, backend filter, settle headroom skip

Test plan

  • Conformance + small-N benches
  • 500M sequential three-way (unsettled)
  • 1B attempted → disk-blocked (documented)
Open in Web Open in Cursor 

cursoragent and others added 3 commits August 30, 2026 15:57
Wire a pedradb feature (rocksdb-compat git dep) that implements the same
on-disk fold contract as fjall/rocksdb, extend the conformance suite, and
compare all three engines in snapshot_backends.

Co-authored-by: Jared Lunde <jared.lunde@gmail.com>
Depend on rocksdb-compat directly (import as rocksdb_compat) instead of
renaming the package to pedradb.

Co-authored-by: Jared Lunde <jared.lunde@gmail.com>
Pin rocksdb-compat to latest Pedra (5b6789c), run backends one-at-a-time
when entries ≥ 50M so a ~250 GiB disk can hold a 1B fold, and add progress
logging / settle headroom checks / backend selection env knobs.

Co-authored-by: Jared Lunde <jared.lunde@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants