105 lines
4 KiB
Markdown
105 lines
4 KiB
Markdown
# 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.
|