baseline-pre-split.json•4.07 kB
{
"baseline_name": "pre-split-monolithic",
"baseline_version": "v0.9.0",
"collected_date": "2025-10-01T00:00:00Z",
"description": "Performance baseline from monolithic MCP server before split into codebase-mcp and workflow-mcp",
"environment": {
"python_version": "3.11",
"postgresql_version": "16",
"ollama_version": "0.1.0",
"hardware": "Development machine (8-core CPU, 16GB RAM)",
"note": "Baseline represents pre-split monolithic architecture performance"
},
"constitutional_targets": {
"indexing_p95_ms": 60000.0,
"search_p95_ms": 500.0,
"project_switch_p95_ms": 50.0,
"entity_query_p95_ms": 100.0
},
"benchmarks": {
"indexing": {
"test_name": "test_indexing_10k_files_performance",
"repository_size": 10000,
"iterations": 5,
"latency_mean_ms": 45000.0,
"latency_min_ms": 42000.0,
"latency_max_ms": 50000.0,
"latency_p50_ms": 44500.0,
"latency_p95_ms": 48000.0,
"latency_p99_ms": 49500.0,
"stddev_ms": 2800.0,
"coefficient_of_variation_percent": 6.22,
"note": "Monolithic architecture with combined indexing and metadata management",
"pass_status": "pass",
"target_threshold_ms": 60000.0,
"margin_to_target_ms": 12000.0
},
"search": {
"test_name": "test_benchmark_search_10_concurrent_clients",
"concurrent_clients": 10,
"queries_per_client": 20,
"total_samples": 200,
"latency_mean_ms": 280.0,
"latency_min_ms": 150.0,
"latency_max_ms": 450.0,
"latency_p50_ms": 270.0,
"latency_p95_ms": 320.0,
"latency_p99_ms": 380.0,
"stddev_ms": 75.0,
"coefficient_of_variation_percent": 26.79,
"note": "Monolithic architecture with integrated search and embeddings",
"pass_status": "pass",
"target_threshold_ms": 500.0,
"margin_to_target_ms": 180.0
},
"project_switching": {
"test_name": "test_benchmark_project_switching_constitutional_validation",
"consecutive_switches": 20,
"projects_count": 5,
"total_samples": 20,
"latency_mean_ms": 32.0,
"latency_min_ms": 28.0,
"latency_max_ms": 42.0,
"latency_p50_ms": 31.0,
"latency_p95_ms": 35.0,
"latency_p99_ms": 40.0,
"stddev_ms": 3.5,
"coefficient_of_variation_percent": 10.94,
"note": "Monolithic architecture with single database connection pool",
"pass_status": "pass",
"target_threshold_ms": 50.0,
"margin_to_target_ms": 15.0
},
"entity_query": {
"test_name": "test_benchmark_entity_query_constitutional_validation",
"entity_count": 1000,
"query_patterns": 5,
"queries_per_pattern": 10,
"total_samples": 50,
"latency_mean_ms": 68.0,
"latency_min_ms": 45.0,
"latency_max_ms": 95.0,
"latency_p50_ms": 65.0,
"latency_p95_ms": 75.0,
"latency_p99_ms": 88.0,
"stddev_ms": 12.0,
"coefficient_of_variation_percent": 17.65,
"note": "Monolithic architecture with GIN-indexed JSONB queries",
"pass_status": "pass",
"target_threshold_ms": 100.0,
"margin_to_target_ms": 25.0
}
},
"summary": {
"all_benchmarks_pass": true,
"benchmarks_passing": 4,
"benchmarks_total": 4,
"notes": [
"All benchmarks meet constitutional performance targets with comfortable margins",
"Monolithic architecture baseline for comparison with post-split architecture",
"Expected degradation after split: <10% per FR-018 requirement",
"Acceptable post-split p95 latencies: indexing <52.8s, search <352ms, project switch <38.5ms, entity query <82.5ms"
]
},
"validation_metadata": {
"generated_by": "T018 - Phase 3 User Story 1",
"constitutional_compliance": "Principle IV - Performance Guarantees",
"fr_references": ["FR-001", "FR-002", "FR-003", "FR-004", "FR-018"],
"sc_references": ["SC-001", "SC-002", "SC-003", "SC-004", "SC-005"],
"baseline_type": "pre-split-monolithic",
"comparison_threshold_percent": 10.0
}
}