Add run_analysis/README.md

This commit is contained in:
Mika 2026-03-03 11:21:15 +00:00
commit 8802481c78

204
run_analysis/README.md Normal file
View file

@ -0,0 +1,204 @@
# Analyse der Runs #6#10 zur Definition der NearExpirySchwelle
## Purpose
Auswertung der Runs #6#10 zur Identifikation stabiler Timing-Muster und Definition einer datenbasierten NearExpirySchwelle.
**Problemstellung:** Untersuchung negativer Zeitdifferenzen (Δt<0) zwischen GateRead und IndexVisibility unter verschiedenen Bedingungen (pinned/unpinned), um deterministische Fehlerquellen zu erkennen.
**Ziele:**
- Überprüfung der Stabilität zwischen pinned und unpinned Runs
- Quantifizierung und Klassifizierung der Δt<0Fälle
- Ableitung einer Schwelle für NearExpiryDefinition (<24h)
## Kontext & Hintergrund
Fünf Runs (#6#10) unter identischer Instrumentierung und ExitRegel v1. Jeder Run zeichnet Metriken für pinned und unpinned Kontexte auf.
**Gruppierung:**
- pinned
- unpinned
**Trace-Metadaten / zusätzliche Tags:**
- corr_id zur Identifikation einzelner Fälle
- expires_at_dist_hours als Distanz bis Ablaufzeit
- LagVorzeichen aus Differenz (t_gate_read t_index_visible)
**Domänenkontext:**
- Verteilte Systeme mit zeitkritischen Sichtbarkeitsfenstern
- Fehleranalyse durch Latenzsignale in synchronisierten Prozessen
**Outlier-Definition:**
- Methode: Schwellenbasiert
- Beschreibung: Fälle werden als Ausreißer markiert, wenn expires_at_dist_hours > 24h bei Δt<0 auftritt.
- Metrik: expires_at_dist_hours
**Motivation:**
- Stabilisierung von Systemtimings durch präzise Definition von NearExpiryZonen
- Schaffung einer reproduzierbaren Baseline für A/BTests
## Methode / Spezifikation
**Übersicht:**
- Vergleich von pinned und unpinned Runs hinsichtlich Δt<0Fällen
- Konsolidierung der Einzelereignisse über die Runs #6#10
- Analyse des Verteilungsverhaltens von expires_at_dist_hours
**Algorithmen / Verfahren:**
- Zählen der Δt<0Fälle pro Run und Stratum
- Prüfen des Vorzeichens von (t_gate_read t_index_visible)
- Zuordnung nach expires_at_dist_hours
- Ableitung der NearExpirySchwelle basierend auf Häufigkeitsverteilung
### Bootstrap-Übersicht
Nicht angewandt
**Zielgrößen:**
### Resampling-Setup
**Resampling-Schema:**
**Konfidenzintervalle:**
- Niveau: 0.95
### Abgeleitete Effektgrößen
**Risk Difference (Differenz der Raten):**
- Definition: Vergleich der Δt<0Inzidenz zwischen pinned und unpinned Runs.
- Bootstrap: Nicht durchgeführt, da Stichprobenumfang gering.
**Risk Ratio:**
- Definition: Quotient aus unpinnedΔt<0Rate zu pinnedΔt<0Rate über Runs #6#10.
- Bootstrap: Nicht angewandt.
### C-State-Kontrolle
**Ziel:** Minimierung von TimingDrift durch stabile Prozessbedingungen.
**Vorgehen:**
- Alle Runs unter identischer Prozess und Regelkonfiguration
- Keine Änderungen der Instrumentierung oder ExitRegel
## Input / Output
### Input-Anforderungen
**Hardware:**
- Standardisierte Umgebung pro Run, konstant gehalten
**Software:**
- Instrumentierung für Gate und IndexTimingMessungen
- Datenlogging für corr_id und expires_at_dist_hours
**Konfiguration:**
- ExitRegel v1 unverändert in allen Runs
### Erwartete Rohdaten
**Felder pro Run:**
- run_id
- stratum
- corr_id
- t_gate_read
- t_index_visible
- expires_at_dist_hours
**Formatbeispiele:**
- run: #8, stratum: unpinned, corr_id: U8-A, expires_at_dist_hours: 12.1, sign: negativ
**Trace-Daten:**
- Format: Tabellarisch pro Run mit konsolidierter ΔtZählung
- Hinweis: Δt<0 markiert Vorzeichenwechsel in Sichtbarkeitszeitpunkt
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- warn rate ≈ 0.06 (pinned)
- unknown rate ≈ 0.00 (pinned)
- Δt<0-Fälle: 0 (pinned), 12 (unpinned)
**Vergleichsausgaben:**
- pinned vs unpinned
- Δ: +1520 Prozentpunkte Δt<0Inzidenz
- RR: >5x
- C-State-Korrelation: Nicht signifikant oder konstant über Runs.
- Trace-Muster: Unpinned zeigt konsistentes negatives LagVorzeichen über alle Runs.
## Workflow / Nutzung
**Analyse-Workflow:**
- Importiere RunLogs #6#10
- Filtere nach Δt<0Fällen
- Klassifiziere pro Stratum (pinned/unpinned)
- Berechne expires_at_dist_hoursVerteilung
- Setze NearExpiryGrenze bei <24h
- Überführe Schwelle in A/BTestDesign
### Trace-Template-Anforderungen
**Ziel:** Konsistente Erfassung von TimingDifferenzen zur Erkennung strukturierter Latenzmuster.
**Erforderliche Tags & Metadaten:**
- corr_id
- expires_at_dist_hours
- t_gate_read
- t_index_visible
**trace-cmd-Setup:**
- Verwende identische SamplingIntervalle und LogFrequenz pro Run
**Run-Design für Contributors:**
- Keine Regeländerung zwischen Runs innerhalb der Baseline
- Separate Kennzeichnung für pinned und unpinned Sessions
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- Δt<0Fälle treten ausschließlich im unpinnedStratum auf.
- 6 von 7 Δt<0Fällen liegen unter 24h expires_at_dist_hours.
- Kein einziger Fall mit positivem LagVorzeichen.
**Implikationen für Experimente:**
- Die NearExpirySchwelle <24h wird als stabile Entscheidungsbasis übernommen.
- BaselineRuns #6#10 liefern konsistentes Muster für weitere Tests.
**Planungsziel:**
- Ziel: Definition einer datenbasierten Schwelle für NearExpiryRegeln.
- Vorgehen:
- Empirische Aggregation von Δt<0Fällen über SerienRuns
- Auswahl konservativer Schwelle zur Minimierung von False Positives
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Kleine Stichprobe (nur 7 Δt<0Fälle)
- Kein separates Validierungsset außerhalb Runs #6#10
**Bootstrap-spezifische Limitationen:**
- Keine BootstrapVerfahren angewandt, daher keine Konfidenzintervalle
**Kausalität & Generalisierbarkeit:**
- Kausalität nur innerhalb identischer Regelkonfigurationen prüfbar
- Ergebnisse gelten nicht für geänderte Instrumentierungsvarianten
**Praktische Fallstricke:**
- Verwechslung von LagVorzeichen durch Messlatenz möglich
- Beobachtungszone 2448h darf Entscheidungslogik nicht beeinflussen
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- A/BTest mit NearExpirySchwelle <24h vs. Kontrollgruppe ohne Schwelle
**Analyseziele:**
- Überprüfung der Reproduzierbarkeit des LagMusters
- Test auf Stabilität der WarnRate bei neuen Runs
**Regression & Modellierung:**
- Erweiterung zur Trendanalyse über mehrere Baselines
- Modellierung der LagVerteilung über expires_at_dist_hours
**Community-Beiträge:**
- Dokumentation der NearExpiryHeuristik im internen KnowledgeRepo
- Veröffentlichung der RunDatenstruktur für Replikationsstudien