Design & Architecture
How BenchBox works internally.
Contents
Architecture Design
System components and design patterns.
Project Structure
Code organization and directories.
Design Principles
Self-contained - No external dependencies.
Modular - Easy to extend and maintain.
Fast - Built for performance.
Cross-database - Works with any SQL database.
Architecture Overview
┌─────────────────────────────────────────────────────────────┐│ BenchBox Architecture │├─────────────────────────────────────────────────────────────┤│ User Interface Layer ││ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││ │ TPCH │ │ TPCDS │ │ JoinOrder │ ... ││ └─────────────┘ └─────────────┘ └─────────────┘ │├─────────────────────────────────────────────────────────────┤│ Core Framework Layer ││ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││ │ BaseBench │ │ QueryMgr │ │ DataGen │ ││ └─────────────┘ └─────────────┘ └─────────────┘ │├─────────────────────────────────────────────────────────────┤│ Infrastructure Layer ││ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ││ │ SQL Trans │ │ Caching │ │ File I/O │ ││ └─────────────┘ └─────────────┘ └─────────────┘ │└─────────────────────────────────────────────────────────────┘Component Overview
Core Framework
- BaseBenchmark - Base class for all benchmarks
- QueryManager - SQL query storage
- DataGenerator - Data generation
- Schema - Database schemas
Benchmarks
- TPC-H, TPC-DS, Join Order, Primitives
- Custom benchmark support
Infrastructure
- SQL Translation - Cross-dialect support
- Caching - Performance optimization
- File I/O - Data management
Design Patterns
Strategy Pattern - Different data generation algorithms.
Factory Pattern - Consistent benchmark creation.
Template Method - Standardized execution workflow.
Getting Started
- Read Architecture Design
- Review Project Structure