High Performance Computing mit Java
Der LMAX Disruptor ist eine Java Bibliothek für das Austauschen von Nachrichten in einem Multithreading-System mit hohem Datendurchsatz aber minimaler und stabiler Latenz durch Lock-freie Synchronisierung der Threads. Im Rahmen des Studiums haben wir diese Datenstruktur nachgebaut und unter Lasttests gesetzt um ihre Möglichkeiten und Grenzen zu verstehen. Das Projekt wurde in einem wissenschaftlichen Poster zusammengefasst.
Unsere Implementation konnten einen Datendurchsatz von 11 Millionen Nachrichten pro Sekunde mit
einer P99 Latenz von 239 ns erreichen.
In dem Projekt haben wir viel über Java gelernt:
- Umgehung des Garbage Collectors
- Kosten von verschiedenen Methoden zur Thread Synchronisierung
- Java Memory Layout und Projekt Valhalla
- Cache-freundliche Programmierung
- Messen von Latenzen unter 1 Mikrosekunde.
Und ja, die Bibliothek ist nach dem Star Trek Disruptor benannt😁, als Gegenstück zum Java Phaser.