{"action":"created","comment":{"url":"https://api.github.com/repos/basho/riak_kv/pulls/comments/27424331","id":27424331,"diff_hunk":"@@ -7,6 +7,18 @@\n           start_time :: non_neg_integer(),\n           options :: list()}).\n \n+-record(riak_kv_w1c_put_req_v1, {\n+    bkey :: {binary(),binary()},\n+    encoded_val :: binary(),","path":"include/riak_kv_vnode.hrl","position":6,"original_position":6,"commit_id":"ed98f079a0c65995284f14518c80bdd235372e07","original_commit_id":"ed98f079a0c65995284f14518c80bdd235372e07","user":{"login":"jonmeredith","id":64318,"avatar_url":"https://avatars.githubusercontent.com/u/64318?v=3","gravatar_id":"","url":"https://api.github.com/users/jonmeredith","html_url":"https://github.com/jonmeredith","followers_url":"https://api.github.com/users/jonmeredith/followers","following_url":"https://api.github.com/users/jonmeredith/following{/other_user}","gists_url":"https://api.github.com/users/jonmeredith/gists{/gist_id}","starred_url":"https://api.github.com/users/jonmeredith/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonmeredith/subscriptions","organizations_url":"https://api.github.com/users/jonmeredith/orgs","repos_url":"https://api.github.com/users/jonmeredith/repos","events_url":"https://api.github.com/users/jonmeredith/events{/privacy}","received_events_url":"https://api.github.com/users/jonmeredith/received_events","type":"User","site_admin":false},"body":"Would recommend `encoded_obj` instead to make sure people don't think it's the value that should be wrapped in a riak object at the vnode.","created_at":"2015-03-30T19:41:10Z","updated_at":"2015-03-30T19:41:10Z","html_url":"https://github.com/basho/riak_kv/pull/1100#discussion_r27424331","pull_request_url":"https://api.github.com/repos/basho/riak_kv/pulls/1100","_links":{"self":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/comments/27424331"},"html":{"href":"https://github.com/basho/riak_kv/pull/1100#discussion_r27424331"},"pull_request":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/1100"}}},"pull_request":{"url":"https://api.github.com/repos/basho/riak_kv/pulls/1100","id":32235932,"html_url":"https://github.com/basho/riak_kv/pull/1100","diff_url":"https://github.com/basho/riak_kv/pull/1100.diff","patch_url":"https://github.com/basho/riak_kv/pull/1100.patch","issue_url":"https://api.github.com/repos/basho/riak_kv/issues/1100","number":1100,"state":"open","locked":false,"title":"Feature/fd/riak 1534","user":{"login":"fadushin","id":351578,"avatar_url":"https://avatars.githubusercontent.com/u/351578?v=3","gravatar_id":"","url":"https://api.github.com/users/fadushin","html_url":"https://github.com/fadushin","followers_url":"https://api.github.com/users/fadushin/followers","following_url":"https://api.github.com/users/fadushin/following{/other_user}","gists_url":"https://api.github.com/users/fadushin/gists{/gist_id}","starred_url":"https://api.github.com/users/fadushin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fadushin/subscriptions","organizations_url":"https://api.github.com/users/fadushin/orgs","repos_url":"https://api.github.com/users/fadushin/repos","events_url":"https://api.github.com/users/fadushin/events{/privacy}","received_events_url":"https://api.github.com/users/fadushin/received_events","type":"User","site_admin":false},"body":"This branch contains a special code path for \"write_once\" buckets.  Bucket types that have this property set are intended to be such that entries for a given key are written exactly once, in other words, no updates are expected.  Instead of the ordinary coordinated put, requiring a read before write, this code path casts write operations directly to vnodes, and aggregates replies from primaries or replicas in the pref list.  Nval, w, and pw parameters are supported.  If dw is specified and greater than w, then the w value takes dw (i.e., w = max{w, dw}).\r\n\r\nIn place of the put_fsm used in the normal path, we introduce a collection of new intermediate worker processes (implementing gen_server behavior).  The role of these intermediate processes is to dispatch put requests to vnode(proxie)s in the preflist, and to aggregate replies.  Unlike the put_fsm, the write-once workers are long-lived for the lifecyle of the raik_kv application.  They are therefore stateful, and store request state in a state-local dictionary.\r\n\r\nThe put path employs the vnode command framework support for handoff and overload.  There is, however, no overload protection on the write once workers themselves, so it is possibly to over-drive the workers if vnodes are unresponsive.\r\n\r\nThe get path remains largely unmodied, except that merges of siblings in write_once buckets will select the least object (in lexical order) of object SHA-1 hashes of siblings.  This behavior exhibits a deterministically \"random\" sibling selection from the point of view of the application client.\r\n\r\nThe write_once property may only be specified at bucket type creation time, and once set, cannot be modified.  This bucket property is incompatible with data types and the (strong) consistent proeprty, so attempts to set this property on buckets with data types or the conistnet property set to true will fail.","created_at":"2015-03-30T15:13:39Z","updated_at":"2015-03-30T19:41:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2f3ec8afb7e53b56e119339caf200a5a23b0d94b","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/basho/riak_kv/pulls/1100/commits","review_comments_url":"https://api.github.com/repos/basho/riak_kv/pulls/1100/comments","review_comment_url":"https://api.github.com/repos/basho/riak_kv/pulls/comments{/number}","comments_url":"https://api.github.com/repos/basho/riak_kv/issues/1100/comments","statuses_url":"https://api.github.com/repos/basho/riak_kv/statuses/ed98f079a0c65995284f14518c80bdd235372e07","head":{"label":"basho:feature/fd/RIAK-1534","ref":"feature/fd/RIAK-1534","sha":"ed98f079a0c65995284f14518c80bdd235372e07","user":{"login":"basho","id":176293,"avatar_url":"https://avatars.githubusercontent.com/u/176293?v=3","gravatar_id":"","url":"https://api.github.com/users/basho","html_url":"https://github.com/basho","followers_url":"https://api.github.com/users/basho/followers","following_url":"https://api.github.com/users/basho/following{/other_user}","gists_url":"https://api.github.com/users/basho/gists{/gist_id}","starred_url":"https://api.github.com/users/basho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basho/subscriptions","organizations_url":"https://api.github.com/users/basho/orgs","repos_url":"https://api.github.com/users/basho/repos","events_url":"https://api.github.com/users/basho/events{/privacy}","received_events_url":"https://api.github.com/users/basho/received_events","type":"Organization","site_admin":false},"repo":{"id":791522,"name":"riak_kv","full_name":"basho/riak_kv","owner":{"login":"basho","id":176293,"avatar_url":"https://avatars.githubusercontent.com/u/176293?v=3","gravatar_id":"","url":"https://api.github.com/users/basho","html_url":"https://github.com/basho","followers_url":"https://api.github.com/users/basho/followers","following_url":"https://api.github.com/users/basho/following{/other_user}","gists_url":"https://api.github.com/users/basho/gists{/gist_id}","starred_url":"https://api.github.com/users/basho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basho/subscriptions","organizations_url":"https://api.github.com/users/basho/orgs","repos_url":"https://api.github.com/users/basho/repos","events_url":"https://api.github.com/users/basho/events{/privacy}","received_events_url":"https://api.github.com/users/basho/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/basho/riak_kv","description":"Riak Key/Value Store","fork":false,"url":"https://api.github.com/repos/basho/riak_kv","forks_url":"https://api.github.com/repos/basho/riak_kv/forks","keys_url":"https://api.github.com/repos/basho/riak_kv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/basho/riak_kv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/basho/riak_kv/teams","hooks_url":"https://api.github.com/repos/basho/riak_kv/hooks","issue_events_url":"https://api.github.com/repos/basho/riak_kv/issues/events{/number}","events_url":"https://api.github.com/repos/basho/riak_kv/events","assignees_url":"https://api.github.com/repos/basho/riak_kv/assignees{/user}","branches_url":"https://api.github.com/repos/basho/riak_kv/branches{/branch}","tags_url":"https://api.github.com/repos/basho/riak_kv/tags","blobs_url":"https://api.github.com/repos/basho/riak_kv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/basho/riak_kv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/basho/riak_kv/git/refs{/sha}","trees_url":"https://api.github.com/repos/basho/riak_kv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/basho/riak_kv/statuses/{sha}","languages_url":"https://api.github.com/repos/basho/riak_kv/languages","stargazers_url":"https://api.github.com/repos/basho/riak_kv/stargazers","contributors_url":"https://api.github.com/repos/basho/riak_kv/contributors","subscribers_url":"https://api.github.com/repos/basho/riak_kv/subscribers","subscription_url":"https://api.github.com/repos/basho/riak_kv/subscription","commits_url":"https://api.github.com/repos/basho/riak_kv/commits{/sha}","git_commits_url":"https://api.github.com/repos/basho/riak_kv/git/commits{/sha}","comments_url":"https://api.github.com/repos/basho/riak_kv/comments{/number}","issue_comment_url":"https://api.github.com/repos/basho/riak_kv/issues/comments{/number}","contents_url":"https://api.github.com/repos/basho/riak_kv/contents/{+path}","compare_url":"https://api.github.com/repos/basho/riak_kv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/basho/riak_kv/merges","archive_url":"https://api.github.com/repos/basho/riak_kv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/basho/riak_kv/downloads","issues_url":"https://api.github.com/repos/basho/riak_kv/issues{/number}","pulls_url":"https://api.github.com/repos/basho/riak_kv/pulls{/number}","milestones_url":"https://api.github.com/repos/basho/riak_kv/milestones{/number}","notifications_url":"https://api.github.com/repos/basho/riak_kv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/basho/riak_kv/labels{/name}","releases_url":"https://api.github.com/repos/basho/riak_kv/releases{/id}","created_at":"2010-07-22T17:27:35Z","updated_at":"2015-03-27T15:29:45Z","pushed_at":"2015-03-30T19:37:53Z","git_url":"git://github.com/basho/riak_kv.git","ssh_url":"git@github.com:basho/riak_kv.git","clone_url":"https://github.com/basho/riak_kv.git","svn_url":"https://github.com/basho/riak_kv","homepage":"","size":24534,"stargazers_count":236,"watchers_count":236,"language":"Erlang","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":113,"mirror_url":null,"open_issues_count":136,"forks":113,"open_issues":136,"watchers":236,"default_branch":"develop"}},"base":{"label":"basho:develop","ref":"develop","sha":"cdfdbbd04b79c899369d8f9744e1eada53ff5122","user":{"login":"basho","id":176293,"avatar_url":"https://avatars.githubusercontent.com/u/176293?v=3","gravatar_id":"","url":"https://api.github.com/users/basho","html_url":"https://github.com/basho","followers_url":"https://api.github.com/users/basho/followers","following_url":"https://api.github.com/users/basho/following{/other_user}","gists_url":"https://api.github.com/users/basho/gists{/gist_id}","starred_url":"https://api.github.com/users/basho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basho/subscriptions","organizations_url":"https://api.github.com/users/basho/orgs","repos_url":"https://api.github.com/users/basho/repos","events_url":"https://api.github.com/users/basho/events{/privacy}","received_events_url":"https://api.github.com/users/basho/received_events","type":"Organization","site_admin":false},"repo":{"id":791522,"name":"riak_kv","full_name":"basho/riak_kv","owner":{"login":"basho","id":176293,"avatar_url":"https://avatars.githubusercontent.com/u/176293?v=3","gravatar_id":"","url":"https://api.github.com/users/basho","html_url":"https://github.com/basho","followers_url":"https://api.github.com/users/basho/followers","following_url":"https://api.github.com/users/basho/following{/other_user}","gists_url":"https://api.github.com/users/basho/gists{/gist_id}","starred_url":"https://api.github.com/users/basho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/basho/subscriptions","organizations_url":"https://api.github.com/users/basho/orgs","repos_url":"https://api.github.com/users/basho/repos","events_url":"https://api.github.com/users/basho/events{/privacy}","received_events_url":"https://api.github.com/users/basho/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/basho/riak_kv","description":"Riak Key/Value Store","fork":false,"url":"https://api.github.com/repos/basho/riak_kv","forks_url":"https://api.github.com/repos/basho/riak_kv/forks","keys_url":"https://api.github.com/repos/basho/riak_kv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/basho/riak_kv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/basho/riak_kv/teams","hooks_url":"https://api.github.com/repos/basho/riak_kv/hooks","issue_events_url":"https://api.github.com/repos/basho/riak_kv/issues/events{/number}","events_url":"https://api.github.com/repos/basho/riak_kv/events","assignees_url":"https://api.github.com/repos/basho/riak_kv/assignees{/user}","branches_url":"https://api.github.com/repos/basho/riak_kv/branches{/branch}","tags_url":"https://api.github.com/repos/basho/riak_kv/tags","blobs_url":"https://api.github.com/repos/basho/riak_kv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/basho/riak_kv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/basho/riak_kv/git/refs{/sha}","trees_url":"https://api.github.com/repos/basho/riak_kv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/basho/riak_kv/statuses/{sha}","languages_url":"https://api.github.com/repos/basho/riak_kv/languages","stargazers_url":"https://api.github.com/repos/basho/riak_kv/stargazers","contributors_url":"https://api.github.com/repos/basho/riak_kv/contributors","subscribers_url":"https://api.github.com/repos/basho/riak_kv/subscribers","subscription_url":"https://api.github.com/repos/basho/riak_kv/subscription","commits_url":"https://api.github.com/repos/basho/riak_kv/commits{/sha}","git_commits_url":"https://api.github.com/repos/basho/riak_kv/git/commits{/sha}","comments_url":"https://api.github.com/repos/basho/riak_kv/comments{/number}","issue_comment_url":"https://api.github.com/repos/basho/riak_kv/issues/comments{/number}","contents_url":"https://api.github.com/repos/basho/riak_kv/contents/{+path}","compare_url":"https://api.github.com/repos/basho/riak_kv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/basho/riak_kv/merges","archive_url":"https://api.github.com/repos/basho/riak_kv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/basho/riak_kv/downloads","issues_url":"https://api.github.com/repos/basho/riak_kv/issues{/number}","pulls_url":"https://api.github.com/repos/basho/riak_kv/pulls{/number}","milestones_url":"https://api.github.com/repos/basho/riak_kv/milestones{/number}","notifications_url":"https://api.github.com/repos/basho/riak_kv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/basho/riak_kv/labels{/name}","releases_url":"https://api.github.com/repos/basho/riak_kv/releases{/id}","created_at":"2010-07-22T17:27:35Z","updated_at":"2015-03-27T15:29:45Z","pushed_at":"2015-03-30T19:37:53Z","git_url":"git://github.com/basho/riak_kv.git","ssh_url":"git@github.com:basho/riak_kv.git","clone_url":"https://github.com/basho/riak_kv.git","svn_url":"https://github.com/basho/riak_kv","homepage":"","size":24534,"stargazers_count":236,"watchers_count":236,"language":"Erlang","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":113,"mirror_url":null,"open_issues_count":136,"forks":113,"open_issues":136,"watchers":236,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/1100"},"html":{"href":"https://github.com/basho/riak_kv/pull/1100"},"issue":{"href":"https://api.github.com/repos/basho/riak_kv/issues/1100"},"comments":{"href":"https://api.github.com/repos/basho/riak_kv/issues/1100/comments"},"review_comments":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/1100/comments"},"review_comment":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/basho/riak_kv/pulls/1100/commits"},"statuses":{"href":"https://api.github.com/repos/basho/riak_kv/statuses/ed98f079a0c65995284f14518c80bdd235372e07"}}}}