gunnarmorling/1brc

1️⃣🐝🏎️ The One Billion Row Challenge -- A fun exploration of how quickly 1B rows from a text file can be aggregated with Java

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 37 minutes ago
Added to GitGenius on December 6th, 2025
Created on December 28th, 2023
Open Issues & Pull Requests: 42 (+0)
Number of forks: 2,244
Total Stargazers: 8,111 (+0)
Total Subscribers: 77 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 18.9 days
Mean response time: 75.4 days
90th percentile: 314.1 days
Tracked items: 5

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 78% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 2% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 23
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 655 days
Stale 30+ days: 23
Stale 90+ days: 23

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

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.

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.