Files
managing-apps/assets/documentation/Workers processing/04-Database-Schema.md

70 lines
1.8 KiB
Markdown

# Database Schema & Queue Structure
This diagram shows the entity relationships between BundleBacktestRequest, BacktestJob, and User entities.
```mermaid
erDiagram
BundleBacktestRequest ||--o{ BacktestJob : "has many"
BacktestJob }o--|| User : "belongs to"
BundleBacktestRequest {
UUID RequestId PK
INT UserId FK
STRING Status
INT TotalBacktests
INT CompletedBacktests
INT FailedBacktests
DATETIME CreatedAt
DATETIME CompletedAt
STRING UniversalConfigJson
STRING DateTimeRangesJson
STRING MoneyManagementVariantsJson
STRING TickerVariantsJson
}
BacktestJob {
UUID Id PK
UUID BundleRequestId FK
STRING JobType
STRING Status
INT Priority
TEXT ConfigJson
TEXT CandlesJson
INT ProgressPercentage
INT CurrentBacktestIndex
INT TotalBacktests
INT CompletedBacktests
DATETIME CreatedAt
DATETIME StartedAt
DATETIME CompletedAt
TEXT ResultJson
TEXT ErrorMessage
STRING AssignedWorkerId
DATETIME LastHeartbeat
}
User {
INT Id PK
STRING Name
}
```
## Table Descriptions
### BundleBacktestRequest
- Represents a bundle of multiple backtest jobs
- Contains variant configurations (date ranges, money management, tickers)
- Tracks overall progress across all jobs
### BacktestJob
- Individual backtest execution unit
- Contains serialized config and candles
- Tracks progress, worker assignment, and heartbeat
- Links to parent bundle request
### Key Indexes
- `idx_status_priority`: For efficient job claiming (Status, Priority DESC, CreatedAt)
- `idx_bundle_request`: For bundle progress queries
- `idx_assigned_worker`: For worker health monitoring