Inhaltsverzeichnis
- Abstract
- Überblick
- Lernziele
- Zielgruppe
- Voraussetzungen
- Inhalte
- Praxis-Labs
- Technischer Rahmen
Abstract
Systematisches Performance‑Engineering mit Arrow: Messmethodik, Profiling, Stellhebel im Speicher‑ und Compute‑Pfad sowie robuste Optimierungsstrategien für Throughput und Latenz.
Dauer: 2 Tage
Format: Präsenz oder Live-Online
Überblick
Arrow‑Workloads sind häufig durch Speicherbandbreite, Allokationen und Datenlayout limitiert. Das Seminar vermittelt eine praxistaugliche Methodik, um Engpässe zu finden und gezielt zu beheben.
Neben Microbenchmarks werden auch End‑to‑End‑Messungen in Pipeline‑Szenarien betrachtet.
Lernziele
- Messdesign: geeignete Metriken und Benchmark‑Setups definieren
- Profiling‑Daten interpretieren und Hotspots priorisieren
- Chunking, Batching und Buffer‑Reuse optimieren
- Parallelisierung und Concurrency‑Grenzen erkennen
- Kosten von Kopien und Konvertierungen minimieren
- Tuning‑Entscheidungen dokumentieren und regressionssicher machen
Zielgruppe
- Entwickelnde von Datenpipelines und Analytics‑Workloads
- Teams mit Flight‑Services oder großen Parquet‑Scans
- Plattform‑Teams mit Performance‑SLOs
Voraussetzungen
- Grundlagen zu Arrow Datentypen/RecordBatches
- Erfahrung in mindestens einer Implementierung (Python/Java)
- Basiswissen zu Profiling/Benchmarking hilfreich
Inhalte
Modul 1: Performance‑Grundlagen
- CPU, Cache, Speicherbandbreite, Branching
- Vectorization‑Prinzipien und Operator‑Pipelines
- Allokationskosten und Fragmentierung
Modul 2: Benchmarking‑Methodik
- Microbenchmarks vs. End‑to‑End
- Datengenerierung, Warmup, Wiederholbarkeit
- Vergleichbarkeit über Maschinen/CI
Modul 3: Tuning‑Hebel
- Chunk sizes, RecordBatch sizing, alignment
- Memory Pools, buffer reuse, copying vermeiden
- Parquet IO: Row Groups, Predicate Pushdown, Parallel Reads
Modul 4: Profiling und Troubleshooting
- Profiling‑Tools und Interpretationsmuster
- Leak‑Detektion, OOM‑Szenarien
- Regressionen vermeiden: Performance‑Tests und Budgets
Praxis-Labs
Lab 1: Baseline und Hotspots
- Baseline‑Benchmark für Scan + Transformation definieren
- Profiling‑Daten sammeln (CPU/Memory/IO)
- Top‑Hotspots identifizieren und Hypothesen ableiten
- Messungen reproduzierbar machen
Lab 2: Chunking und Buffer‑Reuse
- RecordBatch‑Größen variieren und Auswirkungen messen
- Konvertierungs‑Kopien identifizieren und reduzieren
- Memory Pool Verhalten beobachten und optimieren
- Ergebnisse in eine Tuning‑Checkliste übertragen
Lab 3: Parquet‑Scan Tuning
- Row Group Größen und Kompression variieren
- Pushdown‑Effekte verifizieren
- Parallel Reads konfigurieren und vergleichen
- Sinnvolle Defaults für Produktionspipelines ableiten
Technischer Rahmen
- Lokale Benchmark‑Skripte und reproduzierbare Datengeneratoren
- Optional: Container für konsistente Messumgebung
- Keine externen Dienste erforderlich
- Optional: Integration in CI‑Beispielpipeline
