{"action":"closed","number":3148,"pull_request":{"url":"https://api.github.com/repos/ceph/ceph/pulls/3148","id":25880724,"html_url":"https://github.com/ceph/ceph/pull/3148","diff_url":"https://github.com/ceph/ceph/pull/3148.diff","patch_url":"https://github.com/ceph/ceph/pull/3148.patch","issue_url":"https://api.github.com/repos/ceph/ceph/issues/3148","number":3148,"state":"closed","locked":false,"title":"os: WBThrottle: optimize the map to unordered_map","user":{"login":"mslovy","id":9523883,"avatar_url":"https://avatars.githubusercontent.com/u/9523883?v=3","gravatar_id":"","url":"https://api.github.com/users/mslovy","html_url":"https://github.com/mslovy","followers_url":"https://api.github.com/users/mslovy/followers","following_url":"https://api.github.com/users/mslovy/following{/other_user}","gists_url":"https://api.github.com/users/mslovy/gists{/gist_id}","starred_url":"https://api.github.com/users/mslovy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mslovy/subscriptions","organizations_url":"https://api.github.com/users/mslovy/orgs","repos_url":"https://api.github.com/users/mslovy/repos","events_url":"https://api.github.com/users/mslovy/events{/privacy}","received_events_url":"https://api.github.com/users/mslovy/received_events","type":"User","site_admin":false},"body":"Using unordered_map to save the cpu cost and acceralate map::find() operation. Also, do not call Signal() at all time when we queue_wb(), just call Signal when it really cond.wait() on lock. When use SSD as Journal, backend dirty_io is always greater than the writeback limitation we set, therefore, the thread will be always working and no need to Signal(). So it would be meaningful\r\n\r\nSigned-off-by: Ning Yao <zay11022@gmail.com>","created_at":"2014-12-11T07:09:31Z","updated_at":"2015-01-12T16:23:26Z","closed_at":"2015-01-12T16:23:26Z","merged_at":"2015-01-12T16:23:26Z","merge_commit_sha":"f35310c5d6c0e9c7fbe109471c50fc3c3147eec7","assignee":{"login":"athanatos","id":544782,"avatar_url":"https://avatars.githubusercontent.com/u/544782?v=3","gravatar_id":"","url":"https://api.github.com/users/athanatos","html_url":"https://github.com/athanatos","followers_url":"https://api.github.com/users/athanatos/followers","following_url":"https://api.github.com/users/athanatos/following{/other_user}","gists_url":"https://api.github.com/users/athanatos/gists{/gist_id}","starred_url":"https://api.github.com/users/athanatos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athanatos/subscriptions","organizations_url":"https://api.github.com/users/athanatos/orgs","repos_url":"https://api.github.com/users/athanatos/repos","events_url":"https://api.github.com/users/athanatos/events{/privacy}","received_events_url":"https://api.github.com/users/athanatos/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/ceph/ceph/pulls/3148/commits","review_comments_url":"https://api.github.com/repos/ceph/ceph/pulls/3148/comments","review_comment_url":"https://api.github.com/repos/ceph/ceph/pulls/comments/{number}","comments_url":"https://api.github.com/repos/ceph/ceph/issues/3148/comments","statuses_url":"https://api.github.com/repos/ceph/ceph/statuses/73257e85f76a39c01c07dbec2b3b41e3b241b7aa","head":{"label":"mslovy:optimazation_wbthrottle","ref":"optimazation_wbthrottle","sha":"73257e85f76a39c01c07dbec2b3b41e3b241b7aa","user":{"login":"mslovy","id":9523883,"avatar_url":"https://avatars.githubusercontent.com/u/9523883?v=3","gravatar_id":"","url":"https://api.github.com/users/mslovy","html_url":"https://github.com/mslovy","followers_url":"https://api.github.com/users/mslovy/followers","following_url":"https://api.github.com/users/mslovy/following{/other_user}","gists_url":"https://api.github.com/users/mslovy/gists{/gist_id}","starred_url":"https://api.github.com/users/mslovy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mslovy/subscriptions","organizations_url":"https://api.github.com/users/mslovy/orgs","repos_url":"https://api.github.com/users/mslovy/repos","events_url":"https://api.github.com/users/mslovy/events{/privacy}","received_events_url":"https://api.github.com/users/mslovy/received_events","type":"User","site_admin":false},"repo":{"id":27752448,"name":"ceph","full_name":"mslovy/ceph","owner":{"login":"mslovy","id":9523883,"avatar_url":"https://avatars.githubusercontent.com/u/9523883?v=3","gravatar_id":"","url":"https://api.github.com/users/mslovy","html_url":"https://github.com/mslovy","followers_url":"https://api.github.com/users/mslovy/followers","following_url":"https://api.github.com/users/mslovy/following{/other_user}","gists_url":"https://api.github.com/users/mslovy/gists{/gist_id}","starred_url":"https://api.github.com/users/mslovy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mslovy/subscriptions","organizations_url":"https://api.github.com/users/mslovy/orgs","repos_url":"https://api.github.com/users/mslovy/repos","events_url":"https://api.github.com/users/mslovy/events{/privacy}","received_events_url":"https://api.github.com/users/mslovy/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mslovy/ceph","description":"Ceph is a distributed object, block, and file storage platform ","fork":true,"url":"https://api.github.com/repos/mslovy/ceph","forks_url":"https://api.github.com/repos/mslovy/ceph/forks","keys_url":"https://api.github.com/repos/mslovy/ceph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mslovy/ceph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mslovy/ceph/teams","hooks_url":"https://api.github.com/repos/mslovy/ceph/hooks","issue_events_url":"https://api.github.com/repos/mslovy/ceph/issues/events{/number}","events_url":"https://api.github.com/repos/mslovy/ceph/events","assignees_url":"https://api.github.com/repos/mslovy/ceph/assignees{/user}","branches_url":"https://api.github.com/repos/mslovy/ceph/branches{/branch}","tags_url":"https://api.github.com/repos/mslovy/ceph/tags","blobs_url":"https://api.github.com/repos/mslovy/ceph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mslovy/ceph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mslovy/ceph/git/refs{/sha}","trees_url":"https://api.github.com/repos/mslovy/ceph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mslovy/ceph/statuses/{sha}","languages_url":"https://api.github.com/repos/mslovy/ceph/languages","stargazers_url":"https://api.github.com/repos/mslovy/ceph/stargazers","contributors_url":"https://api.github.com/repos/mslovy/ceph/contributors","subscribers_url":"https://api.github.com/repos/mslovy/ceph/subscribers","subscription_url":"https://api.github.com/repos/mslovy/ceph/subscription","commits_url":"https://api.github.com/repos/mslovy/ceph/commits{/sha}","git_commits_url":"https://api.github.com/repos/mslovy/ceph/git/commits{/sha}","comments_url":"https://api.github.com/repos/mslovy/ceph/comments{/number}","issue_comment_url":"https://api.github.com/repos/mslovy/ceph/issues/comments/{number}","contents_url":"https://api.github.com/repos/mslovy/ceph/contents/{+path}","compare_url":"https://api.github.com/repos/mslovy/ceph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mslovy/ceph/merges","archive_url":"https://api.github.com/repos/mslovy/ceph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mslovy/ceph/downloads","issues_url":"https://api.github.com/repos/mslovy/ceph/issues{/number}","pulls_url":"https://api.github.com/repos/mslovy/ceph/pulls{/number}","milestones_url":"https://api.github.com/repos/mslovy/ceph/milestones{/number}","notifications_url":"https://api.github.com/repos/mslovy/ceph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mslovy/ceph/labels{/name}","releases_url":"https://api.github.com/repos/mslovy/ceph/releases{/id}","created_at":"2014-12-09T06:12:39Z","updated_at":"2014-12-29T09:17:16Z","pushed_at":"2015-01-05T11:05:59Z","git_url":"git://github.com/mslovy/ceph.git","ssh_url":"git@github.com:mslovy/ceph.git","clone_url":"https://github.com/mslovy/ceph.git","svn_url":"https://github.com/mslovy/ceph","homepage":"http://ceph.com","size":98291,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ceph:master","ref":"master","sha":"e1384afd5adc0b9e810c17a471eaf8d2fb9c3c03","user":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"repo":{"id":2310495,"name":"ceph","full_name":"ceph/ceph","owner":{"login":"ceph","id":1015767,"avatar_url":"https://avatars.githubusercontent.com/u/1015767?v=3","gravatar_id":"","url":"https://api.github.com/users/ceph","html_url":"https://github.com/ceph","followers_url":"https://api.github.com/users/ceph/followers","following_url":"https://api.github.com/users/ceph/following{/other_user}","gists_url":"https://api.github.com/users/ceph/gists{/gist_id}","starred_url":"https://api.github.com/users/ceph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ceph/subscriptions","organizations_url":"https://api.github.com/users/ceph/orgs","repos_url":"https://api.github.com/users/ceph/repos","events_url":"https://api.github.com/users/ceph/events{/privacy}","received_events_url":"https://api.github.com/users/ceph/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ceph/ceph","description":"Ceph is a distributed object, block, and file storage platform ","fork":false,"url":"https://api.github.com/repos/ceph/ceph","forks_url":"https://api.github.com/repos/ceph/ceph/forks","keys_url":"https://api.github.com/repos/ceph/ceph/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ceph/ceph/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ceph/ceph/teams","hooks_url":"https://api.github.com/repos/ceph/ceph/hooks","issue_events_url":"https://api.github.com/repos/ceph/ceph/issues/events{/number}","events_url":"https://api.github.com/repos/ceph/ceph/events","assignees_url":"https://api.github.com/repos/ceph/ceph/assignees{/user}","branches_url":"https://api.github.com/repos/ceph/ceph/branches{/branch}","tags_url":"https://api.github.com/repos/ceph/ceph/tags","blobs_url":"https://api.github.com/repos/ceph/ceph/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ceph/ceph/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ceph/ceph/git/refs{/sha}","trees_url":"https://api.github.com/repos/ceph/ceph/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ceph/ceph/statuses/{sha}","languages_url":"https://api.github.com/repos/ceph/ceph/languages","stargazers_url":"https://api.github.com/repos/ceph/ceph/stargazers","contributors_url":"https://api.github.com/repos/ceph/ceph/contributors","subscribers_url":"https://api.github.com/repos/ceph/ceph/subscribers","subscription_url":"https://api.github.com/repos/ceph/ceph/subscription","commits_url":"https://api.github.com/repos/ceph/ceph/commits{/sha}","git_commits_url":"https://api.github.com/repos/ceph/ceph/git/commits{/sha}","comments_url":"https://api.github.com/repos/ceph/ceph/comments{/number}","issue_comment_url":"https://api.github.com/repos/ceph/ceph/issues/comments/{number}","contents_url":"https://api.github.com/repos/ceph/ceph/contents/{+path}","compare_url":"https://api.github.com/repos/ceph/ceph/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ceph/ceph/merges","archive_url":"https://api.github.com/repos/ceph/ceph/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ceph/ceph/downloads","issues_url":"https://api.github.com/repos/ceph/ceph/issues{/number}","pulls_url":"https://api.github.com/repos/ceph/ceph/pulls{/number}","milestones_url":"https://api.github.com/repos/ceph/ceph/milestones{/number}","notifications_url":"https://api.github.com/repos/ceph/ceph/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ceph/ceph/labels{/name}","releases_url":"https://api.github.com/repos/ceph/ceph/releases{/id}","created_at":"2011-09-01T21:41:26Z","updated_at":"2015-01-12T04:18:02Z","pushed_at":"2015-01-12T16:23:26Z","git_url":"git://github.com/ceph/ceph.git","ssh_url":"git@github.com:ceph/ceph.git","clone_url":"https://github.com/ceph/ceph.git","svn_url":"https://github.com/ceph/ceph","homepage":"http://ceph.com","size":324477,"stargazers_count":1074,"watchers_count":1074,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":547,"mirror_url":null,"open_issues_count":94,"forks":547,"open_issues":94,"watchers":1074,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3148"},"html":{"href":"https://github.com/ceph/ceph/pull/3148"},"issue":{"href":"https://api.github.com/repos/ceph/ceph/issues/3148"},"comments":{"href":"https://api.github.com/repos/ceph/ceph/issues/3148/comments"},"review_comments":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3148/comments"},"review_comment":{"href":"https://api.github.com/repos/ceph/ceph/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/ceph/ceph/pulls/3148/commits"},"statuses":{"href":"https://api.github.com/repos/ceph/ceph/statuses/73257e85f76a39c01c07dbec2b3b41e3b241b7aa"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"athanatos","id":544782,"avatar_url":"https://avatars.githubusercontent.com/u/544782?v=3","gravatar_id":"","url":"https://api.github.com/users/athanatos","html_url":"https://github.com/athanatos","followers_url":"https://api.github.com/users/athanatos/followers","following_url":"https://api.github.com/users/athanatos/following{/other_user}","gists_url":"https://api.github.com/users/athanatos/gists{/gist_id}","starred_url":"https://api.github.com/users/athanatos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/athanatos/subscriptions","organizations_url":"https://api.github.com/users/athanatos/orgs","repos_url":"https://api.github.com/users/athanatos/repos","events_url":"https://api.github.com/users/athanatos/events{/privacy}","received_events_url":"https://api.github.com/users/athanatos/received_events","type":"User","site_admin":false},"comments":9,"review_comments":3,"commits":1,"additions":8,"deletions":9,"changed_files":2}}