-
Notifications
You must be signed in to change notification settings - Fork 0
priorities
Stand: 29. Oktober 2025, 22:15
Basis: IMPLEMENTATION_STATUS.md Audit-Ergebnisse
| Feature | Impact | Aufwand | Risiko | Prio | Empfehlung |
|---|---|---|---|---|---|
| Mittel | 2-4h | Niedrig | ✅ ERLEDIGT | Quick Win - Abgeschlossen | |
| Hoch | 1-2 Tage | Mittel | ✅ ERLEDIGT | Datenverlust-Risiko eliminiert | |
| Hoch | 3-5 Tage | Mittel | ✅ ERLEDIGT | Basisfunktionalität implementiert | |
| Hoch | 1-2 Tage | Niedrig | ✅ ERLEDIGT | API-Integration vollständig | |
| Mittel | 2-3 Tage | Mittel | ✅ ERLEDIGT | DisjunctiveQuery implementiert | |
| Mittel | 3-5 Tage | Niedrig | ✅ ERLEDIGT | Production-Debugging enabled | |
| Inkrementelle Backups | Niedrig | 5-7 Tage | Hoch | 📋 P2 | Nice-to-Have |
| RBAC (Basic) | Hoch | 7-10 Tage | Hoch | 📋 P2 | Security (später) |
| Apache Arrow Integration | Niedrig | 10-15 Tage | Mittel | 📋 P3 | Analytics (später) |
Status Update (30. Oktober 2025, 13:50):
- ✅ Alle P0-Features abgeschlossen!
- ✅ P1 OpenTelemetry Tracing: VOLLSTÄNDIG IMPLEMENTIERT
- ✅ Infrastruktur: Tracer-Wrapper, OTLP HTTP Exporter, CMake integration
- ✅ HTTP-Handler instrumentiert (7 Endpoints)
- ✅ QueryEngine instrumentiert (11 Methoden + Child-Spans)
- ✅ AQL-Operator-Pipeline instrumentiert (parse, translate, for, filter, limit, collect, return, traversal+bfs)
- ✅ Dokumentation aktualisiert (docs/tracing.md)
- Build erfolgreich, Server-Test bestanden
- ALLE P1-TASKS ABGESCHLOSSEN!
Abgeschlossene Features:
- ✅ HNSW-Persistenz: Automatisches Save/Load implementiert
- ✅ COLLECT/GROUP BY MVP: Parser + In-Memory Aggregation (COUNT, SUM, AVG, MIN, MAX)
- ✅ Prometheus-Histogramme: Kumulative Buckets implementiert + validiert
- ✅ Vector Search HTTP Endpoint: POST /vector/search mit k-NN Suche
- ✅ OR Query Index-Merge: DisjunctiveQuery mit Index-Union
- ✅ OpenTelemetry Distributed Tracing: End-to-End Instrumentierung (HTTP → QueryEngine → AQL Operators)
Legende:
- 🔥 P0 = Kritisch (sofort/diese Woche) - ✅ ALLE ERLEDIGT
⚠️ P1 = Wichtig (nächste 2 Wochen) - ✅ ALLE ERLEDIGT- 📋 P2 = Nice-to-Have (nächster Sprint) - NÄCHSTE PHASE
- 📋 P3 = Backlog (zukünftig)
Tag 1-2: Prometheus Histogramme (kumulative Buckets) ✅
Tag 2-4: OR/NOT Index-Merge (Query-Flexibilität) ✅
Tag 5-7: HNSW Persistenz (Datenverlust-Risiko eliminieren) ✅
Ergebnis: Alle P0-Features implementiert und getestet!
Tag 1-2: OpenTelemetry Tracing - Infrastruktur ✅
Tag 2-3: OpenTelemetry Tracing - Instrumentierung (HTTP, Query)
Tag 4-5: Jaeger Integration testen + Dokumentation
Tag 1-5: COLLECT/GROUP BY MVP (Basisfunktionalität)
Tag 6-7: HNSW Persistenz (Datenverlust-Risiko)
Tag 8: Prometheus Histogramme (Quick Win zum Abschluss)
Vorteil: Kernfunktionalität (Aggregationen) schnell verfügbar
Nachteil: Längerer initialer Entwicklungszyklus
Tag 1-2: HNSW Persistenz (Datenverlust-Risiko eliminieren)
Tag 3-7: COLLECT/GROUP BY MVP (Basisfunktionalität)
Tag 8: Prometheus Histogramme (Quick Win)
Vorteil: Kritische Risiken (Datenverlust) sofort adressiert
Nachteil: Komplexes Feature am Anfang (HNSW save/load)
Problem:
- Aktuelle Implementation: Non-kumulative Buckets (jeder Bucket zählt nur seinen Range)
- Prometheus-Spec: Buckets müssen kumulativ sein (
le="100"= alle Werte ≤ 100) - Impact: Grafana/Prometheus-Tools zeigen falsche Percentiles
Lösung:
// Aktuell (FALSCH):
if (ms <= 1) page_bucket_1ms_++;
else if (ms <= 5) page_bucket_5ms_++;
// ...
// Korrekt (KUMULATIV):
if (ms <= 1) page_bucket_1ms_++;
if (ms <= 5) page_bucket_5ms_++;
if (ms <= 10) page_bucket_10ms_++;
// ... (jeder Wert inkrementiert ALLE passenden Buckets)Aufwand:
- Änderungen:
http_server.cpp(recordLatency, recordPageFetch) - Tests: Smoke-Test erweitern (Bucket-Prüfung)
- Doku: README.md aktualisieren
- Geschätzt: 2-4 Stunden
DoD (Definition of Done):
- recordLatency() verwendet kumulative Bucket-Logik
- recordPageFetch() verwendet kumulative Bucket-Logik
- Smoke-Test validiert: Wert 150ms → buckets 1,5,10,25,50,100,250,500,1000,5000,Inf alle ≥ 1
- README.md Histogram-Beschreibung korrigiert
Problem:
- Vector-Index ist nur In-Memory
- Server-Restart → alle Vektoren weg
- Manuelles Rebuild nötig (Performance-Impact)
Lösung:
// HNSWlib API:
index_->saveIndex("data/vector_index_<collection>.bin");
index_->loadIndex("data/vector_index_<collection>.bin", space_, max_elements_);Implementierung:
-
Startup:
VectorIndexManager::init()prüft auf existierende.bin, lädt wenn vorhanden -
Shutdown:
VectorIndexManager::shutdown()speichert Index - Background Save: Optional: Periodisches Save alle N Minuten
-
Versioning: Filename-Schema:
<collection>_v<version>.bin
Aufwand:
- Code:
vector_index.cpp(init/shutdown/save/load) - Tests:
test_vector_index.cpp(save → restart → load → verify results) - Config:
config.json(vector_save_interval_minutes) - Geschätzt: 1-2 Tage
DoD:
-
saveIndex()speichert bei Shutdown -
loadIndex()lädt bei Startup (wenn vorhanden) - Test: Add 100 Vektoren → Restart → Search findet alle
- Config-Option:
vector_auto_save: true/false
Problem:
- Aggregationen sind SQL/AQL-Standard-Feature
- AST-Node (
CollectNode) existiert, aber keine Executor-Integration - Queries wie
SELECT city, COUNT(*) FROM users GROUP BY cityunmöglich
Lösung (MVP-Scope):
// Beispiel:
FOR doc IN orders
FILTER doc.created_at >= "2025-01-01"
COLLECT city = doc.city
AGGREGATE
total = SUM(doc.amount),
count = COUNT()
RETURN {city, total, count}
Implementierung:
-
Parser:
CollectNodeparsing (bereits vorhanden in AST) -
Translator:
handleCollect()inaql_translator.cpp -
Executor:
- Hash-Map für Gruppierung:
std::unordered_map<string, AggregateState> - Aggregat-Funktionen: COUNT, SUM, AVG, MIN, MAX
- Streaming-Execution (keine Full-Scan-Materialisierung)
- Hash-Map für Gruppierung:
- Tests: Unit-Tests + HTTP-Integration-Tests
Aufwand:
- Code:
aql_translator.cpp,query_engine.cpp - Tests:
test_aql_translator.cpp(mindestens 10 neue Tests) - Doku:
docs/aql_syntax.mdaktualisieren - Geschätzt: 3-5 Tage
MVP-Scope (Reduktion):
- ✅ Einspaltige Gruppierung (
COLLECT city = doc.city) - ✅ Basis-Aggregat-Funktionen (COUNT, SUM, AVG, MIN, MAX)
- ❌ Mehrspaltige Gruppierung (später)
- ❌ HAVING-Filter (später)
- ❌ KEEP/WITH COUNT (später)
DoD:
-
COLLECT field = exprfunktioniert -
AGGREGATE count = COUNT()funktioniert -
AGGREGATE sum = SUM(field)funktioniert - Unit-Tests: 10+ Test-Cases PASS
- HTTP-Test: End-to-End GROUP BY Query
- Doku: Beispiel in
docs/aql_syntax.md
- COLLECT/GROUP BY: ⭐⭐⭐⭐⭐ (Kernfunktionalität, Kundenerwartung)
- HNSW Persistenz: ⭐⭐⭐⭐ (Datenverlust-Risiko, Produktionsfähigkeit)
- Prometheus Histogramme: ⭐⭐⭐ (Observability, Ops-Qualität)
- Prometheus Histogramme: ⭐⭐⭐⭐⭐ (Compliance-Fix, behebt Spec-Verletzung)
- HNSW Persistenz: ⭐⭐⭐⭐ (Architektur-Lücke schließen)
- COLLECT/GROUP BY: ⭐⭐⭐ (AST-Code-Completion)
- HNSW Persistenz: ⭐⭐⭐⭐⭐ (Datenverlust-Risiko eliminieren)
- COLLECT/GROUP BY: ⭐⭐ (Feature-Lücke, kein direktes Risiko)
- Prometheus Histogramme: ⭐⭐ (Monitoring-Fehler, aber nicht kritisch)
Woche 1 (Tag 1-7):
🔥 Tag 1 (2-4h): Prometheus Histogramme (Quick Win, Motivation)
🔥 Tag 1-3 (2 Tage): HNSW Persistenz (Risiko-Minimierung)
🔥 Tag 4-7 (4 Tage): COLLECT/GROUP BY MVP (Strategisch wichtig)
Rationale:
- Quick Win am Anfang: Momentum, sichtbarer Fortschritt nach 4h
- Risiko-Minimierung: HNSW-Persistenz vor Wochenende fertig
- Strategisches Feature: COLLECT/GROUP BY nutzt volle Woche
Erwartete Ergebnisse (Ende Woche 1):
- ✅ Prometheus-konforme Histogramme
- ✅ Vector-Index überleben Server-Restart
- ✅ Basis-Aggregationen (COLLECT/COUNT/SUM) funktional
- 📈 Production-Readiness-Score: ~35% → ~55%
Woche 2:
- OR/NOT Index-Merge (2-3 Tage)
- OpenTelemetry Tracing (3-5 Tage)
Sprint 2:
- Inkrementelle Backups/WAL-Archiving
- Automated Restore-Verification
- Strukturierte JSON-Logs
Sprint 3:
- RBAC (Basic)
- Query/Plan-Cache
- POST /config (Hot-Reload)
Langfristig:
- Apache Arrow Integration
- Phase 4 (Filesystem/Content) Start
- Phase 7 (Security/Governance) Vollausbau
Bitte wählen:
- Option A: Quick Wins zuerst (Prometheus → OR/NOT → HNSW)
- Option B: Strategisch (COLLECT → HNSW → Prometheus)
- Option C: Risiko-Minimierung (HNSW → COLLECT → Prometheus)
- Empfehlung: Hybrid (Prometheus [Quick Win] → HNSW [Risiko] → COLLECT [Strategisch])
Oder eigene Priorisierung nennen.
Erstellt: 29. Oktober 2025
Nächster Review: Nach Abschluss von 3 P0-Features
- AQL Overview
- AQL Syntax Reference
- EXPLAIN and PROFILE
- Hybrid Queries
- Pattern Matching
- Subquery Implementation
- Subquery Quick Reference
- Fulltext Release Notes
- Hybrid Search Design
- Fulltext Search API
- Content Search
- Pagination Benchmarks
- Stemming
- Hybrid Fusion API
- Performance Tuning
- Migration Guide
- Storage Overview
- RocksDB Layout
- Geo Schema
- Index Types
- Index Statistics
- Index Backup
- HNSW Persistence
- Vector Index
- Graph Index
- Secondary Index
- Security Overview
- RBAC and Authorization
- TLS Setup
- Certificate Pinning
- Encryption Strategy
- Column Encryption
- Key Management
- Key Rotation
- HSM Integration
- PKI Integration
- eIDAS Signatures
- PII Detection
- PII API
- Threat Model
- Hardening Guide
- Incident Response
- SBOM
- Enterprise Overview
- Scalability Features
- Scalability Strategy
- HTTP Client Pool
- Enterprise Build Guide
- Enterprise Ingestion
- Benchmarks Overview
- Compression Benchmarks
- Compression Strategy
- Memory Tuning
- Hardware Acceleration
- GPU Acceleration Plan
- CUDA Backend
- Vulkan Backend
- Multi-CPU Support
- TBB Integration
- Time Series
- Vector Operations
- Graph Features
- Temporal Graphs
- Path Constraints
- Recursive Queries
- Audit Logging
- Change Data Capture
- Transactions
- Semantic Cache
- Cursor Pagination
- Compliance Features
- GNN Embeddings
- Geo Overview
- Geo Architecture
- 3D Game Acceleration
- Geo Feature Tiering
- G3 Phase 2 Status
- G5 Implementation
- Integration Guide
- Content Architecture
- Content Pipeline
- Content Manager
- JSON Ingestion
- Content Ingestion
- Filesystem API
- Image Processor
- Geo Processor
- Policy Implementation
- Developer Guide
- Implementation Status
- Development Roadmap
- Build Strategy
- Build Acceleration
- Code Quality Guide
- AQL LET Implementation
- Audit API Implementation
- SAGA API Implementation
- PKI eIDAS
- WAL Archiving
- Architecture Overview
- Strategic Overview
- Ecosystem
- MVCC Design
- Base Entity
- Caching Strategy
- Caching Data Structures
- Docker Build
- Docker Status
- Multi-Arch CI/CD
- ARM Build Guide
- ARM Packages
- Raspberry Pi Tuning
- Packaging Guide
- Package Maintainers
- Roadmap
- Changelog
- Database Capabilities
- Implementation Summary
- Sachstandsbericht 2025
- Enterprise Final Report
- Test Report
- Build Success Report
- Integration Analysis
- Source Overview
- API Implementation
- Query Engine
- Storage Layer
- Security Implementation
- CDC Implementation
- Time Series
- Utils and Helpers
Updated: 2025-11-30