OLAP Benchmark Sandbox — a research-grade benchmarking system that compares Postgres, DuckDB, and Spark on a 50M-row e-commerce dataset. Results are mapped to CMU 15-721 Advanced Database Systems concepts via an inline annotation layer (ConceptValidator).
pnpm workspace monorepo using TypeScript + Python.
data_generator.py— generates 50M-row Parquet datasetloaders/load_all_systems.py— loads data into Postgres, DuckDB, Sparkbenchmarks/benchmark_dashboards.py— Use Case 1: dashboard queriesbenchmarks/benchmark_complex_joins.py— Use Case 2: 3-table join stress testbenchmarks/benchmark_variant_test.py— Use Case 3: VARIANT shredding acid testbenchmarks/benchmark_clustering.py— Use Case 4: clustering & zone map testbenchmarks/benchmark_acid_integrity.py— Use Case 5: ACID Integrity & Concurrency Controlbenchmarks/benchmark_vectorized_execution.py— Use Case 6: Vectorized Execution & SIMDutils/concept_validator.py— maps metrics → CMU 15-721 concept annotationsresults/— benchmark JSON output files (read by the API)
GET /api/benchmarks/status— running state + available systemsGET /api/benchmarks/results/:useCase— reads results JSON fromolap-benchmark/results/POST /api/benchmarks/run/:useCase— spawns Python benchmark as child processGET /api/benchmarks/logs/:useCase— SSE stream of live Python stdout
- Split-panel result cards: left=metrics chart, right=ConceptValidator annotation
- Annotation panel: purple lecture badge, red smoking-gun box, blue interpretation, ✅/
⚠️ status chip - SSE log streaming via
EventSource - CMU 15-721 traceability matrix at bottom
- Monorepo tool: pnpm workspaces
- Node.js version: 24
- Package manager: pnpm
- TypeScript version: 5.9
- API framework: Express 5
- Validation: Zod, Orval (OpenAPI codegen)
- Frontend: React + Vite + Tailwind + Recharts
- Python: psycopg2, duckdb, pyspark, psutil
pnpm run typecheck— full typecheck across all packagespnpm --filter @workspace/api-spec run codegen— regenerate API hooks and Zod schemaspnpm --filter @workspace/api-server run dev— run API server locally
python3 benchmarks/benchmark_dashboards.py
python3 benchmarks/benchmark_complex_joins.py
python3 benchmarks/benchmark_variant_test.py
python3 benchmarks/benchmark_clustering.pyolap-benchmark/results/use_case_1_dashboards.jsonolap-benchmark/results/use_case_2_complex_joins.jsonolap-benchmark/results/use_case_3_variant_acid_test.jsonolap-benchmark/results/use_case_4_clustering.jsonolap-benchmark/results/use_case_5_acid_integrity.jsonolap-benchmark/results/use_case_6_vectorized_execution.json
See the pnpm-workspace skill for workspace structure, TypeScript setup, and package details.