{"action":"created","issue":{"url":"https://api.github.com/repos/ceph/ceph/issues/8911","repository_url":"https://api.github.com/repos/ceph/ceph","labels_url":"https://api.github.com/repos/ceph/ceph/issues/8911/labels{/name}","comments_url":"https://api.github.com/repos/ceph/ceph/issues/8911/comments","events_url":"https://api.github.com/repos/ceph/ceph/issues/8911/events","html_url":"https://github.com/ceph/ceph/pull/8911","id":152794960,"number":8911,"title":"osd,librados: cmpext support","user":{"login":"ddiss","id":3995472,"avatar_url":"https://avatars.githubusercontent.com/u/3995472?v=3","gravatar_id":"","url":"https://api.github.com/users/ddiss","html_url":"https://github.com/ddiss","followers_url":"https://api.github.com/users/ddiss/followers","following_url":"https://api.github.com/users/ddiss/following{/other_user}","gists_url":"https://api.github.com/users/ddiss/gists{/gist_id}","starred_url":"https://api.github.com/users/ddiss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ddiss/subscriptions","organizations_url":"https://api.github.com/users/ddiss/orgs","repos_url":"https://api.github.com/users/ddiss/repos","events_url":"https://api.github.com/users/ddiss/events{/privacy}","received_events_url":"https://api.github.com/users/ddiss/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ceph/ceph/labels/core","name":"core","color":"0052cc"},{"url":"https://api.github.com/repos/ceph/ceph/labels/feature","name":"feature","color":"009800"},{"url":"https://api.github.com/repos/ceph/ceph/labels/needs-review","name":"needs-review","color":"d4c5f9"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-05-03T14:57:06Z","updated_at":"2016-05-03T16:24:33Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ceph/ceph/pulls/8911","html_url":"https://github.com/ceph/ceph/pull/8911","diff_url":"https://github.com/ceph/ceph/pull/8911.diff","patch_url":"https://github.com/ceph/ceph/pull/8911.patch"},"body":"This is a follow up to #8175 and #8568. The patch-set carries @mikechristie 's implementation of OSD cmpext support.\r\nThe librados API, based on @mikechristie 's initial C++ work, has been extended to handle transparent miscompare response unmarshalling. AIO support and a C API has also been added, along with corresponding unit tests.\r\nSome aspects of the patchset that could potentially be improved:\r\n- The C API invokes an unnecessary memcpy() on miscompare\r\n  + this was discussed upstream via http://www.spinics.net/lists/ceph-devel/msg29969.html\r\n- The IoCtxImpl::aio_cmpext() helpers used by the AIO cmpext APIs are a little convoluted\r\n  + prepare_cmpext_op is used for C++. m_ops.cmpext() + prepare_read_op() for C"},"comment":{"url":"https://api.github.com/repos/ceph/ceph/issues/comments/216584309","html_url":"https://github.com/ceph/ceph/pull/8911#issuecomment-216584309","issue_url":"https://api.github.com/repos/ceph/ceph/issues/8911","id":216584309,"user":{"login":"liewegas","id":433031,"avatar_url":"https://avatars.githubusercontent.com/u/433031?v=3","gravatar_id":"","url":"https://api.github.com/users/liewegas","html_url":"https://github.com/liewegas","followers_url":"https://api.github.com/users/liewegas/followers","following_url":"https://api.github.com/users/liewegas/following{/other_user}","gists_url":"https://api.github.com/users/liewegas/gists{/gist_id}","starred_url":"https://api.github.com/users/liewegas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/liewegas/subscriptions","organizations_url":"https://api.github.com/users/liewegas/orgs","repos_url":"https://api.github.com/users/liewegas/repos","events_url":"https://api.github.com/users/liewegas/events{/privacy}","received_events_url":"https://api.github.com/users/liewegas/received_events","type":"User","site_admin":false},"created_at":"2016-05-03T16:24:33Z","updated_at":"2016-05-03T16:24:33Z","body":"@jdurgin ?"}}