prooph/event-store-benchmarks

This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.

dev-master 2019-07-02 21:10 UTC

This package is auto-updated.

Last update: 2021-10-29 02:20:29 UTC


README

Benchmarks for prooph event-store

Requirements

  • PHP >= 7.1
  • PDO_MySQL Extension
  • PDO_PGSQL Extension

For MariaDB you need server vesion >= 10.2.6.

For MySQL you need server version >= 5.7.9.

For Postgres you need server version >= 9.4.

For ArangoDB you need server version >= 3.2.

Test Results

You can check our test results here.

They were running a notebook with Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz

Usage

Docker and Docker Compose

If you want to run the benchmark suite you need Docker and Docker Compose.

Install dependencies with:

$ docker run --rm -i -v $(pwd):/app prooph/composer:7.2 update -o

Then you can simply run the bench_docker.sh script for each driver (arangodb postgres mysql mariadb):

$ . bench_docker.sh --driver postgres

Or to run all benchmarks

$ . bench_docker_all.sh > results.log

Manual

  1. Have MySQL, MariaDB, Postgres, ArangoDB installed and running
  2. Edit .env file and change your db settings
  3. Create the test database according to your settings
  4. run . bench.sh --driver postgres or . bench_all.sh > results.log or . bench.sh --driver postgres,arangodb
  5. enjoy

Good to know

Test 7 real world test

This is the most realistic test case that comes close to production usage:

  • 50 processes are writing 250 events at the same time
  • 6 projections are reading events at the same time
  • a total of 12500 events are written
  • a total of 15000 events are read

Support

Contribute

Please feel free to fork and extend existing or add new plugins and send a pull request with your changes! To establish a consistent code quality, please provide unit tests for all your changes and may adapt the documentation.

License

Released under the New BSD License.