{"id":13490041,"url":"https://github.com/brianfrankcooper/YCSB","last_synced_at":"2025-03-28T05:31:44.654Z","repository":{"id":37580213,"uuid":"618492","full_name":"brianfrankcooper/YCSB","owner":"brianfrankcooper","description":"Yahoo! Cloud Serving Benchmark","archived":false,"fork":false,"pushed_at":"2024-12-12T01:02:24.000Z","size":32677,"stargazers_count":5016,"open_issues_count":365,"forks_count":2270,"subscribers_count":214,"default_branch":"master","last_synced_at":"2025-03-25T06:08:16.250Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","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/brianfrankcooper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-04-19T20:52:11.000Z","updated_at":"2025-03-24T13:34:01.000Z","dependencies_parsed_at":"2024-01-06T17:46:14.820Z","dependency_job_id":"501fe632-1ce5-4c0d-b6ec-439b081ed67d","html_url":"https://github.com/brianfrankcooper/YCSB","commit_stats":{"total_commits":968,"total_committers":204,"mean_commits":4.745098039215686,"dds":0.9390495867768595,"last_synced_commit":"ce3eb9ce51c84ee9e236998cdd2cefaeb96798a8"},"previous_names":[],"tags_count":55,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianfrankcooper%2FYCSB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianfrankcooper%2FYCSB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianfrankcooper%2FYCSB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brianfrankcooper%2FYCSB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brianfrankcooper","download_url":"https://codeload.github.com/brianfrankcooper/YCSB/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245978200,"owners_count":20703675,"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-31T19:00:39.745Z","updated_at":"2025-03-28T05:31:44.217Z","avatar_url":"https://github.com/brianfrankcooper.png","language":"Java","funding_links":[],"categories":["Java","测试","VII. Other","tools","Performance Testing","Benchmark"],"sub_categories":["2. Benchmark results","Database Performance Testing \u0026 Benchmarking"],"readme":"\u003c!--\nCopyright (c) 2010 Yahoo! Inc., 2012 - 2016 YCSB contributors.\nAll rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you\nmay not use this file except in compliance with the License. You\nmay obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\nimplied. See the License for the specific language governing\npermissions and limitations under the License. See accompanying\nLICENSE file.\n--\u003e\n\nYCSB\n====================================\n[![Build Status](https://travis-ci.org/brianfrankcooper/YCSB.png?branch=master)](https://travis-ci.org/brianfrankcooper/YCSB)\n\n\n\nLinks\n-----\n* To get here, use https://ycsb.site\n* [Our project docs](https://github.com/brianfrankcooper/YCSB/wiki)\n* [The original announcement from Yahoo!](https://labs.yahoo.com/news/yahoo-cloud-serving-benchmark/)\n\nGetting Started\n---------------\n\n1. Download the [latest release of YCSB](https://github.com/brianfrankcooper/YCSB/releases/latest):\n\n    ```sh\n    curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.17.0/ycsb-0.17.0.tar.gz\n    tar xfvz ycsb-0.17.0.tar.gz\n    cd ycsb-0.17.0\n    ```\n    \n2. Set up a database to benchmark. There is a README file under each binding \n   directory.\n\n3. Run YCSB command. \n\n    On Linux:\n    ```sh\n    bin/ycsb.sh load basic -P workloads/workloada\n    bin/ycsb.sh run basic -P workloads/workloada\n    ```\n\n    On Windows:\n    ```bat\n    bin/ycsb.bat load basic -P workloads\\workloada\n    bin/ycsb.bat run basic -P workloads\\workloada\n    ```\n\n  Running the `ycsb` command without any argument will print the usage. \n   \n  See https://github.com/brianfrankcooper/YCSB/wiki/Running-a-Workload\n  for a detailed documentation on how to run a workload.\n\n  See https://github.com/brianfrankcooper/YCSB/wiki/Core-Properties for \n  the list of available workload properties.\n\n\nBuilding from source\n--------------------\n\nYCSB requires the use of Maven 3; if you use Maven 2, you may see [errors\nsuch as these](https://github.com/brianfrankcooper/YCSB/issues/406).\n\nTo build the full distribution, with all database bindings:\n\n    mvn clean package\n\nTo build a single database binding:\n\n    mvn -pl site.ycsb:mongodb-binding -am clean package\n\nRunning multiple instances and latency percentiles\n--------------------------------------------------\n\nIn general, you shall be interested in 99% percentile (P99) of the latency\ndistribution, and the rest of the tail - 99.9%, 99.99%, 99.999%. The difference\nbetween the amount of requests that will be observed by a user that fall\ninto 95% (P95) percentile and 99% percentile may be sufficiently large.\n\nFor example, see \"How Many Nines?\" at https://bravenewgeek.com/everything-you-know-about-latency-is-wrong/.\nThe formula to calculate probability of how many clients will observe\na specific percentile is: \n\n    Probability_to_observe = 1 - Percentile ^ Requests\n\nThat is why almost 30% of the users will observe latency worse than P99\njust by loading the default _google.com_ web page:\n\n    1 - 0.99 ^ 30 = 0.27\n\nRemember, that\n\n- _latencies_ percentiles can't be averaged. Don't fall into this\n  [trap](http://latencytipoftheday.blogspot.com/2014/06/latencytipoftheday-you-cant-average.html).\n  Neither latency averages, nor P99 averages do not make any sense.\n\nIf you run multiple loaders dump result histograms with:\n\n    -p hdrhistogram.fileoutput=true\n    -p hdrhistogram.output.path=file.hdr\n\nmerge them manually and extract required percentiles out of the\njoined result.\n\nRemember that running multiple workloads may distort original\nworkloads distributions they were intended to produce.\n\nMerging HDR histogram percentiles\n---------------------------------\n\nHdrHistogram can serialize its data to HDR files. Use CLI tool\nto do different operations with your saved histograms\nhttps://github.com/nitsanw/HdrLogProcessing.\n\nYou shall be interested in 3 functions:\n\n- Union - to combine result histograms\n- Summarize - to extract latency percentiles\n- An ability to print the result into the CSV file and extract tags\n\nTo extract HDR content into CSV file format use from\nhttps://github.com/HdrHistogram/HdrHistogram/:\n\n    java -cp HdrHistogram-2.1.9.jar org.HdrHistogram.HistogramLogProcessor -i file.hdr -o output_${tag}.csv -csv -tag ${tag}\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianfrankcooper%2FYCSB","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrianfrankcooper%2FYCSB","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrianfrankcooper%2FYCSB/lists"}