Vigilant Inference Governor

ADR-0009: Verworfen wird, was wertlos ist — nicht, was zu spaet kommt

Status: Akzeptiert · 2026-08-31 Betrifft: Spec 10.3 (Stufe B), 10.6 (Zielordnung), 12.3 (Auswahlregel) Ausloeser: Gate-S-Lauf, Szenario A

Kontext

Die erste Implementierung folgte Spec 10.3 Stufe B woertlich und verwarf einen supersedierbaren Request, sobald

predicted_finish > absolute_deadline

galt. Der erste Gate-S-Lauf zeigte, wohin das fuehrt.

Szenario A (ein 30-FPS-Strom, Deadline 66 ms, max_age 66 ms) bei 125 % Angebotslast:

unabgedeckte Perioden stale compute gelieferte gueltige Ergebnisse
OneTimer 1000 ‰ 0 ‰ 0
FIFO-Baseline 692 ‰ 639 ‰ 282

Bei dieser Last liegt p99 * 1.10 knapp ueber der Deadline. Damit war jeder Request unmachbar, jeder wurde abgelehnt, und das System fuehrte nichts mehr aus. Die Metrik „stale compute 0 ‰" war dabei formal richtig und inhaltlich wertlos: wer nichts rechnet, verschwendet nichts.

Das ist die vakuose Loesung der lexikographischen Zielordnung aus Spec 10.6. Wer Protected-Deadline-Misses minimiert, indem er keine Protected-Arbeit mehr ausfuehrt, hat null Misses — und einen blinden Roboter. Dass ADR-0005 diesen Fall sichtbar gemacht hat, ist genau der Zweck der periodenbezogenen Metrik; eine requestbezogene Miss-Rate haette hier ein perfektes Ergebnis gemeldet.

Entscheidung

Die Deadline steuert Reihenfolge und Variantenwahl. Ueber das Verwerfen entscheidet die Frische.

Ein Request wird vor dem Dispatch nur dann verworfen, wenn sein Ergebnis bei prognostizierter Fertigstellung fachlich wertlos waere:

(predicted_finish - generation_time) > max_age

Verfehlt er lediglich seine Deadline, bleibt aber innerhalb von max_age, wird er mit der schnellsten verfuegbaren Variante ausgefuehrt und bei Fertigstellung nach Stufe C bewertet.

Unveraendert bleiben:

Begruendung

Spec 10.2 trennt ausdruecklich Request Latency von Information Age und erklaert Letztere zur eigentlichen Produktgroesse. Dann muss auch die Verwerfensentscheidung an ihr haengen. Eine um 5 ms verspaetete, aber frische Objekterkennung ist fuer den Roboter brauchbar; eine puenktliche Erkennung auf einem 300 ms alten Bild ist es nicht.

Spec 10.3 formuliert Stufe B mit „darf ein supersedierbarer Request verworfen werden" — als Erlaubnis, nicht als Pflicht. Dieses ADR schoepft die Erlaubnis enger aus, als die erste Implementierung es tat.

Konsequenzen