piecewise_policy_validation/decision_table/README.md

153 lines
4.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.

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.

# 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).