{"action":"closed","number":18,"pull_request":{"url":"https://api.github.com/repos/portworx/kvdb/pulls/18","id":166293683,"html_url":"https://github.com/portworx/kvdb/pull/18","diff_url":"https://github.com/portworx/kvdb/pull/18.diff","patch_url":"https://github.com/portworx/kvdb/pull/18.patch","issue_url":"https://api.github.com/repos/portworx/kvdb/issues/18","number":18,"state":"closed","locked":false,"title":"Handle server timeout during update","user":{"login":"sangleganesh","id":13683186,"avatar_url":"https://avatars3.githubusercontent.com/u/13683186?v=4","gravatar_id":"","url":"https://api.github.com/users/sangleganesh","html_url":"https://github.com/sangleganesh","followers_url":"https://api.github.com/users/sangleganesh/followers","following_url":"https://api.github.com/users/sangleganesh/following{/other_user}","gists_url":"https://api.github.com/users/sangleganesh/gists{/gist_id}","starred_url":"https://api.github.com/users/sangleganesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sangleganesh/subscriptions","organizations_url":"https://api.github.com/users/sangleganesh/orgs","repos_url":"https://api.github.com/users/sangleganesh/repos","events_url":"https://api.github.com/users/sangleganesh/events{/privacy}","received_events_url":"https://api.github.com/users/sangleganesh/received_events","type":"User","site_admin":false},"body":"- remove code duplication for modified index/value compare and set\r\n- if server timeout is returned during update get value and check if\r\nupdate went through. If modified index is different than ours and get value\r\nis same as ours, we consider update was successful.\r\n\r\ncase compare and set if value matches:\r\nthis diff works fine if comparison is for value match\r\n\r\ncase compare and set if index matches:\r\nif two or more updates with the same update value receive server timeout, its unclear how many of those updates went through. since the final update value is same, all of them will conclude that it was their update that went through. since the ultimate value of key is the same - i think this might be ok, after all no update is lost (except index may not be updated), still opening it for debate. \r\n\r\n\r\n\r\n\r\n","created_at":"2018-01-31T15:36:09Z","updated_at":"2018-02-02T05:26:38Z","closed_at":"2018-02-02T05:26:38Z","merged_at":"2018-02-02T05:26:38Z","merge_commit_sha":"92f50bd8ff05d595a1f73f938bd7970882573921","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"milestone":null,"commits_url":"https://api.github.com/repos/portworx/kvdb/pulls/18/commits","review_comments_url":"https://api.github.com/repos/portworx/kvdb/pulls/18/comments","review_comment_url":"https://api.github.com/repos/portworx/kvdb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/portworx/kvdb/issues/18/comments","statuses_url":"https://api.github.com/repos/portworx/kvdb/statuses/e5c78fadd484c5c14264fe1c52c6a86852019bc9","head":{"label":"portworx:srvr_timout","ref":"srvr_timout","sha":"e5c78fadd484c5c14264fe1c52c6a86852019bc9","user":{"login":"portworx","id":12014092,"avatar_url":"https://avatars3.githubusercontent.com/u/12014092?v=4","gravatar_id":"","url":"https://api.github.com/users/portworx","html_url":"https://github.com/portworx","followers_url":"https://api.github.com/users/portworx/followers","following_url":"https://api.github.com/users/portworx/following{/other_user}","gists_url":"https://api.github.com/users/portworx/gists{/gist_id}","starred_url":"https://api.github.com/users/portworx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/portworx/subscriptions","organizations_url":"https://api.github.com/users/portworx/orgs","repos_url":"https://api.github.com/users/portworx/repos","events_url":"https://api.github.com/users/portworx/events{/privacy}","received_events_url":"https://api.github.com/users/portworx/received_events","type":"Organization","site_admin":false},"repo":{"id":39316166,"name":"kvdb","full_name":"portworx/kvdb","owner":{"login":"portworx","id":12014092,"avatar_url":"https://avatars3.githubusercontent.com/u/12014092?v=4","gravatar_id":"","url":"https://api.github.com/users/portworx","html_url":"https://github.com/portworx","followers_url":"https://api.github.com/users/portworx/followers","following_url":"https://api.github.com/users/portworx/following{/other_user}","gists_url":"https://api.github.com/users/portworx/gists{/gist_id}","starred_url":"https://api.github.com/users/portworx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/portworx/subscriptions","organizations_url":"https://api.github.com/users/portworx/orgs","repos_url":"https://api.github.com/users/portworx/repos","events_url":"https://api.github.com/users/portworx/events{/privacy}","received_events_url":"https://api.github.com/users/portworx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/portworx/kvdb","description":"Generic Key-Value interface","fork":false,"url":"https://api.github.com/repos/portworx/kvdb","forks_url":"https://api.github.com/repos/portworx/kvdb/forks","keys_url":"https://api.github.com/repos/portworx/kvdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/portworx/kvdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/portworx/kvdb/teams","hooks_url":"https://api.github.com/repos/portworx/kvdb/hooks","issue_events_url":"https://api.github.com/repos/portworx/kvdb/issues/events{/number}","events_url":"https://api.github.com/repos/portworx/kvdb/events","assignees_url":"https://api.github.com/repos/portworx/kvdb/assignees{/user}","branches_url":"https://api.github.com/repos/portworx/kvdb/branches{/branch}","tags_url":"https://api.github.com/repos/portworx/kvdb/tags","blobs_url":"https://api.github.com/repos/portworx/kvdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/portworx/kvdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/portworx/kvdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/portworx/kvdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/portworx/kvdb/statuses/{sha}","languages_url":"https://api.github.com/repos/portworx/kvdb/languages","stargazers_url":"https://api.github.com/repos/portworx/kvdb/stargazers","contributors_url":"https://api.github.com/repos/portworx/kvdb/contributors","subscribers_url":"https://api.github.com/repos/portworx/kvdb/subscribers","subscription_url":"https://api.github.com/repos/portworx/kvdb/subscription","commits_url":"https://api.github.com/repos/portworx/kvdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/portworx/kvdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/portworx/kvdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/portworx/kvdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/portworx/kvdb/contents/{+path}","compare_url":"https://api.github.com/repos/portworx/kvdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/portworx/kvdb/merges","archive_url":"https://api.github.com/repos/portworx/kvdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/portworx/kvdb/downloads","issues_url":"https://api.github.com/repos/portworx/kvdb/issues{/number}","pulls_url":"https://api.github.com/repos/portworx/kvdb/pulls{/number}","milestones_url":"https://api.github.com/repos/portworx/kvdb/milestones{/number}","notifications_url":"https://api.github.com/repos/portworx/kvdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/portworx/kvdb/labels{/name}","releases_url":"https://api.github.com/repos/portworx/kvdb/releases{/id}","deployments_url":"https://api.github.com/repos/portworx/kvdb/deployments","created_at":"2015-07-18T23:38:23Z","updated_at":"2017-12-27T12:05:08Z","pushed_at":"2018-02-02T05:26:38Z","git_url":"git://github.com/portworx/kvdb.git","ssh_url":"git@github.com:portworx/kvdb.git","clone_url":"https://github.com/portworx/kvdb.git","svn_url":"https://github.com/portworx/kvdb","homepage":"","size":298,"stargazers_count":6,"watchers_count":6,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":4,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":2,"open_issues":4,"watchers":6,"default_branch":"master"}},"base":{"label":"portworx:master","ref":"master","sha":"fea1b7a9524095046d784f83eb858336ffe3f042","user":{"login":"portworx","id":12014092,"avatar_url":"https://avatars3.githubusercontent.com/u/12014092?v=4","gravatar_id":"","url":"https://api.github.com/users/portworx","html_url":"https://github.com/portworx","followers_url":"https://api.github.com/users/portworx/followers","following_url":"https://api.github.com/users/portworx/following{/other_user}","gists_url":"https://api.github.com/users/portworx/gists{/gist_id}","starred_url":"https://api.github.com/users/portworx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/portworx/subscriptions","organizations_url":"https://api.github.com/users/portworx/orgs","repos_url":"https://api.github.com/users/portworx/repos","events_url":"https://api.github.com/users/portworx/events{/privacy}","received_events_url":"https://api.github.com/users/portworx/received_events","type":"Organization","site_admin":false},"repo":{"id":39316166,"name":"kvdb","full_name":"portworx/kvdb","owner":{"login":"portworx","id":12014092,"avatar_url":"https://avatars3.githubusercontent.com/u/12014092?v=4","gravatar_id":"","url":"https://api.github.com/users/portworx","html_url":"https://github.com/portworx","followers_url":"https://api.github.com/users/portworx/followers","following_url":"https://api.github.com/users/portworx/following{/other_user}","gists_url":"https://api.github.com/users/portworx/gists{/gist_id}","starred_url":"https://api.github.com/users/portworx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/portworx/subscriptions","organizations_url":"https://api.github.com/users/portworx/orgs","repos_url":"https://api.github.com/users/portworx/repos","events_url":"https://api.github.com/users/portworx/events{/privacy}","received_events_url":"https://api.github.com/users/portworx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/portworx/kvdb","description":"Generic Key-Value interface","fork":false,"url":"https://api.github.com/repos/portworx/kvdb","forks_url":"https://api.github.com/repos/portworx/kvdb/forks","keys_url":"https://api.github.com/repos/portworx/kvdb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/portworx/kvdb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/portworx/kvdb/teams","hooks_url":"https://api.github.com/repos/portworx/kvdb/hooks","issue_events_url":"https://api.github.com/repos/portworx/kvdb/issues/events{/number}","events_url":"https://api.github.com/repos/portworx/kvdb/events","assignees_url":"https://api.github.com/repos/portworx/kvdb/assignees{/user}","branches_url":"https://api.github.com/repos/portworx/kvdb/branches{/branch}","tags_url":"https://api.github.com/repos/portworx/kvdb/tags","blobs_url":"https://api.github.com/repos/portworx/kvdb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/portworx/kvdb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/portworx/kvdb/git/refs{/sha}","trees_url":"https://api.github.com/repos/portworx/kvdb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/portworx/kvdb/statuses/{sha}","languages_url":"https://api.github.com/repos/portworx/kvdb/languages","stargazers_url":"https://api.github.com/repos/portworx/kvdb/stargazers","contributors_url":"https://api.github.com/repos/portworx/kvdb/contributors","subscribers_url":"https://api.github.com/repos/portworx/kvdb/subscribers","subscription_url":"https://api.github.com/repos/portworx/kvdb/subscription","commits_url":"https://api.github.com/repos/portworx/kvdb/commits{/sha}","git_commits_url":"https://api.github.com/repos/portworx/kvdb/git/commits{/sha}","comments_url":"https://api.github.com/repos/portworx/kvdb/comments{/number}","issue_comment_url":"https://api.github.com/repos/portworx/kvdb/issues/comments{/number}","contents_url":"https://api.github.com/repos/portworx/kvdb/contents/{+path}","compare_url":"https://api.github.com/repos/portworx/kvdb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/portworx/kvdb/merges","archive_url":"https://api.github.com/repos/portworx/kvdb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/portworx/kvdb/downloads","issues_url":"https://api.github.com/repos/portworx/kvdb/issues{/number}","pulls_url":"https://api.github.com/repos/portworx/kvdb/pulls{/number}","milestones_url":"https://api.github.com/repos/portworx/kvdb/milestones{/number}","notifications_url":"https://api.github.com/repos/portworx/kvdb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/portworx/kvdb/labels{/name}","releases_url":"https://api.github.com/repos/portworx/kvdb/releases{/id}","deployments_url":"https://api.github.com/repos/portworx/kvdb/deployments","created_at":"2015-07-18T23:38:23Z","updated_at":"2017-12-27T12:05:08Z","pushed_at":"2018-02-02T05:26:38Z","git_url":"git://github.com/portworx/kvdb.git","ssh_url":"git@github.com:portworx/kvdb.git","clone_url":"https://github.com/portworx/kvdb.git","svn_url":"https://github.com/portworx/kvdb","homepage":"","size":298,"stargazers_count":6,"watchers_count":6,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":4,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":2,"open_issues":4,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/portworx/kvdb/pulls/18"},"html":{"href":"https://github.com/portworx/kvdb/pull/18"},"issue":{"href":"https://api.github.com/repos/portworx/kvdb/issues/18"},"comments":{"href":"https://api.github.com/repos/portworx/kvdb/issues/18/comments"},"review_comments":{"href":"https://api.github.com/repos/portworx/kvdb/pulls/18/comments"},"review_comment":{"href":"https://api.github.com/repos/portworx/kvdb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/portworx/kvdb/pulls/18/commits"},"statuses":{"href":"https://api.github.com/repos/portworx/kvdb/statuses/e5c78fadd484c5c14264fe1c52c6a86852019bc9"}},"author_association":"CONTRIBUTOR","merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"sangleganesh","id":13683186,"avatar_url":"https://avatars3.githubusercontent.com/u/13683186?v=4","gravatar_id":"","url":"https://api.github.com/users/sangleganesh","html_url":"https://github.com/sangleganesh","followers_url":"https://api.github.com/users/sangleganesh/followers","following_url":"https://api.github.com/users/sangleganesh/following{/other_user}","gists_url":"https://api.github.com/users/sangleganesh/gists{/gist_id}","starred_url":"https://api.github.com/users/sangleganesh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sangleganesh/subscriptions","organizations_url":"https://api.github.com/users/sangleganesh/orgs","repos_url":"https://api.github.com/users/sangleganesh/repos","events_url":"https://api.github.com/users/sangleganesh/events{/privacy}","received_events_url":"https://api.github.com/users/sangleganesh/received_events","type":"User","site_admin":false},"comments":0,"review_comments":1,"maintainer_can_modify":false,"commits":2,"additions":35,"deletions":23,"changed_files":1}}
{"actor":{"display_login":"sangleganesh"}}