/1BRC

Primary LanguageGoBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

1BRC

TL;DR

An input file with all rows of the format <station name>;<temperature> is given. It contains a billion rows (1,000,000,000 = 10\^9). Station names may repeat.

Output a file of the format <station name>;min;max;mean sorted by the station name.

Rules and Limitations: https://1brc.dev/#rules-and-limits

Goal

Currently this is a learning exercise for myself. I am learning golang and doing some excessive yakshaving to fill gaps in my knowledge and exploring topics that I want to.

The original 1brc repo is a mess and the generator especially is. You should be able to do go run github.com/ellipse0934/1BRC/cmd/generate --rows=1000000000 --station-set=extended to make your own input.txt file.

I will be exploring some golang topics like unit testing, benchmarking using pprof, RNG, concurrency and parallelisation, etc. Wherever my mind takes me. I’ll be happy with a sub 10 second solution. But there is no solution as of now.