{"action":"closed","number":29,"pull_request":{"url":"https://api.github.com/repos/clwdev/precip/pulls/29","id":89031446,"html_url":"https://github.com/clwdev/precip/pull/29","diff_url":"https://github.com/clwdev/precip/pull/29.diff","patch_url":"https://github.com/clwdev/precip/pull/29.patch","issue_url":"https://api.github.com/repos/clwdev/precip/issues/29","number":29,"state":"closed","locked":false,"title":"Switch MySQL from nfs+bindfs to an external persistent .vdi","user":{"login":"jeffgeorge","id":806112,"avatar_url":"https://avatars.githubusercontent.com/u/806112?v=3","gravatar_id":"","url":"https://api.github.com/users/jeffgeorge","html_url":"https://github.com/jeffgeorge","followers_url":"https://api.github.com/users/jeffgeorge/followers","following_url":"https://api.github.com/users/jeffgeorge/following{/other_user}","gists_url":"https://api.github.com/users/jeffgeorge/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffgeorge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffgeorge/subscriptions","organizations_url":"https://api.github.com/users/jeffgeorge/orgs","repos_url":"https://api.github.com/users/jeffgeorge/repos","events_url":"https://api.github.com/users/jeffgeorge/events{/privacy}","received_events_url":"https://api.github.com/users/jeffgeorge/received_events","type":"User","site_admin":false},"body":"We've known for awhile that MySQL over NFS is terrible, but it was the best perf we could get to accomplish the following two goals:\r\n\r\n- Ensure MySQL Table Files survive a destroy / reprovision\r\n- Ensure that MySQL Table Files don't max out the size of the base box\r\n\r\n. . . but NFS is really terrible for large file reads, and MySQL is *all about* large file reads.\r\n\r\nTurns out there's a vagrant plugin for that. So in this PR we switch from MySQL being mounted over nfs+bindfs to MySQL being stored in mysql.vdi, managed by vagrant-persistent-storage.\r\n\r\nTo Test:\r\n- Export any databases from your current install you may want to keep\r\n- Pull this branch\r\n- `vagrant destroy -f && vagrant up`\r\n- Watch it go\r\n- Import any new DBs you need\r\n\r\nHow it actually *works* is seamless, I'm just not building a migration path from directory to image because honestly it's a good idea to flush out and rebuild your MySQL storage from time to time, due to how MySQL allocates and manages its storage.\r\n\r\nCouple Notes:\r\n- Vagrant *should* install the plugin \"vagrant-persistent-storage\" on reload, if it doesn't and it freaks out run `vagrant plugin install vagrant-persistent-storage`. Also tell me so I can work on fixing that.\r\n- This does *not* delete your old `/mysql` directory. You'll need to clear that out whenever you think you're done with it. Try not to forget it, because it could be a *lot* of space.\r\n- With this new system we trade better perf for unlimited scaling storage, so the MySQL storage *is* capped at 32Gb. If it turns out we need *more* than 32Gb we can tweak it, but for now I'm considering needing 32 gigs of sql storage out of scope. (We *may* consider changing it to something gigantic like a 256Gb image, because it *does* auto-scale up, but *only* up.)","created_at":"2016-10-12T14:54:42Z","updated_at":"2016-10-12T18:37:31Z","closed_at":"2016-10-12T18:37:31Z","merged_at":"2016-10-12T18:37:31Z","merge_commit_sha":"fa6a3d6d95740a2e145c427ecb659ce0fecbb09e","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/clwdev/precip/pulls/29/commits","review_comments_url":"https://api.github.com/repos/clwdev/precip/pulls/29/comments","review_comment_url":"https://api.github.com/repos/clwdev/precip/pulls/comments{/number}","comments_url":"https://api.github.com/repos/clwdev/precip/issues/29/comments","statuses_url":"https://api.github.com/repos/clwdev/precip/statuses/9e3c5ae3fc1193ee0a261d31bc31ef1c343d8cf7","head":{"label":"clwdev:mysql-persistent-storage","ref":"mysql-persistent-storage","sha":"9e3c5ae3fc1193ee0a261d31bc31ef1c343d8cf7","user":{"login":"clwdev","id":11593116,"avatar_url":"https://avatars.githubusercontent.com/u/11593116?v=3","gravatar_id":"","url":"https://api.github.com/users/clwdev","html_url":"https://github.com/clwdev","followers_url":"https://api.github.com/users/clwdev/followers","following_url":"https://api.github.com/users/clwdev/following{/other_user}","gists_url":"https://api.github.com/users/clwdev/gists{/gist_id}","starred_url":"https://api.github.com/users/clwdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clwdev/subscriptions","organizations_url":"https://api.github.com/users/clwdev/orgs","repos_url":"https://api.github.com/users/clwdev/repos","events_url":"https://api.github.com/users/clwdev/events{/privacy}","received_events_url":"https://api.github.com/users/clwdev/received_events","type":"Organization","site_admin":false},"repo":{"id":34423897,"name":"precip","full_name":"clwdev/precip","owner":{"login":"clwdev","id":11593116,"avatar_url":"https://avatars.githubusercontent.com/u/11593116?v=3","gravatar_id":"","url":"https://api.github.com/users/clwdev","html_url":"https://github.com/clwdev","followers_url":"https://api.github.com/users/clwdev/followers","following_url":"https://api.github.com/users/clwdev/following{/other_user}","gists_url":"https://api.github.com/users/clwdev/gists{/gist_id}","starred_url":"https://api.github.com/users/clwdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clwdev/subscriptions","organizations_url":"https://api.github.com/users/clwdev/orgs","repos_url":"https://api.github.com/users/clwdev/repos","events_url":"https://api.github.com/users/clwdev/events{/privacy}","received_events_url":"https://api.github.com/users/clwdev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/clwdev/precip","description":"Local Development for Cloud-y Drupal","fork":false,"url":"https://api.github.com/repos/clwdev/precip","forks_url":"https://api.github.com/repos/clwdev/precip/forks","keys_url":"https://api.github.com/repos/clwdev/precip/keys{/key_id}","collaborators_url":"https://api.github.com/repos/clwdev/precip/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/clwdev/precip/teams","hooks_url":"https://api.github.com/repos/clwdev/precip/hooks","issue_events_url":"https://api.github.com/repos/clwdev/precip/issues/events{/number}","events_url":"https://api.github.com/repos/clwdev/precip/events","assignees_url":"https://api.github.com/repos/clwdev/precip/assignees{/user}","branches_url":"https://api.github.com/repos/clwdev/precip/branches{/branch}","tags_url":"https://api.github.com/repos/clwdev/precip/tags","blobs_url":"https://api.github.com/repos/clwdev/precip/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/clwdev/precip/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/clwdev/precip/git/refs{/sha}","trees_url":"https://api.github.com/repos/clwdev/precip/git/trees{/sha}","statuses_url":"https://api.github.com/repos/clwdev/precip/statuses/{sha}","languages_url":"https://api.github.com/repos/clwdev/precip/languages","stargazers_url":"https://api.github.com/repos/clwdev/precip/stargazers","contributors_url":"https://api.github.com/repos/clwdev/precip/contributors","subscribers_url":"https://api.github.com/repos/clwdev/precip/subscribers","subscription_url":"https://api.github.com/repos/clwdev/precip/subscription","commits_url":"https://api.github.com/repos/clwdev/precip/commits{/sha}","git_commits_url":"https://api.github.com/repos/clwdev/precip/git/commits{/sha}","comments_url":"https://api.github.com/repos/clwdev/precip/comments{/number}","issue_comment_url":"https://api.github.com/repos/clwdev/precip/issues/comments{/number}","contents_url":"https://api.github.com/repos/clwdev/precip/contents/{+path}","compare_url":"https://api.github.com/repos/clwdev/precip/compare/{base}...{head}","merges_url":"https://api.github.com/repos/clwdev/precip/merges","archive_url":"https://api.github.com/repos/clwdev/precip/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/clwdev/precip/downloads","issues_url":"https://api.github.com/repos/clwdev/precip/issues{/number}","pulls_url":"https://api.github.com/repos/clwdev/precip/pulls{/number}","milestones_url":"https://api.github.com/repos/clwdev/precip/milestones{/number}","notifications_url":"https://api.github.com/repos/clwdev/precip/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/clwdev/precip/labels{/name}","releases_url":"https://api.github.com/repos/clwdev/precip/releases{/id}","deployments_url":"https://api.github.com/repos/clwdev/precip/deployments","created_at":"2015-04-23T00:28:30Z","updated_at":"2016-10-06T20:02:56Z","pushed_at":"2016-10-12T18:37:31Z","git_url":"git://github.com/clwdev/precip.git","ssh_url":"git@github.com:clwdev/precip.git","clone_url":"https://github.com/clwdev/precip.git","svn_url":"https://github.com/clwdev/precip","homepage":"","size":125,"stargazers_count":4,"watchers_count":4,"language":"Puppet","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":7,"forks":2,"open_issues":7,"watchers":4,"default_branch":"master"}},"base":{"label":"clwdev:master","ref":"master","sha":"f4a4fdc9bf8ab30d14502ce41881790bc5b5a348","user":{"login":"clwdev","id":11593116,"avatar_url":"https://avatars.githubusercontent.com/u/11593116?v=3","gravatar_id":"","url":"https://api.github.com/users/clwdev","html_url":"https://github.com/clwdev","followers_url":"https://api.github.com/users/clwdev/followers","following_url":"https://api.github.com/users/clwdev/following{/other_user}","gists_url":"https://api.github.com/users/clwdev/gists{/gist_id}","starred_url":"https://api.github.com/users/clwdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clwdev/subscriptions","organizations_url":"https://api.github.com/users/clwdev/orgs","repos_url":"https://api.github.com/users/clwdev/repos","events_url":"https://api.github.com/users/clwdev/events{/privacy}","received_events_url":"https://api.github.com/users/clwdev/received_events","type":"Organization","site_admin":false},"repo":{"id":34423897,"name":"precip","full_name":"clwdev/precip","owner":{"login":"clwdev","id":11593116,"avatar_url":"https://avatars.githubusercontent.com/u/11593116?v=3","gravatar_id":"","url":"https://api.github.com/users/clwdev","html_url":"https://github.com/clwdev","followers_url":"https://api.github.com/users/clwdev/followers","following_url":"https://api.github.com/users/clwdev/following{/other_user}","gists_url":"https://api.github.com/users/clwdev/gists{/gist_id}","starred_url":"https://api.github.com/users/clwdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clwdev/subscriptions","organizations_url":"https://api.github.com/users/clwdev/orgs","repos_url":"https://api.github.com/users/clwdev/repos","events_url":"https://api.github.com/users/clwdev/events{/privacy}","received_events_url":"https://api.github.com/users/clwdev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/clwdev/precip","description":"Local Development for Cloud-y Drupal","fork":false,"url":"https://api.github.com/repos/clwdev/precip","forks_url":"https://api.github.com/repos/clwdev/precip/forks","keys_url":"https://api.github.com/repos/clwdev/precip/keys{/key_id}","collaborators_url":"https://api.github.com/repos/clwdev/precip/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/clwdev/precip/teams","hooks_url":"https://api.github.com/repos/clwdev/precip/hooks","issue_events_url":"https://api.github.com/repos/clwdev/precip/issues/events{/number}","events_url":"https://api.github.com/repos/clwdev/precip/events","assignees_url":"https://api.github.com/repos/clwdev/precip/assignees{/user}","branches_url":"https://api.github.com/repos/clwdev/precip/branches{/branch}","tags_url":"https://api.github.com/repos/clwdev/precip/tags","blobs_url":"https://api.github.com/repos/clwdev/precip/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/clwdev/precip/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/clwdev/precip/git/refs{/sha}","trees_url":"https://api.github.com/repos/clwdev/precip/git/trees{/sha}","statuses_url":"https://api.github.com/repos/clwdev/precip/statuses/{sha}","languages_url":"https://api.github.com/repos/clwdev/precip/languages","stargazers_url":"https://api.github.com/repos/clwdev/precip/stargazers","contributors_url":"https://api.github.com/repos/clwdev/precip/contributors","subscribers_url":"https://api.github.com/repos/clwdev/precip/subscribers","subscription_url":"https://api.github.com/repos/clwdev/precip/subscription","commits_url":"https://api.github.com/repos/clwdev/precip/commits{/sha}","git_commits_url":"https://api.github.com/repos/clwdev/precip/git/commits{/sha}","comments_url":"https://api.github.com/repos/clwdev/precip/comments{/number}","issue_comment_url":"https://api.github.com/repos/clwdev/precip/issues/comments{/number}","contents_url":"https://api.github.com/repos/clwdev/precip/contents/{+path}","compare_url":"https://api.github.com/repos/clwdev/precip/compare/{base}...{head}","merges_url":"https://api.github.com/repos/clwdev/precip/merges","archive_url":"https://api.github.com/repos/clwdev/precip/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/clwdev/precip/downloads","issues_url":"https://api.github.com/repos/clwdev/precip/issues{/number}","pulls_url":"https://api.github.com/repos/clwdev/precip/pulls{/number}","milestones_url":"https://api.github.com/repos/clwdev/precip/milestones{/number}","notifications_url":"https://api.github.com/repos/clwdev/precip/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/clwdev/precip/labels{/name}","releases_url":"https://api.github.com/repos/clwdev/precip/releases{/id}","deployments_url":"https://api.github.com/repos/clwdev/precip/deployments","created_at":"2015-04-23T00:28:30Z","updated_at":"2016-10-06T20:02:56Z","pushed_at":"2016-10-12T18:37:31Z","git_url":"git://github.com/clwdev/precip.git","ssh_url":"git@github.com:clwdev/precip.git","clone_url":"https://github.com/clwdev/precip.git","svn_url":"https://github.com/clwdev/precip","homepage":"","size":125,"stargazers_count":4,"watchers_count":4,"language":"Puppet","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":7,"forks":2,"open_issues":7,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/clwdev/precip/pulls/29"},"html":{"href":"https://github.com/clwdev/precip/pull/29"},"issue":{"href":"https://api.github.com/repos/clwdev/precip/issues/29"},"comments":{"href":"https://api.github.com/repos/clwdev/precip/issues/29/comments"},"review_comments":{"href":"https://api.github.com/repos/clwdev/precip/pulls/29/comments"},"review_comment":{"href":"https://api.github.com/repos/clwdev/precip/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/clwdev/precip/pulls/29/commits"},"statuses":{"href":"https://api.github.com/repos/clwdev/precip/statuses/9e3c5ae3fc1193ee0a261d31bc31ef1c343d8cf7"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"jeffgeorge","id":806112,"avatar_url":"https://avatars.githubusercontent.com/u/806112?v=3","gravatar_id":"","url":"https://api.github.com/users/jeffgeorge","html_url":"https://github.com/jeffgeorge","followers_url":"https://api.github.com/users/jeffgeorge/followers","following_url":"https://api.github.com/users/jeffgeorge/following{/other_user}","gists_url":"https://api.github.com/users/jeffgeorge/gists{/gist_id}","starred_url":"https://api.github.com/users/jeffgeorge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeffgeorge/subscriptions","organizations_url":"https://api.github.com/users/jeffgeorge/orgs","repos_url":"https://api.github.com/users/jeffgeorge/repos","events_url":"https://api.github.com/users/jeffgeorge/events{/privacy}","received_events_url":"https://api.github.com/users/jeffgeorge/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":4,"additions":25,"deletions":10,"changed_files":4}}
{"actor":{"display_login":"jeffgeorge"}}