Config File: strata.toml

StrataDB uses a config file in the data directory. On first Strata::open(), a default strata.toml is created automatically. To change settings, edit the file and restart.

# Strata database configuration
#
# Durability mode: "standard" (default) or "always"
#   "standard" = periodic fsync (~100ms), may lose last interval on crash
#   "always"   = fsync every commit, zero data loss
durability = "standard"

Config Fields

FieldTypeDefaultValuesDescription
durabilitystring"standard""standard", "always"WAL sync policy

Behavior

  • Created automatically with defaults on first Strata::open() if not present
  • Parsed on every open() call
  • Invalid config returns an error (database does not open)
  • Cache mode (Strata::cache()) has no config file (no data directory)

Durability Modes

ModeConfig ValueDescriptionData Loss on Crash
Cache(in-memory only)No persistenceAll data
Standard"standard"Periodic fsync (~100ms / ~1000 writes)Last ~100ms
Always"always"Immediate fsync per commitNone

Default: "standard"

Opening Methods

MethodDurabilityDisk FilesUse Case
Strata::open(path)Per strata.tomlYesProduction
Strata::cache()Cache (in-memory)NoTesting

Database Info

The DatabaseInfo struct returned by db.info():

FieldTypeDescription
versionStringStrataDB version
uptime_secsu64Seconds since database opened
branch_countu64Number of branches
total_keysu64Total key count across all primitives

Distance Metrics (Vector Store)

MetricEnum ValueDescription
CosineDistanceMetric::CosineCosine similarity (default)
EuclideanDistanceMetric::EuclideanL2 distance
Dot ProductDistanceMetric::DotProductInner product

Branch Status

StatusEnum ValueDescription
ActiveBranchStatus::ActiveCurrently in use

Transaction Options

FieldTypeDefaultDescription
read_onlyboolfalseIf true, transaction only reads (no writes)
OperationEnum ValueDescription
EqualFilterOp::EqField equals value
Not EqualFilterOp::NeField does not equal value
Greater ThanFilterOp::GtField > value
Greater or EqualFilterOp::GteField >= value
Less ThanFilterOp::LtField < value
Less or EqualFilterOp::LteField <= value
InFilterOp::InField is in set
ContainsFilterOp::ContainsField contains value

Retention Policies

PolicyEnum ValueDescription
Keep AllRetentionPolicyInfo::KeepAllNo version pruning (default)
Keep Last NRetentionPolicyInfo::KeepLast { count }Keep only the last N versions
Keep For DurationRetentionPolicyInfo::KeepFor { duration_secs }Keep versions within time window

Performance Targets

MetricTarget
InMemory put<3 us
InMemory throughput (1 thread)250K ops/sec
InMemory throughput (4 threads)800K+ ops/sec
Buffered put<30 us
Buffered throughput50K ops/sec
Fast path read<10 us
Vector search (10K vectors)<50 ms
Vector insert<100 us

Workspace Feature Flags

FeatureDescription
defaultCore database functionality
perf-tracePer-layer timing instrumentation
comparison-benchmarksEnable SOTA comparison benchmarks (redb, LMDB, SQLite)
usearch-enabledEnable USearch for vector comparisons (requires C++ tools)