/pattern/map-reduce/

02 · WorkflowFan-out/Fan-inMap AggregateBatch Decomposition

Map-Reduce.
Über Chunks mappen. Auf eine Antwort reduzieren.

Eine große Aufgabe wird auf unabhängige Chunks gemappt und anschließend zu einem einzigen Ergebnis aggregiert oder reduziert.

Wann man dazu greift

  • Große Eingaben in unabhängige Chunks aufgeteilt werden können.
  • Aggregationslogik klar definierbar ist.
  • Durchsatz-Skalierbarkeit kritisch ist.

Wann es nach hinten losgeht

  • Globale Abhängigkeiten zwischen Chunks bestehen.
  • Die Reduktion semantischen Wert verlieren würde.
  • Ein zentraler Kontext erforderlich ist.

Die Abwägung

Hervorragende Skalierungsfähigkeiten werden gegen das Risiko inkonsistenter Teilergebnisse erkauft.

Die Wirkung

Was es tatsächlich tut.

Die Eingabe wird aufgeteilt, parallel gemappt und dann reduziert.

inputmap chunk 1map chunk 2map chunk 3reduce
Fallstricke

Zwei Wege, wie dieses Pattern Probleme verursachen kann.

Reducer verliert chunk-übergreifenden Kontext

Der Reducer sieht nur die Ausgaben pro Chunk und übersieht Beziehungen, die Chunk-Grenzen überspannen.

Lösung · Chunk-Metadaten (Position, Überlappung) in die Mapper-Ausgabe einbeziehen oder einen zweistufigen Reducer verwenden, der zuerst Grenzen abgleicht.

Ungleichmäßige Chunk-Größen überlasten einen Mapper

Ein Chunk ist 10-mal größer als die anderen. Sein Mapper dominiert die Latenz und der gesamte Auftrag wartet.

Lösung · Dynamische Chunk-Größenanpassung oder einen größenbewussten Splitter verwenden, der Last gleichmäßig auf Mapper verteilt.

Framework-Unterstützung

Wo Map-Reduce nativ ist.

LangGraphSend-API Map + ReduceNativ
AWS Strandsparallele Map-SchritteNativ
Google ADKparallele AgentenNativ
Microsoft Agent FrameworkFan-out / Fan-inNativ
Anthropic Cookbookals Rezept dokumentiertAnpassbar

Suche

Patterns, Frameworks und Seiten durchsuchen.