bmap4j - Batch Management And Processing For Java

xinventa logo

Batch-Transaction-Processing Grundlagen - Performanz

en

Performanz

Parallelisierung

Eine Parallelisierung der Programmes ist vielfach unabdingbar, um den geforderten Durchsatz zu erreichen. Der ganze Batch wird dabei in Slices (Teilstapel) unterteilt, welche dann parallel verarbeitet werden. Voraussetzung für die Umsetzung einer parallelen Strategie ist, dass die einzelnen Slices voneinander unabhängige Records enthalten.

Die Parallelisierung muss aber mit der Skalierbarkeit von Appserver und Backendsystemen (z.B. DB's) einhergehen, sonst entsteht dort ein Flaschenhals, welcher die parallel laufenden Einheiten ausbremst, so dass kein oder nur ein geringer Performanzgewinn resultiert.

Commit-Einheiten

Jeden Record einzeln zu committen ist vielfach nicht effizient. Alle Records zusammen zu committen ist meistens auch nicht möglich (siehe Robustheit - All-or-Nothing Strategie). Meist wird eine optimale Anzahl von Records zu einer Commit-Einheit zusammengefasst. Diese Commit-Einheit fällt optimalerweise mit dem Slice aus der Parallelisierung zusammen. Allenfalls ist dann noch eine Abstimmung mit dem Cache des eingesetzten Entity-Managers nötig.

Weitere Aspekte

Auch ausserhalb des Scopes des Batch Systems beeinflussen diverse Aspekte das Performanzverhalten:

  • Design der Applikation oder des Datenmodells
  • Qualität des Programm-Codes
  • Leistung von Datenbankserver, Betriebssystem oder IO-Subsystemen

Auch diese Aspekte müssen bei der Optimierung der Performanz eines BTP Systems in Betracht gezogen werden.