birthday_experiment_runs/README.md
2026-01-23 12:53:30 +00:00

98 lines
No EOL
3.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Birthday Experiment Runs
## Überblick
Dieses Repository dokumentiert das Projekt **birthday_experiment_runs**. Es handelt sich um ein experimentelles System zur Analyse von Run-Daten in Bezug auf „pinned“ und „unpinned“ Ausführung. Ziel ist die Untersuchung der Auswirkungen auf Performance und Stabilität anhand von Mess- und Vergleichsdaten, die automatisiert ausgewertet und visualisiert werden.
**Link zum Artikel:** [https://donau2space.de/tag-127-1346-geburtstag-bedecktes-passau-und-sechs-neue-runs-ohne-ausreden/](https://donau2space.de/tag-127-1346-geburtstag-bedecktes-passau-und-sechs-neue-runs-ohne-ausreden/)
**Git Repository:** [https://git.donau2space.de/Mika/birthday_experiment_runs](https://git.donau2space.de/Mika/birthday_experiment_runs)
## Hinweis
Alle Inhalte wurden per KI generiert.
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko. Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
## Inhalt des Repositories
### 1. sanity_check_tool
**Art:** Python Script
**Ziel:** Linux-Demo
**Sprachen:** Python
**Zweck:** Führt Sanity-Checks auf den Run-Daten durch, um strukturelle und datenbezogene Anomalien zu identifizieren.
**API-Funktionen:**
- **perform_sanity_checks(run_data)** → Gibt eine JSON-Struktur *check_results* zurück, die Informationen über fehlende, fehlerhafte oder leere Felder enthält.
**Datenstrukturen:**
- *run_data (JSON):* runs, sanity_checks
- *check_results (JSON):* missing_pairs, broken_ids, empty_fields, clock_switch_count
---
### 2. experiment_results_visualization
**Art:** Web UI
**Ziel:** Web
**Sprachen:** HTML, CSS, JavaScript
**Zweck:** Visualisiert und vergleicht Experimentresultate zwischen pinned und unpinned Runs.
**API-Funktionen:**
- **fetch_results()** → Gibt *experiment_data* zurück, die pinned/unpinned Ergebnisse enthält.
**Routen:**
- **GET /results:** Lädt die aktuellen Versuchsergebnisse.
**Datenstrukturen:**
- *experiment_data (JSON):* pinned, unpinned
---
### 3. data_export
**Art:** CSV Dataset
**Ziel:** Mixed
**Sprachen:** CSV
**Zweck:** Exportiert die aggregierten Messdaten als CSV-Datei, um externe Analysen zu ermöglichen.
**API-Funktionen:**
- **export_data(experiment_data)** → Erzeugt eine CSV-Datei für Weiterverarbeitung.
**Datenstrukturen:**
- *experiment_data (CSV):* run_id, pinned_duration, unpinned_duration, latency
## Voraussetzungen (Webserver/DB)
Für das Web-Frontend wird ein Standard-Webserver (z.B. NGINX oder Apache) empfohlen. Es ist keine Datenbank zwingend erforderlich; experiment_data kann lokal als JSON-Datei bereitgestellt werden.
## Installation & Nutzung
1. **Python-Komponente (sanity_check_tool):**
- Voraussetzung: Python ≥ 3.8
- Installation der Abhängigkeiten: `pip install -r requirements.txt`
- Ausführung: `python sanity_check_tool.py`
2. **Web-Frontend (experiment_results_visualization):**
- Dateien in ein Webserver-Verzeichnis legen
- Im Browser öffnen: `http://localhost/results`
3. **CSV-Datenexport:**
- Das Skript erzeugt exportierte CSV-Dateien zur Weiterverwendung.
## Typische Use-Cases
- Überprüfung der Datenqualität vor weiteren Analysen.
- Visualisierung von Performance-Unterschieden zwischen pinned und unpinned Runs.
- Export der Ergebnisdaten für statistische oder externe Tools.
## Struktur & mögliche Erweiterungen
- **/scripts/** enthält Python-Tools für Analysen und Sanity-Checks.
- **/web/** enthält das Web-Frontend für Visualisierung.
- **/data/** enthält CSV-Exporte und Eingabedaten.
Mögliche Erweiterungen:
- Automatisierte Auswertung über zusätzliche Python-Module.
- Integration weiterer Visualisierungskomponenten (z.B. D3.js).
## Lizenz
Dieses Projekt steht unter der **MIT-Lizenz**.
Die Nutzung erfolgt auf eigene Verantwortung.