~/docs/guides/performance
DOCUMENTATION
Performance Checklist
Choose the fastest write path and config presets
Use this checklist to pick the fastest write path and the right durability preset for your workload. The goal is simple: fewer WAL syncs, fewer per-op allocations, and bigger batches.
Decision Matrix
| Goal | Best Path |
|---|---|
| Max ingest throughput, single writer | beginBulk() + batch APIs |
| Atomic ingest with MVCC | transaction() / batch() |
| Multi-writer throughput | syncMode: 'Normal' + group commit (1-2ms) |
| Strong durability per commit | syncMode: 'Full' |
| Throwaway or test data | syncMode: 'Off' |
Bulk Ingest (Fastest Path)
Bulk-load disables MVCC to minimize overhead. Use it for one-shot ingest or ETL jobs. Avoid concurrent readers/writers while it runs.
typescript
Config Presets
| Preset | Settings |
|---|---|
| Single-writer ingest | syncMode: 'Normal', groupCommitEnabled: false, WAL ≥ 256MB, autoCheckpoint: false |
| Multi-writer throughput | syncMode: 'Normal', groupCommitEnabled: true(1-2ms window), chunked batches |
| Max durability | syncMode: 'Full', smaller batches |
| Max speed (test) | syncMode: 'Off' |
Checklist
- Use batch APIs:
createNodesBatch,addEdgesBatch,addEdgesWithPropsBatch - Prefer
beginBulk()for ingest; commit in chunks - Increase WAL size for large ingest (256MB+)
- Disable auto-checkpoint during ingest; checkpoint once at the end
- Use low-level API for hot paths in JS/TS
- Avoid per-edge property sets when you can batch props with the edge
Verify With Benchmarks
- Graph Benchmarks – Baselines and numbers
- Performance – Deeper tuning notes