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