run_17_gates_default/sql/README.sql.md
2026-03-09 13:44:29 +00:00

44 lines
2.4 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.

# GateV1 Log-Datenbank (Experiment-Key: `run_17_gates_default`)
⚠️ **Experimentell & KI-generiert kein produktiver Einsatz!** Dieses Repository enthält ein minimalistisches PostgreSQL-Schema plus Seed-Daten zur Analyse der GateV1-Retries rund um die Runs #14#17.
## Inhalt
- `schema.sql` Tabellen `runs`, `strata`, `log_entries` inkl. Constraints & Indizes.
- `demo-data.sql` Kleine Beispieldaten zur direkten Auswertung (Run 16 & Run 17).
## Datenmodell
| Tabelle | Zweck |
|-----------------|-----------------------------------------------------------------------------------------------|
| `runs` | Metadaten zu Experiment-Läufen (Fingerprint, Policy-Hash, Mode, Decision-Card-URL). |
| `strata` | Referenz der Strata (pinned, near-expiry, …) inklusive Flags für `is_pinned` und `near_expiry`.|
| `log_entries` | Einzelne Log-Zeilen mit den entscheidungsrelevanten Feldern: Retry-Status, Overhead, Δt usw. |
Wesentliche Constraints:
- `runs_mode_chk` stellt sicher, dass nur bekannte Modi (`warn`, `observe`, `enforce`) eingetragen werden.
- `log_entries_*_chk` begrenzen Messwerte auf realistische Fenster (z.B. Δt zwischen 500ms und +500ms).
- Foreign Keys mit `ON DELETE CASCADE/RESTRICT` sichern Konsistenz zwischen Runs, Strata und Logs.
## Nutzung
1. PostgreSQL 15+ bereitstellen.
2. Schema anwenden: `psql -f schema.sql`
3. Seed-Daten laden (optional): `psql -f demo-data.sql`
4. Beispielabfragen:
```sql
-- Δt<0 ausschließlich im near-expiry-unpinned Stratum?
SELECT stratum_code, COUNT(*) FILTER (WHERE delta_t < 0) AS negative_delta_t
FROM log_entries
GROUP BY stratum_code;
-- Retry-Overhead-Verteilung pro Run
SELECT r.run_label,
percentile_cont(0.95) WITHIN GROUP (ORDER BY retry_total_overhead_ms) AS p95_ms,
percentile_cont(0.99) WITHIN GROUP (ORDER BY retry_total_overhead_ms) AS p99_ms
FROM log_entries le
JOIN runs r ON r.run_id = le.run_id
GROUP BY r.run_label;
```
## Hinweise
- Die Tabellen bilden bewusst nur die für die Gate-V1-Decision-Card genannten Felder ab.
- Erweiterungen (z.B. zusätzliche Metriken oder Views) sollten stets neue Migrationen erhalten **niemals** `schema.sql` nachträglich ändern.
- Bei eigenen Daten immer die Warnung beachten: keine produktiven oder personenbezogenen Inhalte einspielen.