{"id":29053601,"url":"https://github.com/efcasado/ycsb-riak","last_synced_at":"2025-07-12T21:34:55.861Z","repository":{"id":39917931,"uuid":"487317351","full_name":"efcasado/ycsb-riak","owner":"efcasado","description":"Yahoo! Cloud Serving Benchmark (YCSB) for Riak","archived":false,"fork":false,"pushed_at":"2022-05-21T16:55:41.000Z","size":33,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-27T01:07:14.634Z","etag":null,"topics":["benchmarking","database","riak","ycsb"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/efcasado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-04-30T15:48:02.000Z","updated_at":"2024-03-06T15:14:21.000Z","dependencies_parsed_at":"2022-09-21T04:51:18.900Z","dependency_job_id":null,"html_url":"https://github.com/efcasado/ycsb-riak","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/efcasado/ycsb-riak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efcasado%2Fycsb-riak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efcasado%2Fycsb-riak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efcasado%2Fycsb-riak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efcasado%2Fycsb-riak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/efcasado","download_url":"https://codeload.github.com/efcasado/ycsb-riak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/efcasado%2Fycsb-riak/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265059978,"owners_count":23705226,"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":["benchmarking","database","riak","ycsb"],"created_at":"2025-06-27T01:07:11.735Z","updated_at":"2025-07-12T21:34:55.816Z","avatar_url":"https://github.com/efcasado.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Yahoo! Cloud Serving Benchmark (YCSB) for Riak\n\nAuthored by Yahoo! Research in [2010](https://people.cs.pitt.edu/~chang/231/y13/papers/benchmarkcloud.pdf),\n[YCSB](https://github.com/brianfrankcooper/YCSB) is an extensible workload\ngenerator for benchmarking key-value data stores.\n\nA typical `YCSB` run consists of loading key-value pairs into the target data\nstore, run a specific workload against the target data store, and reporting\nstatistics.\n\nWhilst `YCSB` allows you to define custom workloads, it also ships with a series\nof [predefined workloads](https://github.com/brianfrankcooper/YCSB/tree/master/workloads),\nwhich are ready to be used with little to no configuration.\nThe [official wiki](https://github.com/brianfrankcooper/YCSB/wiki/Core-Workloads)\nof the project provides some information about these.\n\nThis repository aims at simplifying and illustrating how `YCSB` can be used\nto benchmark different [Riak](https://riak.com/) configurations.\n\nFor more information about how YCSB can be configured to interact with Riak,\nplease, check `YCSB`'s Riak client\n[documentation](https://github.com/brianfrankcooper/YCSB/tree/master/riak).\n\n\n## Requirements\n\n- [GNU Make](https://www.gnu.org/software/make/) (3.81 or newer)\n- [Docker](https://www.docker.com/) (20.10.14 or newer)\n- [Docker Compose](https://docs.docker.com/compose/) (1.29.2 or newer)\n\n\n## Get Started\n\nRunning `make all` (or just `make`) will package `YCSB` as a (local) Docker\nimage, will spin up a 3-node Riak cluster and will run a `YCSB` test-run\nagainst the latter.\n\nYou can change the settings of your Riak cluster by adjusting the\n[user.conf](https://github.com/efcasado/ycsb-riak/blob/main/etc/riak/user.conf)\nfile included in this repository. For more information about how to configure\na Riak cluster, please, check Riak's\n[official documentation](https://docs.riak.com/riak/kv/latest/configuring/basic/index.html).\n\nYou may also be interested in adjusting the load-generation parameters of\n`YCSB`. You can do this by setting the `YCSB_{THREADS, TARGET, RECORD_COUNT, OPERATION_COUNT}`\nvariables, which default to `1`, `100`, `1000` and `1000`, respectively.\n\n```\nYCSB_THREADS=4 YCSB_TARGET=500 YCSB_RECORD_COUNT=10000 YCSB_OPERATION_COUNT=10000 make load\nYCSB_THREADS=4 YCSB_TARGET=500 YCSB_RECORD_COUNT=10000 YCSB_OPERATION_COUNT=10000 make run\n```\n\nThe above example configures `YCSB` to use `4` threads to try to achieve a\nthroughput of `500` requests per second while loading `10_000` entries in the\ndatabase and executing `10_000` operations against the loaded data.\n\nIt is also possible to configure how many CPUs will be allocated to `YCSB` and\neach of the `Riak` containers. You can do this by adjusting the `DOCKER_YCSB_CPUS`\nand `DOCKER_RIAK_CPUS` variables, which default to `1`.\n\n\n## Results\n\n```\nCLOUD_PROVIDER=aws USE_DOCKER=0 YCSB_THREADS=128 YCSB_TARGET=40000 YCSB_RECORD_COUNT=300000 YCSB_OPERATION_COUNT=300000 make load\n```\n\n| Cloud Provider | Instance Type | Cluster Size | Riak Version | Ring Size | Throughput |\n|:--------------:|:-------------:|:------------:|:------------:|:---------:|:----------:|\n| `aws`          | `c5.2xlarge`  | `7`          | `2.9.10`     | `16`      | `16,491`   |\n| `aws`          | `c5.2xlarge`  | `7`          | `2.9.10`     | `64`      | `21,466`   |\n| `aws`          | `c5.2xlarge`  | `7`          | `2.9.10`     | `128`     | `22,202`   |\n| `aws`          | `c5.2xlarge`  | `7`          | `3.0.9`      | `16`      | `15,535`   |\n| `aws`          | `c5.2xlarge`  | `7`          | `3.0.9`      | `64`      | `21,125`   |\n| `aws`          | `c5.2xlarge`  | `7`          | `3.0.9`      | `128`     | `22,316`   |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fefcasado%2Fycsb-riak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fefcasado%2Fycsb-riak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fefcasado%2Fycsb-riak/lists"}