Home United States USA — software The One Billion Row Challenge Shows That Java Can Process a One...

The One Billion Row Challenge Shows That Java Can Process a One Billion Rows File in Two Seconds

278
0
SHARE

On the first day of 2024, Gunnar Morling, Senior Staff Software Engineer at Decodable, launched The One Billion Row Challenge (1BRC) to the Java Community. This ongoing challenge will run until the end of January and aims to find Java code that processes one billion rows in the fastest time. Until now, the podium contained algorithms that finished the processing in under 2.5 seconds.
On the first day of 2024, Gunnar Morling, Senior Staff Software Engineer at Decodable, launched The One Billion Row Challenge (1BRC) to the Java Community. This ongoing challenge will run until the end of January and aims to find Java code that processes one billion rows in the fastest time. Until now, the podium contained algorithms that finished the processing in under 2.5 seconds.

The challenge’s rules are simple: only the SDK features running on any Java distribution may be used. Hence external libraries or data stores are excluded from the solution. InfoQ reached out to Morling, Eliot Barlas, Principal Software Engineer at GoTo, Roy van Rijn, Director at OpenValue Rotterdam, and Thomas Wuerthinger, Vice President of Software Development at Oracle and Founder of GraalVM, for a better understanding of this challenge.
InfoQ: This is an exciting challenge. Can you, please, describe it? What was the motivation behind it?
Morling: The 1BRC is a coding challenge based on a deceptively simple task: parsing temperature measurement values from a text file and determining the min, max, and mean temperature for each weather station present. The caveat: the file has 1,000,000,000 entries!
I wanted to create the opportunity to explore high-performance programming techniques, new APIs (like Vector API – which leverages CPU SIMD instructions), the capabilities of different Java distributions, and anything else that will prove how fast Java has become.
InfoQ: How can anybody join the challenge?
Morling: Start with the README file and by cloning the repo. Try to implement your solution then see what others tried as well – it’s all about the learning in the end.
InfoQ: Did you encounter anything surprising in the solution space?
Morling: Hackers gonna hack: many solutions optimised for the specific key set (i.

Continue reading...