Expand description
Query Optimizer Integration (Task 10)
Wires the QueryOptimizer into the SOCH-QL execution path for cost-based planning:
- Converts SOCH-QL WHERE clauses to optimizer predicates
- Uses cardinality hints from HyperLogLog sketches
- Selects optimal index based on selectivity estimates
§Integration Flow
SOCH-QL Query
│
▼
┌─────────────────┐
│ Parse & Validate│
└────────┬────────┘
│
▼
┌─────────────────┐
│ Extract │
│ Predicates │ ← WHERE clause → QueryPredicate[]
└────────┬────────┘
│
▼
┌─────────────────┐
│ QueryOptimizer │
│ .plan_query() │ ← Cost-based index selection
└────────┬────────┘
│
▼
┌─────────────────┐
│ Execute Plan │
└─────────────────┘§Task 11: HyperLogLog Integration for Real-Time Cardinality
The CardinalityTracker maintains HyperLogLog sketches per column for
real-time cardinality estimation with <1% standard error.
On INSERT:
tracker.observe("column_name", value) // O(1) HLL update
On SELECT planning:
cardinality = tracker.estimate("column_name") // O(1) estimate
Math:
Standard error = 1.04 / sqrt(m) where m = 2^precision
For precision=14: SE = 0.81%, memory = 16KB per columnStructs§
- Adaptive
Cache Stats - Enhanced cache statistics
- Cache
Stats - Cache statistics
- Cardinality
Estimate - Cardinality estimate with confidence
- Cardinality
Tracker - Real-time cardinality tracker using HyperLogLog sketches
- Cardinality
Tracker Stats - Statistics for cardinality tracker
- Execution
Plan - Execution plan with ordered steps
- Optimized
Executor - Optimized query executor with cost-based planning
- Optimized
Query Plan - Optimized query plan with cost estimates
- Plan
Cache - Query plan cache for repeated queries
- Table
Stats - Statistics for a table
Enums§
- Execution
Step - Single execution step
Traits§
- Storage
Backend - Storage backend trait for executing optimized query plans