Tech News
← Back to articles

100M-Row Challenge with PHP

read original related products more articles

Important The 100-million-row challenge is now live. You have until March 15, 11:59PM CET to submit your entry!

Welcome to the 100-million-row challenge in PHP! Your goal is to parse a data set of page visits into a JSON file. This repository contains all you need to get started locally. Submitting an entry is as easy as sending a pull request to this repository. This competition will run for two weeks: from Feb 24 to March 15, 2026. When it's done, the top three fastest solutions will win a prize!

Getting started

To submit a solution, you'll have to fork this repository, and clone it locally. Once done, install the project dependencies and generate a dataset for local development:

composer install php tempest data:generate

By default, the data:generate command will generate a dataset of 1,000,000 visits. The real benchmark will use 100,000,000 visits. You can adjust the number of visits as well by running php tempest data:generate 100_000_000 .

Also, the generator will use a seeded randomizer so that, for local development, you work on the same dataset as others. You can overwrite the seed with the data:generate --seed=123456 parameter, and you can also pass in the data:generate --no-seed parameter for an unseeded random data set. The real data set was generated without a seed and is secret.

Next, implement your solution in app/Parser.php :

final class Parser { public function parse ( string $ inputPath , string $ outputPath ): void { throw new Exception ( ' TODO ' ); } }

You can always run your implementation to check your work:

... continue reading