Skip to content

Details

/Abstract
// german, english version below
“Java ist doch langsam” - diese Aussage hat sicherlich schon jeder erfahrene Java Entwickler mindestens einmal in seinem Leben gehört. Fakt ist jedoch, dass Java über die Zeit stetig schneller geworden ist. Durch Verbesserungen in der JVM, wie z.B. effizientere JIT Compilation und auch Garbage Collection können manche Anwendungen bereits durch ein JDK Update signifikant beschleunigt werden. Was mit Java heutzutage an Performance erreichbar ist, zeigt eindrucksvoll die von Java Champion Gunnar Morling über die Weihnachtsfeiertage 2023 ins Leben gerufene “1 Billion Rows Challenge” (1BRC).

Die Aufgabe war einfach: Gegeben ist ein Datensatz im CSV Format mit Messungen von Wetterstationen. Diese Messwerte sollen nun pro Wetterstation nach Min, Max, Count und Average Temperatur aggregiert werden, und das möglichst schnell.
Der Haken daran: Es gibt 1 Milliarde Datensätze! Solch eine große Datenmenge effizient zu Verarbeiten ist eine große Herausforderung, denn schon die CSV Daten alleine sind rund 13 GB groß.

An der 1BRC Challenge haben über 100 namhafte Experten aus dem Java Universum teilgenommen und dabei mit Hilfe von effizienten Algorithmen, geschicktem Ausnutzen der Hardware, diversen Bit-Hacks und sonstigen Java Tricks erstaunliche Ergebnisse erzielt.

Die bisher besten Implementierungen schaffen die Verarbeitung des Datasets in knapp 1 Sekunde! Zum Vergleich: eine Straightforward Java Lösung benötigt auf derselben Hardware über 1 Minute!

In diesem Vortrag werden wir einige dieser Lösungen vorstellen und deren Ansätze, Tricks und ausgewählte Hacks erläutern.

Wir freuen uns wieder auf einen interessanten Abend :)

Hinweis: Vortrag und Slides werden auf englisch sein.

// english
"Java is slow" - every experienced Java developer has undoubtedly heard this statement at least once. The fact is, however, that Java has become steadily faster over time. Improvements in the JVM, like for instance efficient JIT compilation and improved garbage collection, can significantly speed up some applications by just updating the JDK. The "1 Billion Rows Challenge" (1BRC) launched by Java champion Gunnar Morling over the 2023 Christmas holidays impressively demonstrates the performance that Java can achieve today.

The task was simple: given a data set in CSV format with temperature measurements from weather stations. The temperature values should be aggregated as quickly as possible for each weather station according to min, max, count, and average.
The catch: there are 1 billion data records! The CSV file alone is ~13 GB on disc.

Over 100 renowned experts from the Java universe participated in the 1BRC Challenge. They achieved excellent results with the help of efficient algorithms, skillful use of the hardware, various bit hacks, and other Java tricks.

The best implementations to date manage to process the dataset in just ~ 1 second! For comparison, a straightforward Java solution takes over 1 minute on the same hardware!

This talk will present some of these solutions and explain their approaches, tricks, and selected hacks.

We are looking forward to another exciting evening :)

Note: Talk and slides will be in English.

/Bio
Thomas Darimont currently works as a Principal Consultant at codecentric AG in Saarbrücken. There he helps customers with the implementation of centralised identity management platforms.
He has more than twenty years of experience in the development of enterprise applications and open source projects with Java and .NET. He specialises in software architecture, the Spring ecosystem, performance tuning and security.
In his spare time, he enjoys organising community meetups and working on open source projects such as Keycloak, chicory and extism. Thomas has been a consistent contributor for over nine years and has been an official maintainer in the Keycloak project since 2021.

Related topics

Events in Saarbrücken, DE
Java
JavaScript
Computer Programming
Open Source
Web Technology

You may also like