iridium-db 0.2.0

A high-performance vector-graph hybrid storage and indexing engine
# ops

`src/features/ops/api.rs`

Background job tracking, health reporting, and metrics aggregation. Used internally by `StorageHandle` (compaction jobs) and available for higher-level observability.

---

## Background Jobs

```rust
pub struct BackgroundJobTracker { /* ... */ }
```
Tracks jobs through their lifecycle: `Queued → Running → Succeeded | Failed | Canceled`. Bounded by `max_queued_jobs`; retains the last `max_retained_terminal_jobs` completed records.

```rust
pub struct BackgroundJobConfig {
    pub max_queued_jobs: usize,             // default: 256
    pub max_retained_terminal_jobs: usize,  // default: 2048
}
```

```rust
pub struct BackgroundJobRecord {
    pub job_id: u64,
    pub job_kind: String,
    pub attempts: u32,
    pub state: BackgroundJobState,
}

pub enum BackgroundJobState {
    Queued,
    Running,
    Succeeded,
    Failed { reason: String },
    Canceled,
}
```

```rust
pub enum BackgroundJobError {
    InvalidInput(String),
    Backpressure { queued_jobs: usize, max_queued_jobs: usize },
    Shutdown,
    NotFound(u64),
    InvalidTransition(String),
}

pub type BackgroundJobResult<T> = std::result::Result<T, BackgroundJobError>;
```

---

## Health

```rust
pub enum HealthStatus {
    Healthy,
    Degraded,
    Unhealthy,
}

pub struct HealthReport {
    pub status: HealthStatus,
    pub reason: String,
    pub error_rate: f64,
}
```

---

## Metrics

Per-instance and per-core aggregated counters.

```rust
pub struct Metrics {
    pub query_total: u64,
    pub query_errors: u64,
    pub query_avg_latency_micros: u64,
    pub query_p95_latency_micros: u64,
    pub query_p99_latency_micros: u64,
    pub ingest_accepted: u64,
    pub ingest_rejected: u64,
}

pub struct CoreMetrics {
    pub core_id: CoreId,
    pub query_total: u64,
    pub query_errors: u64,
    pub query_avg_latency_micros: u64,
    pub ingest_accepted: u64,
    pub ingest_rejected: u64,
}

pub struct CoreMetricsAggregate {
    pub query_total: u64,
    pub query_errors: u64,
    pub query_avg_latency_micros: u64,
    pub ingest_accepted: u64,
    pub ingest_rejected: u64,
}
```