The One Billion Row Challenge (1BRC) is a competitive programming challenge that invites Java developers to optimize their code for processing and aggregating one billion rows of temperature measurement data from a text file. Created by Gunnar Morling and sponsored by Decodable, the challenge ran from January 1 through January 31, 2024, with final leaderboards published on February 4, 2024. The repository serves as both the challenge specification and submission collection point, attracting over 100 entries from the Java community.
The core task is straightforward but computationally demanding: read a text file containing weather station temperature measurements in the format of station name and temperature value separated by a semicolon, then calculate the minimum, mean, and maximum temperature for each station and output results sorted alphabetically. The challenge explicitly encourages participants to leverage modern Java capabilities including virtual threads, SIMD instructions, garbage collection optimization, and any other performance-enhancing techniques available in the Java ecosystem. By January 12, the challenge had grown so popular that submission guidelines were tightened to require implementations capable of completing in 10 seconds or less on the evaluation hardware.
The repository is classified across multiple performance and data processing domains including data aggregation, benchmarking, optimization, high throughput processing, concurrency, file I/O, and large-scale data handling. These classifications reflect the challenge's focus on pushing Java's capabilities to their limits for a real-world data processing scenario. The evaluation environment was a Hetzner AX161 dedicated server with an eight-core configuration from a 32-core AMD EPYC 7502P processor and 128 GB of RAM, providing a standardized baseline for comparing all submissions.
Activity tracking shows that Gunnar Morling, the repository creator, was the most active contributor with 4 tracked events, followed by drewr95 and gwerbin with 3 events each. The median issue and pull request response latency across 14 tracked items was approximately 14,775 hours, with a mean of 10,079 hours, reflecting the challenge's time-bound nature and the concentrated activity period during the submission window. The repository shares contributors with other major open-source projects including dask/dask, sympy/sympy, and bokeh/bokeh, indicating participation from developers active in the broader data processing and scientific computing communities.
The challenge represents a practical exploration of Java performance optimization in a competitive context, where participants could experiment with cutting-edge language features and runtime optimizations. The repository documentation includes status updates tracking the challenge timeline, from the initial opening for submissions through the closure date and final evaluation period. By consolidating over 100 submissions and their results in a single repository, the project creates a valuable resource for understanding how different optimization strategies perform on identical hardware and data, making it useful for Java developers interested in performance tuning and high-throughput data processing techniques.