Skip to content

cache.yaml

Controls the historical SQLite cache used for REST history lookups and gap fill.

Used By

  • src/fyers_store/store.py
  • src/fyers_store/persistence/sqlite_cache.py

Required Fields

  • version: 1
  • db_path

Optional Fields

maintenance: - enabled (default: false) - interval_seconds (default: 300) - start_jitter_seconds (default: 30) - wal_checkpoint_mode (default: TRUNCATE) - optimize_every_n (default: 12) - quick_check_every_n (default: 288) - vacuum_every_n (default: 0)

concurrency: - busy_timeout_ms (default: 5000) - write_lock_max_retries (default: 8) - write_lock_backoff_base_seconds (default: 0.05) - write_lock_backoff_cap_seconds (default: 0.5) - write_lock_backoff_jitter_seconds (default: 0.05)

Safe Defaults

  • Keep maintenance disabled unless you run long-lived processes.
  • Use WAL + busy_timeout for multi-process access.

Dangerous Values

  • Setting db_path to the same file as state_db_path.
  • Aggressive vacuum schedules on live trading nodes.

Example

version: 1
db_path: "state_db/history_cache.db"
maintenance:
  enabled: false
concurrency:
  busy_timeout_ms: 5000
  write_lock_max_retries: 8
  write_lock_backoff_base_seconds: 0.05
  write_lock_backoff_cap_seconds: 0.5
  write_lock_backoff_jitter_seconds: 0.05

Scenario Example

Scenario: You see database is locked warnings during startup. - Increase busy_timeout_ms. - Increase write_lock_max_retries slightly. - Avoid starting many processes at the same second.