run_timing_analysis/run_analysis/README.md
2026-03-03 11:21:15 +00:00

204 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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