{"id":13498041,"url":"https://github.com/weinberger/nosql-tests","last_synced_at":"2025-03-28T22:32:16.864Z","repository":{"id":33216531,"uuid":"36859495","full_name":"weinberger/nosql-tests","owner":"weinberger","description":"NoSQL benchmark tests for documents and graphs","archived":false,"fork":false,"pushed_at":"2020-02-17T03:20:04.000Z","size":29501,"stargazers_count":288,"open_issues_count":24,"forks_count":94,"subscribers_count":28,"default_branch":"master","last_synced_at":"2024-10-31T14:36:59.567Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/weinberger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-06-04T08:58:10.000Z","updated_at":"2024-08-27T11:10:10.000Z","dependencies_parsed_at":"2022-06-27T09:12:29.161Z","dependency_job_id":null,"html_url":"https://github.com/weinberger/nosql-tests","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weinberger%2Fnosql-tests","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weinberger%2Fnosql-tests/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weinberger%2Fnosql-tests/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/weinberger%2Fnosql-tests/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/weinberger","download_url":"https://codeload.github.com/weinberger/nosql-tests/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246110618,"owners_count":20725089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T20:00:49.044Z","updated_at":"2025-03-28T22:32:15.219Z","avatar_url":"https://github.com/weinberger.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# NoSQL Performance Tests\n\nThis repository contains the performance tests described in my [blog](https://www.arangodb.com/2018/02/nosql-performance-benchmark-2018-mongodb-postgresql-orientdb-neo4j-arangodb/). Please feel free to improve the various database test drivers. If you see any optimization I have missed, please issue a pull request.\n\nThe files are structured as follows:\n\n`benchmark.js` contains the test driver and all the test cases. Currently, the following tests are implemented: `shortest`, `hardPath`, `neighbors`, `neighbors2`, `neighbors2data`, `singleRead`, `singleWrite` and `aggregation`. Use `all` to run all tests inclusive warmup.\n\n`arangodb`, `arangodb_mmfiles`, `neo4j`, `mongodb`, `orientdb`, `postgresql_jsonb` and `postgresql_tabular` are directories containing the files `description.js`, `setup.sh` and `import.sh`. The description file implements the database specific parts of the tests. The setup and import files are used to set up the database and import the needed dataset for the test.\n\n`data` contains the test data used for the read and write tests and the start and end vertices for the shortest path.\n\n## Installation\n\n### Client\n\nWe need additional services to install:\n\n    $ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -\n    $ sudo apt-get install -y make build-essential nodejs\n\nClone the test repo and uncompress the test data files.\n\n    $ git clone https://github.com/weinberger/nosql-tests.git\n    $ cd nosql-tests\n    $ npm install\n    $ npm run data\n\n### Server\n\nThe server also needs the nosql-tests repo checked out. The folder on client and server are required to have the same path!\n\n    $ git clone https://github.com/weinberger/nosql-tests.git\n\nFor the complete setup with all databases we need several additional services:\n\n    $ sudo apt-get install -y unzip default-jre binutils numactl collectd nodejs\n    \nTo install all databases and import the test dataset:\n\n    $ ./setupAll.sh\n\n## Run single test\n\nTo run a single test against one database, we execute `benchmark.js` over node.\n\n    \u0026 node benchmark.js -h\n    Usage: benchmark.js \u003ccommand\u003e [options]\n\n    Commands:\n      arangodb            ArangoDB benchmark\n      arangodb-mmfiles    ArangoDB benchmark\n      mongodb             MongoDB benchmark\n      neo4j               neo4j benchmark\n      orientdb            orientdb benchmark\n      postgresql          postgresql JSON benchmark\n      postgresql_tabular  postgresql tabular benchmark\n\n    Options:\n      --version               Show version number                          [boolean]\n      -t, --tests             tests to run separated by comma: shortest, neighbors,\n                              neighbors2, neighbors2data, singleRead, singleWrite,\n                              aggregation, hardPath, singleWriteSync\n                                                           [string] [default: \"all\"]\n      -s, --restrict          restrict to that many elements (0=no restriction)\n                                                                        [default: 0]\n      -l, --neighbors         look at that many neighbors            [default: 1000]\n      --ld, --neighbors2data  look at that many neighbors2 with profiles\n                                                                      [default: 100]\n      -a, --address           server host            [string] [default: \"127.0.0.1\"]\n      -h                      Show help                                    [boolean]\n\n    copyright 2018 Claudius Weinberger\n\n## Run complete test setup\n\nTo run the complete test against every database, we simply execute `runAll.sh`.\n\n    ./runAll.sh \u003cserver-ip\u003e \u003cnum-runs\u003e    \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweinberger%2Fnosql-tests","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fweinberger%2Fnosql-tests","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fweinberger%2Fnosql-tests/lists"}