Skip to content

[EPIC] Phase 4: Query & Quality - Unified Query Engine, Testing Improvements #2978

@robfrank

Description

@robfrank

Phase 4: Query & Quality (Months 8-9)

Goals: Unified query engine, testing improvements

Duration: 2 months
Dependencies: Phase 3 Complete

Objectives

Month 8: Query Engine Architecture

  • Design unified query pipeline (LogicalPlan/PhysicalPlan abstraction)
  • Implement logical plan classes (Scan, Filter, Project, Join, Aggregate, Sort, Limit)
  • Implement physical operators (ScanOperator, FilterOperator, ProjectOperator, JoinOperators, etc.)
  • Implement query optimizer (rule-based and cost-based)
  • Refactor SQL engine to use new pipeline
  • Add query plan caching
  • Optimize top 10 query patterns (20% performance improvement target)

Month 9: Testing Infrastructure

  • Create test base classes (ArcadeDBTestBase, GraphTestBase, QueryEngineTestBase, etc.)
  • Implement test data builders (fluent API for test data creation)
  • Add mutation testing (PIT integration)
  • Increase test coverage to 60%
  • Create performance benchmarking suite (50+ JMH benchmarks)
  • Add property-based testing (jqwik)

Query Pipeline Design

Parse → LogicalPlan → Optimize → PhysicalPlan → Execute → ResultSet

Logical Plan Nodes: Scan, Filter, Project, Join, Aggregate, Sort, Limit
Physical Operators: IndexScan, TableScan, FilterOperator, ProjectOperator, NestedLoopJoin, HashJoin, HashAggregate, SortOperator, LimitOperator

Deliverables

  • Unified query execution framework
  • All query languages using same pipeline
  • Query optimizer with 10+ optimization rules
  • Comprehensive test infrastructure
  • 60%+ code coverage
  • Performance benchmarking suite (50+ benchmarks)

Success Metrics

  • Query performance improved by 20%
  • Test coverage: 60%+
  • Mutation coverage: 70%+
  • 50+ JMH benchmarks running
  • Plan caching with 50%+ hit rate

Related Tasks

Tasks TASK-P4-001 through TASK-P4-013 will be created as individual issues linked to this epic.


Part of the ArcadeDB Evolution Project - see IMPROVEMENT_PLAN.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestparent-issueLabel to mark issues used to group related topics

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions