{"action":"created","issue":{"url":"https://api.github.com/repos/baidu/tera/issues/797","repository_url":"https://api.github.com/repos/baidu/tera","labels_url":"https://api.github.com/repos/baidu/tera/issues/797/labels{/name}","comments_url":"https://api.github.com/repos/baidu/tera/issues/797/comments","events_url":"https://api.github.com/repos/baidu/tera/issues/797/events","html_url":"https://github.com/baidu/tera/pull/797","id":143787364,"number":797,"title":"issue=#728 bugfix's bugfix on update","user":{"login":"taocp","id":5194281,"avatar_url":"https://avatars.githubusercontent.com/u/5194281?v=3","gravatar_id":"","url":"https://api.github.com/users/taocp","html_url":"https://github.com/taocp","followers_url":"https://api.github.com/users/taocp/followers","following_url":"https://api.github.com/users/taocp/following{/other_user}","gists_url":"https://api.github.com/users/taocp/gists{/gist_id}","starred_url":"https://api.github.com/users/taocp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/taocp/subscriptions","organizations_url":"https://api.github.com/users/taocp/orgs","repos_url":"https://api.github.com/users/taocp/repos","events_url":"https://api.github.com/users/taocp/events{/privacy}","received_events_url":"https://api.github.com/users/taocp/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"00k","id":9716419,"avatar_url":"https://avatars.githubusercontent.com/u/9716419?v=3","gravatar_id":"","url":"https://api.github.com/users/00k","html_url":"https://github.com/00k","followers_url":"https://api.github.com/users/00k/followers","following_url":"https://api.github.com/users/00k/following{/other_user}","gists_url":"https://api.github.com/users/00k/gists{/gist_id}","starred_url":"https://api.github.com/users/00k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/00k/subscriptions","organizations_url":"https://api.github.com/users/00k/orgs","repos_url":"https://api.github.com/users/00k/repos","events_url":"https://api.github.com/users/00k/events{/privacy}","received_events_url":"https://api.github.com/users/00k/received_events","type":"User","site_admin":false},"milestone":null,"comments":6,"created_at":"2016-03-27T08:11:05Z","updated_at":"2016-03-29T07:03:50Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/baidu/tera/pulls/797","html_url":"https://github.com/baidu/tera/pull/797","diff_url":"https://github.com/baidu/tera/pull/797.diff","patch_url":"https://github.com/baidu/tera/pull/797.patch"},"body":"#728 \r\n\r\n更新schema\r\n最早的实现：先改master内存，再写meta表，写meta失败无回滚\r\n\r\n之后某个bugfix版本（#729）：先写meta表，成功再改内存（有个问题：写meta时拿的仍然是旧数据，因为旧数据在内存中还没被修改），所以新schema没有被持久化下去。\r\n\r\n这个版本：先改内存，暂时不向client提交处理结果；再写meta表，如果失败则回滚内存。"},"comment":{"url":"https://api.github.com/repos/baidu/tera/issues/comments/202747631","html_url":"https://github.com/baidu/tera/pull/797#issuecomment-202747631","issue_url":"https://api.github.com/repos/baidu/tera/issues/797","id":202747631,"user":{"login":"00k","id":9716419,"avatar_url":"https://avatars.githubusercontent.com/u/9716419?v=3","gravatar_id":"","url":"https://api.github.com/users/00k","html_url":"https://github.com/00k","followers_url":"https://api.github.com/users/00k/followers","following_url":"https://api.github.com/users/00k/following{/other_user}","gists_url":"https://api.github.com/users/00k/gists{/gist_id}","starred_url":"https://api.github.com/users/00k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/00k/subscriptions","organizations_url":"https://api.github.com/users/00k/orgs","repos_url":"https://api.github.com/users/00k/repos","events_url":"https://api.github.com/users/00k/events{/privacy}","received_events_url":"https://api.github.com/users/00k/received_events","type":"User","site_admin":false},"created_at":"2016-03-29T07:03:50Z","updated_at":"2016-03-29T07:03:50Z","body":"代码没有问题了，如果能抽象并封装成准备阶段、持久化阶段、回滚/提交阶段这几步会使整个流程更清晰，也能为其它的master操作提供范例。"}}