Skip to content
~/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

GoalBest Path
Max ingest throughput, single writerbeginBulk() + batch APIs
Atomic ingest with MVCCtransaction() / batch()
Multi-writer throughputsyncMode: 'Normal' + group commit (1-2ms)
Strong durability per commitsyncMode: 'Full'
Throwaway or test datasyncMode: '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
import { Database } from '@kitedb/core';

const db = Database.open('./my.kitedb');
db.beginBulk();
const nodeIds = db.createNodesBatch(keys);
db.addEdgesBatch(edges);
db.addEdgesWithPropsBatch(edgesWithProps);
db.commit();

Config Presets

PresetSettings
Single-writer ingestsyncMode: 'Normal', groupCommitEnabled: false, WAL ≥ 256MB, autoCheckpoint: false
Multi-writer throughputsyncMode: 'Normal', groupCommitEnabled: true(1-2ms window), chunked batches
Max durabilitysyncMode: '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