HeliosDB Quantum Optimizer Integration Architecture
HeliosDB Quantum Optimizer Integration Architecture
Date: January 12, 2026
Version: 7.1.0
Status: Design Document - Approved for Implementation
Crate: heliosdb-research/crates/quantum
Feature Flag: quantum-optimizer
Executive Summary
This document specifies the architecture for integrating the Quantum Optimizer into HeliosDB’s query optimization pipeline. The integration follows a Tier 1 Safe Integration approach, designed to provide performance benefits for complex OLAP queries while maintaining zero overhead for simple queries.
Key Design Principles
- Zero overhead for simple queries - Quantum optimization only activates for complex queries
- Fallback-only mode - Quantum optimizer engages only when classical optimizer times out or fails
- OLAP workload gating - Feature restricted to analytical workloads, not OLTP
- Feature flag control - Disabled by default, opt-in for production use
Architecture Overview
┌─────────────────────────────────────────────────────────────────────────────┐│ HeliosDB Query Optimization Pipeline v7.1 │├─────────────────────────────────────────────────────────────────────────────┤│ ││ Query ──► Parser ──► Analyzer ──► ┌──────────────────────────────────────┐ ││ │ Optimizer Router (NEW) │ ││ │ ┌────────────────────────────────┐ │ ││ │ │ Workload Classifier │ │ ││ │ │ • OLTP → Classical Only │ │ ││ │ │ • OLAP → Hybrid Path │ │ ││ │ │ • Batch → Quantum Eligible │ │ ││ │ └────────────────────────────────┘ │ ││ └──────────────┬─────────────────────┬─┘ ││ │ │ ││ ┌───────────────────────────────┴─────┐ │ ││ ▼ ▼ │ ││ ┌──────────────────────────────┐ ┌────────────────────────────────┐│ ││ │ Classical Optimizer │ │ Quantum Optimizer (Gated) ││ ││ │ (Always Primary) │ │ (Fallback Only) ││ ││ ├──────────────────────────────┤ ├────────────────────────────────┤│ ││ │ • Cost-Based Optimizer v2 │ │ • Simulated Quantum Annealing ││ ││ │ • Distributed Optimizer │ │ • QAOA (10+ joins) ││ ││ │ • Timeout: 50-200ms │ │ • Iterations: 50-100 (online) ││ ││ │ • Max joins: 8-12 │ │ • Threshold: ≥10 joins ││ ││ └──────────────────────────────┘ └────────────────────────────────┘│ ││ │ │ │ ││ │ ┌───────────────────────────┘ │ ││ │ │ │ ││ ▼ ▼ │ ││ ┌──────────────────────────────────────────────────────────────────┐ │ ││ │ Plan Comparator (NEW) │ │ ││ │ • Compare estimated costs from both optimizers │ │ ││ │ • Select plan with lower estimated cost │ │ ││ │ • Record decision for adaptive learning │ │ ││ └──────────────────────────────────────────────────────────────────┘ │ ││ │ │ ││ ▼ │ ││ ┌──────────────────────────────────────────────────────────────────┐ │ ││ │ Execution Engine │ │ ││ └──────────────────────────────────────────────────────────────────┘ │ ││ │└─────────────────────────────────────────────────────────────────────────────┘Configuration Changes
1. Quantum Optimizer Configuration (v7.1.0)
Previous (v7.0.0):
pub struct Config { pub enable_annealing: bool, // true pub enable_grover: bool, // true pub annealing_iterations: usize, // 1000 pub initial_temperature: f64, // 100.0 pub cooling_rate: f64, // 0.95 pub complexity_threshold: usize, // 5}New (v7.1.0):
pub struct QuantumOptimizerConfig { // Feature control pub enabled: bool, // false (opt-in) pub mode: QuantumOptimizerMode, // FallbackOnly
// Algorithm selection pub enable_annealing: bool, // true pub enable_grover: bool, // false (pending rewrite) pub enable_qaoa: bool, // true
// Performance tuning - CHANGED pub annealing_iterations_online: usize, // 50 (was 1000) pub annealing_iterations_batch: usize, // 500 (new) pub initial_temperature: f64, // 100.0 pub cooling_rate: f64, // 0.95
// Activation thresholds - CHANGED pub complexity_threshold: usize, // 10 (was 5) pub min_estimated_cost: f64, // 10000.0 (new) pub classical_timeout_ms: u64, // 100 (new)
// Workload gating - NEW pub allowed_workloads: Vec<WorkloadType>, // [OLAP, Batch] pub max_concurrent_quantum_optimizations: usize, // 4}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]pub enum QuantumOptimizerMode { /// Never use quantum optimizer (default) Disabled, /// Only use when classical times out or fails FallbackOnly, /// Run in parallel, select best plan Parallel, /// Always try quantum first (testing only) QuantumFirst,}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]pub enum WorkloadType { OLTP, OLAP, Batch, Mixed,}2. Default Configuration Profiles
impl QuantumOptimizerConfig { /// Production default - quantum disabled pub fn production() -> Self { Self { enabled: false, mode: QuantumOptimizerMode::Disabled, ..Default::default() } }
/// OLAP workload - quantum fallback enabled pub fn olap_optimized() -> Self { Self { enabled: true, mode: QuantumOptimizerMode::FallbackOnly, complexity_threshold: 10, annealing_iterations_online: 50, allowed_workloads: vec![WorkloadType::OLAP, WorkloadType::Batch], ..Default::default() } }
/// Aggressive optimization - parallel mode pub fn aggressive() -> Self { Self { enabled: true, mode: QuantumOptimizerMode::Parallel, complexity_threshold: 8, annealing_iterations_online: 100, annealing_iterations_batch: 1000, allowed_workloads: vec![WorkloadType::OLAP, WorkloadType::Batch, WorkloadType::Mixed], ..Default::default() } }}Component Specifications
1. Optimizer Router (NEW)
Purpose: Routes queries to appropriate optimizer based on workload classification and complexity.
Location: heliosdb-query/src/optimizer_router.rs
pub struct OptimizerRouter { classical_optimizer: Arc<ExecutionOptimizer>, quantum_optimizer: Option<Arc<QuantumOptimizer>>, config: QuantumOptimizerConfig, workload_classifier: WorkloadClassifier, metrics: Arc<RouterMetrics>,}
impl OptimizerRouter { /// Route query to appropriate optimizer(s) pub async fn optimize(&self, plan: QueryPlan) -> Result<OptimizedPlan> { let complexity = self.calculate_complexity(&plan); let workload = self.workload_classifier.classify(&plan);
// Gate 1: Check if quantum is enabled if !self.config.enabled { return self.classical_optimizer.optimize(plan).await; }
// Gate 2: Check workload type if !self.config.allowed_workloads.contains(&workload) { return self.classical_optimizer.optimize(plan).await; }
// Gate 3: Check complexity threshold if complexity.join_count < self.config.complexity_threshold { return self.classical_optimizer.optimize(plan).await; }
// Route based on mode match self.config.mode { QuantumOptimizerMode::Disabled => { self.classical_optimizer.optimize(plan).await } QuantumOptimizerMode::FallbackOnly => { self.optimize_with_fallback(plan, complexity).await } QuantumOptimizerMode::Parallel => { self.optimize_parallel(plan, complexity).await } QuantumOptimizerMode::QuantumFirst => { self.optimize_quantum_first(plan, complexity).await } } }
/// Tier 1: Safe Integration - Fallback only async fn optimize_with_fallback( &self, plan: QueryPlan, complexity: QueryComplexity, ) -> Result<OptimizedPlan> { let start = Instant::now();
// Try classical first with timeout let classical_result = tokio::time::timeout( Duration::from_millis(self.config.classical_timeout_ms), self.classical_optimizer.optimize(plan.clone()) ).await;
match classical_result { Ok(Ok(optimized)) => { self.metrics.record_classical_success(start.elapsed()); Ok(optimized) } Ok(Err(e)) | Err(_) => { // Classical failed or timed out - try quantum self.metrics.record_classical_timeout();
if let Some(quantum) = &self.quantum_optimizer { match quantum.optimize(plan.clone()).await { Ok(quantum_plan) => { self.metrics.record_quantum_fallback_success(); Ok(quantum_plan) } Err(_) => { // Quantum also failed - return classical error or best effort self.metrics.record_quantum_fallback_failure(); self.classical_optimizer.optimize_best_effort(plan).await } } } else { self.classical_optimizer.optimize_best_effort(plan).await } } } }}2. Workload Classifier (NEW)
Purpose: Classifies queries as OLTP, OLAP, or Batch based on characteristics.
Location: heliosdb-query/src/workload_classifier.rs
pub struct WorkloadClassifier { config: ClassifierConfig,}
impl WorkloadClassifier { pub fn classify(&self, plan: &QueryPlan) -> WorkloadType { let features = self.extract_features(plan);
// OLTP indicators let oltp_score = self.calculate_oltp_score(&features);
// OLAP indicators let olap_score = self.calculate_olap_score(&features);
// Classification logic if features.has_batch_hint { return WorkloadType::Batch; }
if oltp_score > 0.7 { WorkloadType::OLTP } else if olap_score > 0.7 { WorkloadType::OLAP } else { WorkloadType::Mixed } }
fn calculate_oltp_score(&self, features: &QueryFeatures) -> f64 { let mut score = 0.0;
// Point lookup patterns if features.has_primary_key_filter { score += 0.3; } if features.estimated_rows < 100 { score += 0.2; } if features.join_count <= 2 { score += 0.2; } if features.has_limit && features.limit_value < 100 { score += 0.15; } if !features.has_aggregation { score += 0.15; }
score.min(1.0) }
fn calculate_olap_score(&self, features: &QueryFeatures) -> f64 { let mut score = 0.0;
// Analytical patterns if features.has_aggregation { score += 0.25; } if features.has_group_by { score += 0.2; } if features.join_count >= 3 { score += 0.2; } if features.estimated_rows > 10000 { score += 0.2; } if features.scans_large_tables { score += 0.15; }
score.min(1.0) }}3. Plan Comparator (NEW)
Purpose: Compares plans from classical and quantum optimizers, selects best.
Location: heliosdb-query/src/plan_comparator.rs
pub struct PlanComparator { cost_model: Arc<CostModel>,}
impl PlanComparator { pub fn select_best( &self, classical: OptimizedPlan, quantum: OptimizedPlan, ) -> (OptimizedPlan, PlanSelection) { let classical_cost = self.cost_model.estimate(&classical); let quantum_cost = self.cost_model.estimate(&quantum);
// Prefer classical unless quantum is significantly better (>10% improvement) let improvement_threshold = 0.10; let improvement = (classical_cost - quantum_cost) / classical_cost;
if improvement > improvement_threshold { (quantum, PlanSelection::Quantum { improvement }) } else { (classical, PlanSelection::Classical { quantum_cost, classical_cost }) } }}Grover’s Algorithm Rewrite - IP Analysis
Current Implementation Issues
The existing Grover’s search implementation at heliosdb-research/crates/quantum/src/optimizer.rs:104-122 has a fundamental flaw:
// PROBLEMATIC: Generates all n! permutations firstlet all_orderings = self.generate_orderings(n); // O(n!)let optimal_ordering = self.grover.search(all_orderings, ...);This defeats the O(√N) speedup of Grover’s algorithm.
Proper Quantum Oracle Pattern
The correct implementation uses a quantum oracle that marks solutions without enumeration:
/// Proper quantum oracle for join orderingpub trait QuantumOracle<T> { /// Check if item satisfies search criteria /// Does NOT enumerate - uses quantum superposition fn evaluate(&self, state: &QuantumState) -> bool;}
pub struct JoinOrderingOracle { cost_threshold: f64, join_graph: JoinGraph,}
impl QuantumOracle<JoinOrder> for JoinOrderingOracle { fn evaluate(&self, state: &QuantumState) -> bool { // Quantum amplitude marking without enumeration let cost = self.estimate_cost_from_state(state); cost < self.cost_threshold }}IP Risk Assessment
| Algorithm Component | Patent Status | Risk Level | Notes |
|---|---|---|---|
| Grover’s Algorithm | Public Domain | None | Published 1996, expired 2016 |
| Quantum Oracle Pattern | Open | None | Standard quantum computing pattern |
| QUBO Formulation | Open | None | Academic/open-source |
| Simulated Annealing | Public Domain | None | Published 1983 |
| QAOA | Open | Low | IBM open-sourced Qiskit implementations |
| Join Ordering via QA | Novel | Evaluate | HeliosDB innovation - consider patent |
Recommendation
- Grover’s Rewrite is IP-safe - The algorithm is public domain
- Disable Grover until rewritten - Current implementation is counterproductive
- Consider patenting the novel QUBO formulation for join ordering optimization
Feature Flag Implementation
Cargo Feature Definition
File: heliosdb-research/crates/quantum/Cargo.toml
[features]default = []quantum-optimizer = [ "quantum-annealing", "qaoa",]quantum-annealing = []qaoa = []grover = [] # Disabled by default until rewrite completefull-quantum = ["quantum-optimizer", "grover"]Runtime Configuration
File: heliosdb-config/src/quantum.rs
/// Load quantum optimizer configuration from environment/config filepub fn load_quantum_config() -> QuantumOptimizerConfig { let enabled = std::env::var("HELIOSDB_QUANTUM_OPTIMIZER") .map(|v| v == "true" || v == "1") .unwrap_or(false);
let mode = std::env::var("HELIOSDB_QUANTUM_MODE") .map(|v| match v.as_str() { "fallback" => QuantumOptimizerMode::FallbackOnly, "parallel" => QuantumOptimizerMode::Parallel, _ => QuantumOptimizerMode::Disabled, }) .unwrap_or(QuantumOptimizerMode::Disabled);
QuantumOptimizerConfig { enabled, mode, complexity_threshold: std::env::var("HELIOSDB_QUANTUM_THRESHOLD") .ok() .and_then(|v| v.parse().ok()) .unwrap_or(10), ..Default::default() }}Performance Expectations
Overhead Analysis
| Scenario | Classical Only | With Quantum (Fallback) | Delta |
|---|---|---|---|
| Simple query (< 5 joins) | 10-50μs | 10-50μs | 0% |
| Medium query (5-9 joins) | 50-200μs | 50-200μs | 0% |
| Complex query (10+ joins) | 50ms timeout | 50ms + 5-15ms | +10-30% |
| Very complex (15+ joins) | Skip/timeout | 20-50ms quantum | Better plan |
Success Criteria
| Metric | Target | Measurement |
|---|---|---|
| Zero overhead for < 10 joins | < 1% latency impact | P99 latency monitoring |
| Fallback activation rate | < 5% of queries | Metrics counter |
| Plan improvement when activated | > 10% cost reduction | Cost comparison logs |
| Quantum optimization time | < 100ms for online | P99 quantum time |
Metrics and Observability
New Prometheus Metrics
// Optimizer routing metricspub static OPTIMIZER_ROUTE_CLASSICAL: Counter = ...;pub static OPTIMIZER_ROUTE_QUANTUM_FALLBACK: Counter = ...;pub static OPTIMIZER_ROUTE_QUANTUM_PARALLEL: Counter = ...;
// Quantum optimizer metricspub static QUANTUM_OPTIMIZATION_DURATION: Histogram = ...;pub static QUANTUM_ANNEALING_ITERATIONS: Histogram = ...;pub static QUANTUM_PLAN_SELECTED: Counter = ...;pub static QUANTUM_PLAN_REJECTED: Counter = ...;
// Comparison metricspub static PLAN_COMPARISON_QUANTUM_BETTER: Counter = ...;pub static PLAN_COMPARISON_CLASSICAL_BETTER: Counter = ...;pub static PLAN_IMPROVEMENT_RATIO: Histogram = ...;Migration Path
Phase 1: v7.1.0 (This Release)
- Implement Tier 1 Safe Integration (fallback-only)
- Raise complexity_threshold to 10
- Reduce annealing_iterations to 50 (online) / 500 (batch)
- Add feature flag (disabled by default)
- Add workload classifier
- Disable Grover’s search (pending rewrite)
Phase 2: v7.2.0 (Future)
- Rewrite Grover’s search with proper oracle pattern
- Enable parallel mode option
- Add adaptive threshold tuning
- ML-based plan selection
Phase 3: v8.0.0 (Future)
- Real quantum hardware integration (IBM Qiskit, AWS Braket)
- Hybrid quantum-classical optimization
- Auto-tuning based on workload patterns
Testing Requirements
Unit Tests
- Workload classifier accuracy
- Complexity calculation
- Plan comparator logic
- Feature flag behavior
Integration Tests
- End-to-end fallback path
- Classical timeout triggering quantum
- OLTP queries bypass quantum
- OLAP queries eligible for quantum
Performance Tests
- Zero overhead for simple queries
- Fallback latency within bounds
- Concurrent quantum optimizations
Security Considerations
- Resource Limits: Quantum optimization is CPU-intensive; limit concurrent optimizations
- Timeout Enforcement: Hard timeout on quantum operations to prevent DoS
- Feature Flag Audit: Log all quantum optimization activations for audit trail
References
- Grover, L. K. (1996). “A fast quantum mechanical algorithm for database search” - Public Domain
- Farhi, E., et al. (2014). “A Quantum Approximate Optimization Algorithm” - arXiv:1411.4028
- HeliosDB Cost Optimizer v2 Architecture -
docs/architecture/COST_OPTIMIZER_ARCHITECTURE.md - Distributed Query Optimization -
docs/architecture/F3_5_DISTRIBUTED_QUERY_OPTIMIZATION_ARCHITECTURE.md
Document Version: 1.0 Last Updated: January 12, 2026 Next Review: Before v7.2.0 release