Batch-Job oder Einzeln

Home PDF Audio

Heute gab es in unserer Wohnung Probleme mit der Wasserversorgung, sodass wir eine Zeit lang kein Wasser hatten. Nachdem wir das Essen beendet und die Berge von Geschirr gesehen hatten, die meine Familienmitglieder und ich zurückgelassen hatten, kamen mir mehrere Fragen in den Sinn.

Eine Möglichkeit besteht darin, die Spülmaschine so zu gestalten, dass sie auch ohne direkten Wasseranschluss weiterarbeiten kann. Sie könnte so konzipiert sein, dass sie an einen Eimer mit Wasser angeschlossen werden kann. Zudem sollte der Anschlusskopf des Wasserrohrs flexibel sein, um den Wechsel von der öffentlichen Wasserversorgung zu einem privaten, selbstgebauten Wassereimer problemlos zu ermöglichen.

Ein weiterer Punkt ist die Frage, ob die Arbeit in Chargen oder einzeln erledigt werden soll. Wir können das Geschirr nach jeder Mahlzeit spülen oder warten, bis wir es nach einem Tag oder ein paar Tagen spülen. Dies betrachten wir aus der Perspektive, wie wir Mahlzeiten einnehmen und das Geschirr spülen. Wir können dieses Problem auch aus der Sicht angehen, wie viel Geschirr eine Spülmaschine aufnehmen kann.

Es erinnert mich an das Programmieren. Wir können Aufgaben stapelweise oder einzeln ausführen.

Das Erledigen der Arbeit in Chargen führt zu einem offensichtlichen Problem: Es erfordert mehr Ressourcen. Es werden mehr Geschirr benötigt, da wir das Spülen verzögern, und es wird mehr Speicherplatz benötigt, da wir die Daten ansammeln, um die Bearbeitung aufzuschieben.

Im wirklichen Leben gibt es eine Grenze dafür, wie viel Platz oder wie viele Gegenstände gleichzeitig bewältigt werden können. Zum Beispiel kann der Geschirrspüler wahrscheinlich höchstens zwanzig Geschirrteile auf einmal bewältigen, ähnlich wie ein Programm auf einem Computer eine Speicherbegrenzung hat oder eine Straße eine Begrenzung für die Anzahl der Autos, die passieren können.

Es gibt auch das Problem, wie man die Aufgabe aufteilen soll. Sollten wir sie einzeln, also ein Element nach dem anderen, oder in Dreiergruppen, also drei Elemente auf einmal, trennen?

Für Gerichte oder Autos ist es einfach, jedes Element als Einheit zu behandeln. Das bedeutet, ein Gericht ist ein Gericht, und ein Auto ist ein Auto. Normalerweise können sie nicht in kleinere Teile zerlegt werden. Allerdings gibt es auch hier Ausnahmen, wie zum Beispiel ein großer LKW, der viele Autos transportiert; ein großer LKW kann in eine große Einheit und viele Autos, die die Straße passieren, zerlegt werden.

In der Programmierung ist es viel flexibler. Selbst ein INSERT- oder UPDATE-SQL kann in kleinere Teile zerlegt werden, ganz zu schweigen von einem Download-Job, einer DFS-Suche oder einer Abfrage.

OK, jetzt haben wir über die Handhabungseinheit nachgedacht. Dann stellt sich die Frage, wie viele Einheiten wir in einem Batch verarbeiten sollten. Es kann jede Zahl zwischen eins und der Gesamtzahl der Einheiten sein.

Die Frage hier ist, ob die Anzahl der Batches für einen Job fest oder dynamisch sein kann. Bei generativer KI ist die Gesamtzahl der Zeichen des Eingabetexts flexibel. Es gibt einige Kontext- oder Eingabegrenzen, aber innerhalb dieses Grenzbereichs ist es flexibel.

Beim Gebrauch der Spülmaschine ist der Innenraum begrenzt. Innerhalb dieser Grenze ist die Anzahl der Geschirrteile flexibel. Normalerweise geben wir so viele schmutzige Geschirrteile wie möglich in die Maschine.

Für Programme gibt es eine Grenze dafür, wie viele SQL-Anweisungen die Datenbank auf einmal verarbeiten kann. Innerhalb dieser Grenze ist die Anzahl der SQL-Anweisungen, die verarbeitet werden können, flexibel. Wir sollten jedoch die Netzwerkaufgabe berücksichtigen, die SQL-Anweisungen vom Client zum Datenbankserver zu übertragen, wie viel Zeit der Benutzer warten kann und was passiert, wenn eine Einzelaufgabe des Batches fehlschlägt.

Für das Problem, wie viele Einzelaufgaben wir in einem Batch ausführen sollten, sollten wir das Ziel des Jobs, die Grenzen des nachgelagerten Verbrauchers oder Handlers sowie die Wahrscheinlichkeit eines Fehlschlagens berücksichtigen.

Diese Denkweise kann auf viele Dinge angewendet werden. Es gibt im Wesentlichen zwei Probleme zu betrachten: Was ist die Einzelaufgabe und wie viele Einheiten sollten wir in einem Batch verarbeiten. Durch die Betrachtung dieser Probleme können wir zu einer optimalen Lösung gelangen.


Back 2025.01.18 Donate