publish_timeline_analysis/readme.md
2026-01-15 18:55:26 +00:00

105 lines
4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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.

# publish_timeline_analysis
## Überblick
Dieses Repository dokumentiert und implementiert den Versuchsaufbau *publish_timeline_analysis*. Das Experiment untersucht die Analyse und Sichtbarmachung von Publish-Reihenfolgen in einem komplexen Systemumfeld mit Fokus auf eBPF-Instrumentation, Event-Korrelation und Merging-Strategien.
**Link zum Artikel:** [https://donau2space.de/tag-119-1135-nebel-frisst-die-donau-und-ich-zeichne-endlich-eine-saubere-publish-timeline-fuer-case_03-04/](https://donau2space.de/tag-119-1135-nebel-frisst-die-donau-und-ich-zeichne-endlich-eine-saubere-publish-timeline-fuer-case_03-04/)
**Git Repository:** [https://git.donau2space.de/Mika/publish_timeline_analysis](https://git.donau2space.de/Mika/publish_timeline_analysis)
### Hinweis
Alle Inhalte wurden per KI generiert.
Nutzung, Anpassung und Weiterentwicklung erfolgen eigenverantwortlich auf eigenes Risiko.
Es wird keine Korrektheit, Sicherheit, Funktionsfähigkeit oder rechtliche Eignung zugesichert.
## Inhalt des Repositories
Das Repository umfasst drei Python-Skripte, die Analyse und Instrumentation von Publish-Events unterstützen.
### Artefakte
#### 1. ebpf_trace_instrumentation
- **Art:** python_script
- **Ziel:** linux-demo
- **Sprachen:** Python
- **Zweck:** Erweiterung der eBPF-Instrumentation zur Erfassung von Publish-Events in Linux-Umgebungen.
**API-Funktionen:**
- `add_event(event_type, event_data)` Fügt ein neues Event in den eBPF-Trace-Kontext ein.
**Datenstruktur:**
- `PublishEvent` JSON-Struktur mit Feldern: `ktime_ns`, `CPU`, `field_tag`, `new_value_hash`, `corr_id`.
#### 2. trace_event_merging
- **Art:** python_script
- **Ziel:** linux-demo
- **Sprachen:** Python
- **Zweck:** Merging von Read- und Write-Events zu konsistenten Publish-Sequenzen.
**API-Funktionen:**
- `merge_events(read_events, write_events)` Kombiniert Ereignisse anhand von Korrelations-IDs zu einer Merge-Sequenz.
**Datenstruktur:**
- `MergedEvent` JSON-Struktur mit Feldern: `corr_id`, `combined_sequence`.
#### 3. window_sweep_analysis
- **Art:** python_script
- **Ziel:** linux-demo
- **Sprachen:** Python
- **Zweck:** Analyse von Zeitfenstern und ihrer Auswirkungen auf Publish-Sequenzen.
**API-Funktionen:**
- `perform_window_sweep(window_sizes)` Führt eine Analyse mehrerer Betrachtungsfenster aus und liefert Abweichungsmetriken.
**Datenstruktur:**
- `SweepResult` JSON-Struktur mit Feldern: `window_size`, `mismatch_count`, `retry_burst_width`.
## Installation & Nutzung
### Voraussetzungen
- Python 3.9 oder höher
- Linux-System mit eBPF-Unterstützung
- `bcc`- oder `bpftrace`-Tooling (optional für erweiterte Tracing-Analyse)
### Installation
1. Repository klonen:
`git clone https://git.donau2space.de/Mika/publish_timeline_analysis`
2. Abhängigkeiten installieren:
`pip install -r requirements.txt`
3. Skripte ausführbar machen (optional):
`chmod +x *.py`
### Nutzung
Beispiel für die Nutzung der drei Module:
1. Erfassung von Publish-Events:
`python ebpf_trace_instrumentation.py`
2. Merging der Events:
`python trace_event_merging.py`
3. Analyse nach Fenstergrößen:
`python window_sweep_analysis.py`
## Typische Use-Cases
- Validierung von Publish-Ordern in Multicore-Systemen
- Experimentelle Korrelation von Event-Timelines mittels eBPF
- Zeitfensteranalyse für Publish-Resequencing-Mechanismen
- Erstellung von Trace-basierten Visualisierungen
## Struktur & Erweiterbarkeit
Die drei Python-Module sind unabhängig strukturiert, arbeiten jedoch auf einem gemeinsamen Datenmodell (Publish-Events).
Erweiterungen können erfolgen durch:
- zusätzliche Event-Typen in `ebpf_trace_instrumentation`
- neue Merge-Strategien in `trace_event_merging`
- zusätzliche Metriken in `window_sweep_analysis`
Die JSON-basierten Datenstrukturen erleichtern die Integration in externe Analysepipelines.
## Lizenz
Veröffentlicht unter der **MIT-Lizenz**.
Nutzung und Weiterentwicklung erfolgen auf eigene Verantwortung.