Add near_expiry_rule/README.md

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

172
near_expiry_rule/README.md Normal file
View file

@ -0,0 +1,172 @@
# NearExpiryRegel Datenbasierte Definition und Schwellenwertanalyse
## Purpose
Analyse der RunTimings #6#10 zur Ableitung der NearExpiryRegel in einem mehrstufigen System.
**Problemstellung:** Negative TimeLags (Δt<0) treten gehäuft bei unpinnedRuns auf. Ziel ist, eine quantitative Grenze für NearExpiryFälle zu bestimmen, um deterministisch entscheiden zu können.
**Ziele:**
- Definition der NearExpirySchwelle basierend auf empirischen ΔtMusteranalysen.
- Validierung der Stabilität über fünf Runs mit konstanter Instrumentierung.
- Vorbereitung auf A/BTest mit klarer Entscheidungsregel.
## Kontext & Hintergrund
Konsolidierte RunDaten #6#10 aus Systemmessungen, getrennt nach pinned und unpinned Strata.
**Gruppierung:**
- RunNummer (#6#10)
- Stratum: pinned vs. unpinned
**Trace-Metadaten / zusätzliche Tags:**
- corr_id
- expires_at_dist_hours
- sign(t_gate_read t_index_visible)
**Domänenkontext:**
- TimingAnalyse verteilter Systeme
- EventVisibilityLagBeobachtung
**Outlier-Definition:**
- Methode: Schwellenwertbeurteilung
- Beschreibung: Fälle mit expires_at_dist_hours > 24h gelten als Ausreißer in der Δt<0Gruppe.
- Metrik: expires_at_dist_hours
**Motivation:**
- Präzise Baseline vor Regeländerung sichern.
- Vermeidung von Zufallseffekten durch RunKonsistenz.
- Einführung einer expliziten, begründeten NearExpirySchwelle.
## Methode / Spezifikation
**Übersicht:**
- Runs #6#10 wurden mit identischer Instrumentierung durchgeführt.
- Δt wird berechnet als Differenz zwischen GateRead und IndexVisibilityZeitpunkten.
- Negative ΔtWerte signalisieren frühe GateErkennung vor sichtbarem Index.
**Algorithmen / Verfahren:**
- Erfassen von Δt<0Fällen pro Run.
- Kategorisierung nach pinned / unpinned.
- Aggregation aller Δt<0Fälle über Runs.
- Berechnung der expires_at_dist_hoursVerteilung.
- Bestimmung der 24hSchwelle basierend auf 6/7 Fällen unter dieser Grenze.
## Input / Output
### Input-Anforderungen
**Hardware:**
- StandardAnalyseumgebung ohne spezielle Sensorik
**Software:**
- DataCollectionPipeline mit ZeitstempelErfassung
**Konfiguration:**
- ExitRegel v1
- Konstante Instrumentierung während Runs #6#10
### Erwartete Rohdaten
**Felder pro Run:**
- run_id
- stratum
- corr_id
- t_gate_read
- t_index_visible
- expires_at_dist_hours
**Formatbeispiele:**
- run=10, stratum=unpinned, corr_id=U10A, expires_at_dist_hours=9.4, Δt_sign=negativ
**Trace-Daten:**
- Format: Tabellarische Textaufzeichnung oder CSV
- Hinweis: Einträge pro Run konsistent formatiert; keine FeatureÄnderungen zwischen Runs.
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- warn_rate ≈ 0.06 (pinned)
- unknown_rate ≈ 0.00 (pinned)
- Δt<0 count pro Stratum
**Vergleichsausgaben:**
- pinned vs unpinned
- Δ: Δt<0 proportion difference
- RR: Erhöhtes Risiko negativer Lags bei unpinnedRuns
- Trace-Muster: Konsistent negatives LagVorzeichen in allen Δt<0Fällen.
## Workflow / Nutzung
**Analyse-Workflow:**
- Sammle ΔtMetriken pro Run.
- Trenne Daten nach Strata (pinned/unpinned).
- Prüfe LagVorzeichenverteilung.
- Aggregiere NearExpiryKandidaten (expires_at_dist_hours < 24h).
- Setze Schwelle = 24h als Regeldefinition.
- Dokumentiere Regel für A/BTestKonfiguration.
### Trace-Template-Anforderungen
**Ziel:** Konsistente Erhebung von TimingDifferenzen zur Stabilitätsbewertung.
**Erforderliche Tags & Metadaten:**
- corr_id
- t_gate_read
- t_index_visible
- expires_at_dist_hours
**trace-cmd-Setup:**
- Verwende gleiche LoggingParameter über alle Runs.
- Deaktiviere Zwischenpuffer für EchtzeitErfassung.
**Run-Design für Contributors:**
- Halte Instrumentierung konstant.
- Verändere keine Systemparameter während der BaselineRuns.
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- Δt<0Fälle ausschließlich bei unpinnedRuns beobachtet.
- Kein einziger positiver LagWert in der beobachteten Serie.
- 6 von 7 negativen Fällen mit expires_at_dist_hours < 24h.
**Implikationen für Experimente:**
- Die empirisch begründete Schwelle reduziert Zufallseinflüsse.
- Die Regel NearExpiry := expires_at_dist_hours < 24h kann als deterministische Entscheidungsbasis dienen.
- Die 2448hZone bleibt als MonitoringBereich aktiv, jedoch ohne Regelbeteiligung.
**Planungsziel:**
- Ziel: Schaffung einer sauberen, überprüfbaren Entscheidungslogik für NearExpiryErkennung.
- Vorgehen:
- Datengetriebene Schwellenwertbestimmung
- BaselineValidierung über stabile RunSerie
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Einzelfall mit >24h (31.5h) könnte auf unerkannten Sonderfall hinweisen.
- Kleine Stichprobe (7 Δt<0Fälle) begrenzt statistische Aussagekraft.
**Kausalität & Generalisierbarkeit:**
- Korrelation zwischen NearExpiry und negativem Lag nicht notwendigerweise kausal.
- Ergebnisse gelten nur für Testsystem mit ExitRegel v1.
**Praktische Fallstricke:**
- Schwellenänderung in späteren Runs erfordert ReKalibrierung der Regel.
- Fehlerhafte Zeitsynchronisation kann ΔtSign verfälschen.
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Durchführung eines A/BTests mit NearExpirySchwelle <24h vs. Kontrollgruppe ohne Schwelle.
**Analyseziele:**
- Überprüfung der Regelauswirkungen auf LagVerteilung und Fehlerraten.
**Regression & Modellierung:**
- Langfristig Modellierung der LagVerteilung als Funktion der Restlaufzeit.
**Community-Beiträge:**
- Validierung durch weitere Runs mit standardisierter TraceTemplateEinhaltung.