{"id":17326520,"url":"https://github.com/cristiklein/gdinc-experiment","last_synced_at":"2026-05-09T00:37:20.212Z","repository":{"id":146091666,"uuid":"98979057","full_name":"cristiklein/gdinc-experiment","owner":"cristiklein","description":"Experimental artefacts to reproduce our results published at SoCC 2017","archived":false,"fork":false,"pushed_at":"2020-03-02T19:03:46.000Z","size":496,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T10:13:26.061Z","etag":null,"topics":["ansible","docker","economic","experimental-workflows","incentives","reproducible-experiments","reproducible-research"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cristiklein.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-01T08:37:04.000Z","updated_at":"2020-03-02T19:03:48.000Z","dependencies_parsed_at":"2023-05-13T22:30:17.316Z","dependency_job_id":null,"html_url":"https://github.com/cristiklein/gdinc-experiment","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/cristiklein%2Fgdinc-experiment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristiklein%2Fgdinc-experiment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristiklein%2Fgdinc-experiment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristiklein%2Fgdinc-experiment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cristiklein","download_url":"https://codeload.github.com/cristiklein/gdinc-experiment/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245785720,"owners_count":20671631,"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":["ansible","docker","economic","experimental-workflows","incentives","reproducible-experiments","reproducible-research"],"created_at":"2024-10-15T14:16:16.023Z","updated_at":"2026-05-09T00:37:15.169Z","avatar_url":"https://github.com/cristiklein.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Introduction\n============\nThis respository contains experimental artefacts for reproducting the results published in the following [SoCC 2017](https://acmsocc.github.io/2017/) paper:\n\n\u003e Incentivizing Self-Resource-Capping with Graceful Degradation\nMohammad Shahrad (Princeton University); Cristian Klein (Umeå University); Liang Zheng, Mung Chiang (Princeton University); Erik Elmroth (Umeå University); David Wentzlaff (Princeton University)\n\nThey are meant to be both human readable and machine executable. If you are familiar with [Docker](https://www.docker.com/), [Ansible](https://www.ansible.com/), [bash](https://www.gnu.org/software/bash/), [Python](https://www.python.org/), [Xen](https://www.xenproject.org/) and [httpmon](https://github.com/cloud-control/httpmon), then you should find no surprises. Nevertheless, you if bump into problems, please contact us.\n\nPrerequisites\n=============\nYou need to have at least two machines:\n\n* The control machine, on which you execute the scripts in the root of this repository.\n* The worker machine, on which the experiment will actually run (update `hosts` accordingly).\n\nBoth machines need to run Ubuntu 16.04 LTS. Please let us know if the scripts also work for other distributions.\n\nFor the control machine, make sure you have [Docker](https://get.docker.com/) and an [SSH agent](https://en.wikipedia.org/wiki/ssh-agent).\n\nFor the worker machine, make sure you have public-key root access from the control machine as follows:\n\n```bash\nssh machine-01\nsudo su - root\nssh-keygen                    # creates .ssh\ncat \u003e\u003e .ssh/authorized_keys   # paste the public key on your control machine\n```\n\nUsage\n=====\n\n* `./deploy.sh`: deploys the whole experiment. You need to run this script at least once and every time you update the experiment. **NOTICE: The first time you run this script, the RUBiS database is imported from a SQL dump. This may take as much as 30 minutes.**\n* `./run-experiment.sh`: runs the experiment and gathers results in a TAR file on the control machine.\n* `./experiment-to-csvs.py TARFILE`: converts TARFILE into a CSV that can be used for plotting.\n\nAdvanced Usage\n==============\nOnce you are familiar with the repository, you may save some time by only updating the part of the experiment that you actually changed. Make sure you understand what you are doing!\n\n* `./update-containers.sh`: only update containers on worker machine.\n* `./run-experiment.sh`: updates the resource manager and workloads before running experiments.\n\nIf you change the load traces in `roles/clients/files/workloads/cpu_usage_*.csv`, you must run `./update-workloads.sh`.\n\nContact\n=======\nWe did our best to make the ride as smooth as possible, then again, to err is human. For questions or feedback, please contact Cristian Klein \u003ccklein@cs.umu.se\u003e.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcristiklein%2Fgdinc-experiment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcristiklein%2Fgdinc-experiment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcristiklein%2Fgdinc-experiment/lists"}