cache.yaml
Controls the historical SQLite cache used for REST history lookups and gap fill.
Used By
src/fyers_store/store.pysrc/fyers_store/persistence/sqlite_cache.py
Required Fields
version: 1db_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_pathto the same file asstate_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.