Add decision_table/README.md

This commit is contained in:
Mika 2026-02-18 14:55:41 +00:00
commit 00cf5773f7

153
decision_table/README.md Normal file
View file

@ -0,0 +1,153 @@
# Entscheidungstabelle für Piecewise-Policy-Auswahl und Validierung
## Purpose
Dokumentation der Auswahl- und Validierungsentscheidungen für Piecewise-Policies zur Steuerung von Performance-Tails und Unknowns.
**Problemstellung:** Unkontrollierte lange Tails bei unpinnedRuns verursachen hohe WorstCaseWerte trotz guter Durchschnittsmetriken. Ziel ist eine Policy, die Tails begrenzt und Unknowns minimiert.
**Ziele:**
- Reduktion von Unknowns auf ≤1%
- Sicherstellung einer Sichtbarkeit von ≥99%
- Optimierung von WorstCaseWartezeiten bei akzeptabler p99Performance
## Kontext & Hintergrund
Systemmetriken aus grid_results.csv mit Sichtbarkeit, UnknownRate, WorstCase und p99Werten je PolicyVariante.
**Gruppierung:**
- pinned
- unpinned
**Trace-Metadaten / zusätzliche Tags:**
- policy_variant
- grace
- delay
- visibility
- unknown
- worst_case
- p99
**Domänenkontext:**
- System-Performance-Test bei unterschiedlicher ThreadAffinität (pinned/unpinned)
- Evaluierung von delay und gracebasierten Steuerparametern
**Motivation:**
- Reduktion extremer Ausreißer in Latenzverteilungen
- Vermeidung unklarer (Unknown) Zustände im Testbetrieb
- Versionierte PolicyKontrolle zur Nachvollziehbarkeit
## Methode / Spezifikation
**Übersicht:**
- Systematische Filterung des PolicyGrids nach definierten Hard Constraints.
- Optimierung innerhalb des gültigen Subsets nach minimalem WorstCase.
- Sekundäre Bewertung über p99 bei Gleichstand.
**Algorithmen / Verfahren:**
- Filter: visibility ≥99%, unknown ≤1%.
- Sortierung: Primär nach WorstCase, sekundär nach p99.
- Finale Auswahl: Ein PolicyKandidat pro Stratum (pinned/unpinned).
## Input / Output
### Input-Anforderungen
**Hardware:**
- Standard-Testplattform mit CPU-Affinitätssteuerung
**Software:**
- Analyse-Tooling mit grid_results.csv-Auswertung
**Konfiguration:**
- policy_constants.json mit getrennten Parametern für pinned/unpinned
### Erwartete Rohdaten
**Felder pro Run:**
- policy_variant
- grace
- delay
- visibility
- unknown
- worst_case
- p99
**Formatbeispiele:**
- Variante B, 2.0, 1.0, 99.3, 0.8, 810, 560
**Trace-Daten:**
- Format: CSV mit numerischen und boolean Feldern
- Hinweis: Ergänzt um policy_hash zur Versionierung
### Analyse-Ausgaben
**Pro Gruppe / pro Governor:**
- Visibility
- Unknown
- WorstCase
- p99
**Vergleichsausgaben:**
- unpinned: Variante B + moderater 2PhaseDelay + moderate Grace vs unpinned: Variante B + höhere Grace, kein Delay
- Δ: bessere WorstCaseReduktion mit Delay
- pinned: Variante A + moderate Grace + minimaler Delay vs pinned: Variante A + erhöhter Delay
- Δ: ähnliche p99, jedoch höhere Unknowns bei erhöhtem Delay
## Workflow / Nutzung
**Analyse-Workflow:**
- 1. grid_results.csv einlesen.
- 2. Filterung nach definierten Hard Constraints.
- 3. Kennzahlenbewertung (WorstCase, p99).
- 4. Entscheidung je Stratum treffen.
- 5. policy_constants.json aktualisieren.
- 6. policy_hash neu berechnen.
- 7. minivalidation (8Runs) durchführen.
## Interpretation & erwartete Ergebnisse
**Kernbefunde:**
- UnpinnedDelay reduziert die langen Tails signifikant bei stabiler UnknownRate.
- PinnedGrace erhöht Sichtbarkeit ohne TailVerschlechterung.
- Beide Policies liegen innerhalb der spezifizierten Constraints.
**Implikationen für Experimente:**
- Die PiecewisePolicy kann als stabiler BaselineDefault eingesetzt werden.
- Weiterführende Validierungen mit 610 Runs empfohlen, um Varianz zu quantifizieren.
**Planungsziel:**
- Ziel: Validierung des Stabilitätsbereichs („Sweet Spot“) zur RolloutFreigabe.
- Vorgehen:
- CrossStratumValidierung mit gleichbleibender Testkonfiguration.
- Keine Setup oder LoggingÄnderung während Validierung.
## Limitationen & Fallstricke
**Datenbezogene Limitationen:**
- Begrenzte Stichprobe (8 Runs) kann seltene Ausreißer verdecken.
- Abhängigkeit von spezifischen GridKonfigurationen.
**Kausalität & Generalisierbarkeit:**
- Ergebnisse gelten nur für getestete Hardware und AffinitätsSetups.
- Kein Nachweis für kausale Effekte zwischen Delay und UnknownReduktion außerhalb der Testbedingungen.
**Praktische Fallstricke:**
- Übermäßige DelayErhöhung destabilisiert p99.
- Fehlerhafte oder fehlende PolicyHashVersionierung erschwert Reproduzierbarkeit.
## Nächste Schritte & Erweiterungen
**Geplante Experimente:**
- Erweiterte Validierungsserie mit 610 Runs je Stratum.
- RolloutSimulation mit gemischten Lastprofilen.
**Analyseziele:**
- Quantifizierung der Varianzreduktion durch DelayTuning.
- Mehrdimensionale Bewertung von WorstCaseTradeoffs.
**Regression & Modellierung:**
- Automatische PolicyRegressionstests gegen historische decision tables.
**Community-Beiträge:**
- Austausch von UnknownHandlingStrategien (WARN vs REVIEWSchwelle).