{"action":"created","issue":{"url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/60","labels_url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/60/labels{/name}","comments_url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/60/comments","events_url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/60/events","html_url":"https://github.com/basho-labs/puppet-riak/issues/60","id":65567492,"number":60,"title":"OS Optimization settings","user":{"login":"danieldreier","id":5070204,"avatar_url":"https://avatars.githubusercontent.com/u/5070204?v=3","gravatar_id":"","url":"https://api.github.com/users/danieldreier","html_url":"https://github.com/danieldreier","followers_url":"https://api.github.com/users/danieldreier/followers","following_url":"https://api.github.com/users/danieldreier/following{/other_user}","gists_url":"https://api.github.com/users/danieldreier/gists{/gist_id}","starred_url":"https://api.github.com/users/danieldreier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danieldreier/subscriptions","organizations_url":"https://api.github.com/users/danieldreier/orgs","repos_url":"https://api.github.com/users/danieldreier/repos","events_url":"https://api.github.com/users/danieldreier/events{/privacy}","received_events_url":"https://api.github.com/users/danieldreier/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-03-31T23:23:47Z","updated_at":"2015-04-03T16:04:35Z","closed_at":null,"body":"I'd like to implement optional OS optimization settings, similar to what @Cornellio did in https://github.com/Cornellio/puppet-riak/blob/master/manifests/baseconfig.pp. I'm still hoping to support non-linux platforms, so a lot of this will need to be wrapped in a case statement.\r\n\r\nI haven't found a great single source of recommendations. As source material, what I'm aware of it:\r\n\r\n- http://docs.basho.com/riak/1.3.2/cookbooks/Linux-Performance-Tuning/#Linux-Tuning\r\n- http://docs.basho.com/riak/1.3.2/cookbooks/Performance-Tuning-AWS/\r\n- http://docs.basho.com/riak/1.3.2/cookbooks/Open-Files-Limit/\r\n- http://docs.basho.com/riak/latest/ops/tuning/linux/\r\n\r\nI'm not clear on how much the riak 1.3 recommendations still apply to riak 2. I'm assuming that IO patterns should be relatively similar, but I don't really have a lot of basis for that assumption.\r\n\r\nMy current POC looks like https://gist.github.com/danieldreier/a9a20e2dee7d2db955c2 (heavily based on @Cornellio's work) but that doesn't even really work yet, more of a scratch pad for ideas.\r\n\r\nAre there other must-read sources? I didn't see anything in the little riak book about it."},"comment":{"url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/comments/89337708","html_url":"https://github.com/basho-labs/puppet-riak/issues/60#issuecomment-89337708","issue_url":"https://api.github.com/repos/basho-labs/puppet-riak/issues/60","id":89337708,"user":{"login":"danieldreier","id":5070204,"avatar_url":"https://avatars.githubusercontent.com/u/5070204?v=3","gravatar_id":"","url":"https://api.github.com/users/danieldreier","html_url":"https://github.com/danieldreier","followers_url":"https://api.github.com/users/danieldreier/followers","following_url":"https://api.github.com/users/danieldreier/following{/other_user}","gists_url":"https://api.github.com/users/danieldreier/gists{/gist_id}","starred_url":"https://api.github.com/users/danieldreier/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danieldreier/subscriptions","organizations_url":"https://api.github.com/users/danieldreier/orgs","repos_url":"https://api.github.com/users/danieldreier/repos","events_url":"https://api.github.com/users/danieldreier/events{/privacy}","received_events_url":"https://api.github.com/users/danieldreier/received_events","type":"User","site_admin":false},"created_at":"2015-04-03T16:04:35Z","updated_at":"2015-04-03T16:04:35Z","body":"That's really useful feedback about the problem scenarios you've run into.\r\n\r\nring_size can be set at cluster creation time with (for example):\r\n\r\n```puppet\r\nclass { '::riak':\r\n  settings       => {\r\n    'ring_size' => '128',\r\n  },\r\n}\r\n```\r\n\r\nI believe that Basho's basic configuration docs are out of date, because [Riak 2 supports ring resizing under load](http://docs.basho.com/riak/2.0.2/ops/advanced/ring-resizing/) unless you're using Riak Search 2.0, strong consistency, or multi-datacenter replication.\r\n\r\nI'm pretty convinced that we can automate common cluster management operations; it *should* even be possible to specify in puppet DSL that a node is a replacement for another node and handle that in a safe, predictable way. It'll require implementing a bit of conditional logic, checks, etc."}}