The One Billion Row Challenge - Gunnar Morling #313
Replies: 10 comments 4 replies
|
Is the input data considered secret ? If so, it would have been nice if the project included a main-method that would generate a file with 1B rows, to test against. |
|
I understood the question but i am not getting any idea about how to do the task, although I have been using java for 1 year |
|
/home/ian/1bnr-ajz.java real 0m1.009s public class TemperatureAggregator { } |
|
Hello Gunnar! Thanks for setting this interesting challenge! I fear I have found it too late to submit a serious entry. I have been looking into improving performance of Java code for past few months, have found the Vector API and run a few benchmarks. I had not read about SWAR before, so thanks for mentioning it. I just wondered if you knew of any useful textbooks or blog posts that give a good overview of high-performance coding strategies, and ideally Java implementations? I can see this useful blog post from last year you wrote, the only performance-related suggestion is to use GraalVM I think? Thanks! |
|
The top of the leaderboard is filled entirely with GraalVM entries, which is expected, startup time is a decisive factor here. I think a separate challenge would also be interesting, comparing the performance on warmed-up Java Machines |
|
In this commit you renamed the "basic implementation", so the link from this post is now a 404. |
|
I've tried to contact you countless times, i give up lol (give me an email) |
|
Just saw some videos about this. It made me think of processing short-read genetic data, which could be an interesting way to expand on this challenge. Basically, you can find FASTA files with hundreds of millions to billions of short genetic sequences. Each sequence is associated with 4 lines in the file (one for the sequence, one for metadata, one for quality scores, and one that often isn't used). So these files can easily be hundreds of GB in size, and typically are stored compressed to get them in the tens of GB size range. For a challenge, people would have to deal with loading the compressed data, decompressing it, checking quality scores to determine if a sequence should be kept or discarded, and then figuring out which sequences match each other. So there's a lot of string processing and opportunity for concurrency. The matching sequences is tricky because sequencers have a small amount of error leading to substitutions and insertions/deletions, and individual genetic variation can also cause this. Depending on the dataset there could also be barcode matching to add an additional level of grouping to the data (barcodes being used to identify sequences from different individuals that were pooled to together) |
|
Hello All, This can be done 8-10 minutes , and yes it uses C , (https://www.academia.edu/170188636/Associative_Memory_Systems_Technical_Technical_Overview) only it does not use Rows and columns.. |
Uh oh!
There was an error while loading. Please reload this page.
The One Billion Row Challenge - Gunnar Morling
Update Jan 4: Wow, this thing really took off!
1BRC is discussed at a couple of places on the internet, including Hacker News, lobste.rs, and Reddit.
For folks to show-case non-Java solutions, there is a "Show & Tell" now, check that one out for 1BRC implementations in Rust, Go, C++, and others.
Some interesting related write-ups include 1BRC in SQL with DuckDB by Robin Moffatt and 1 billion rows challenge in PostgreSQL and ClickHouse by Francesco Tisiot.
Thanks a lot for all the submissions, this is going way beyond what I’d have expected!
I am behind a bit with evalutions due to the sheer amount of entries, I will work through them bit by bit.
I have also made a few clarifications to the rules of the challenge; please make sure to read them before submitting any entries.
Let’s kick off 2024 true coder style—I’m excited to announce the One Billion Row Challenge (1BRC), running from Jan 1 until Jan 31.
Your mission, should you decide to accept it, is deceptively simple:
write a Java program for retrieving temperature measurement values from a text file and calculating the min, mean, and max temperature per weather station.
There’s just one caveat: the file has 1,000,000,000 rows!
https://www.morling.dev/blog/one-billion-row-challenge/
All reactions