{"action":"created","comment":{"url":"https://api.github.com/repos/uber/tchannel/pulls/comments/34407238","id":34407238,"diff_hunk":"@@ -248,6 +276,7 @@ function updateServiceChannel(svcchan) {\n     } else if (!isExit) {\n         if (svcchan.serviceProxyMode === 'exit') {\n             self.changeToForward(exitNodes, svcchan);\n+            self.rateLimiter.removeServiceCounter(svcchan.serviceName);","path":"node/hyperbahn/service_proxy.js","position":53,"original_position":53,"commit_id":"190dcb59f576d1b46bc9a0b67e18c3be0e6e00a6","original_commit_id":"190dcb59f576d1b46bc9a0b67e18c3be0e6e00a6","user":{"login":"Raynos","id":479538,"avatar_url":"https://avatars.githubusercontent.com/u/479538?v=3","gravatar_id":"","url":"https://api.github.com/users/Raynos","html_url":"https://github.com/Raynos","followers_url":"https://api.github.com/users/Raynos/followers","following_url":"https://api.github.com/users/Raynos/following{/other_user}","gists_url":"https://api.github.com/users/Raynos/gists{/gist_id}","starred_url":"https://api.github.com/users/Raynos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Raynos/subscriptions","organizations_url":"https://api.github.com/users/Raynos/orgs","repos_url":"https://api.github.com/users/Raynos/repos","events_url":"https://api.github.com/users/Raynos/events{/privacy}","received_events_url":"https://api.github.com/users/Raynos/received_events","type":"User","site_admin":false},"body":"Let's put this in `purgeServices()` next to `delete subChannels[serviceName]`","created_at":"2015-07-11T00:43:13Z","updated_at":"2015-07-11T00:43:13Z","html_url":"https://github.com/uber/tchannel/pull/897#discussion_r34407238","pull_request_url":"https://api.github.com/repos/uber/tchannel/pulls/897","_links":{"self":{"href":"https://api.github.com/repos/uber/tchannel/pulls/comments/34407238"},"html":{"href":"https://github.com/uber/tchannel/pull/897#discussion_r34407238"},"pull_request":{"href":"https://api.github.com/repos/uber/tchannel/pulls/897"}}},"pull_request":{"url":"https://api.github.com/repos/uber/tchannel/pulls/897","id":39609526,"html_url":"https://github.com/uber/tchannel/pull/897","diff_url":"https://github.com/uber/tchannel/pull/897.diff","patch_url":"https://github.com/uber/tchannel/pull/897.patch","issue_url":"https://api.github.com/repos/uber/tchannel/issues/897","number":897,"state":"open","locked":false,"title":"Rate limiting","user":{"login":"ShanniLi","id":5845092,"avatar_url":"https://avatars.githubusercontent.com/u/5845092?v=3","gravatar_id":"","url":"https://api.github.com/users/ShanniLi","html_url":"https://github.com/ShanniLi","followers_url":"https://api.github.com/users/ShanniLi/followers","following_url":"https://api.github.com/users/ShanniLi/following{/other_user}","gists_url":"https://api.github.com/users/ShanniLi/gists{/gist_id}","starred_url":"https://api.github.com/users/ShanniLi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ShanniLi/subscriptions","organizations_url":"https://api.github.com/users/ShanniLi/orgs","repos_url":"https://api.github.com/users/ShanniLi/repos","events_url":"https://api.github.com/users/ShanniLi/events{/privacy}","received_events_url":"https://api.github.com/users/ShanniLi/received_events","type":"User","site_admin":false},"body":"r @kriskowal @Raynos @rf \r\n\r\nPerf: before V.S. after\r\nGET 16KiB, 1000/0  rate: hi-diff:    231.06 (  5.2%)\r\nGET 16KiB, 10000/0 rate: hi-diff:    129.31 (  3.0%)\r\nGET 16KiB, 20000/0 rate: hi-diff:     83.11 (  2.0%)\r\nGET 4B, 1000/0     rate: hi-diff:    178.19 (  2.3%)\r\nGET 4B, 10000/0    rate: hi-diff:    309.22 (  4.3%)\r\nGET 4B, 20000/0    rate: hi-diff:    317.73 (  4.4%)\r\nGET 4KiB, 1000/0   rate: hi-diff:    224.95 (  3.8%)\r\nGET 4KiB, 10000/0  rate: hi-diff:    778.98 ( 15.7%)\r\nGET 4KiB, 20000/0  rate: hi-diff:    252.76 (  4.6%)\r\nPING, 1000/0       rate: hi-diff:    224.51 (  2.8%)\r\nPING, 10000/0      rate: hi-diff:    463.20 (  6.3%)\r\nPING, 20000/0      rate: hi-diff:    126.96 (  1.7%)\r\nSET 16KiB, 1000/0  rate: hi-diff:      6.31 (  0.1%)\r\nSET 16KiB, 10000/0 rate: hi-diff:     95.85 (  2.4%)\r\nSET 16KiB, 20000/0 rate: hi-diff:   -109.33 ( -3.1%)\r\nSET 4B, 1000/0     rate: hi-diff:    440.34 (  5.9%)\r\nSET 4B, 10000/0    rate: hi-diff:    -19.97 ( -0.3%)\r\nSET 4B, 20000/0    rate: hi-diff:    446.07 (  6.4%)\r\nSET 4KiB, 1000/0   rate: hi-diff:   -366.18 ( -5.5%)\r\nSET 4KiB, 10000/0  rate: hi-diff:     87.48 (  1.6%)\r\nSET 4KiB, 20000/0  rate: hi-diff:   -400.05 ( -8.2%)","created_at":"2015-07-09T17:46:17Z","updated_at":"2015-07-11T00:43:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b76ff71eea062388ab668da4d033b6542d33de14","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/uber/tchannel/pulls/897/commits","review_comments_url":"https://api.github.com/repos/uber/tchannel/pulls/897/comments","review_comment_url":"https://api.github.com/repos/uber/tchannel/pulls/comments{/number}","comments_url":"https://api.github.com/repos/uber/tchannel/issues/897/comments","statuses_url":"https://api.github.com/repos/uber/tchannel/statuses/190dcb59f576d1b46bc9a0b67e18c3be0e6e00a6","head":{"label":"uber:rate-limiting","ref":"rate-limiting","sha":"190dcb59f576d1b46bc9a0b67e18c3be0e6e00a6","user":{"login":"uber","id":538264,"avatar_url":"https://avatars.githubusercontent.com/u/538264?v=3","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"repo":{"id":28419663,"name":"tchannel","full_name":"uber/tchannel","owner":{"login":"uber","id":538264,"avatar_url":"https://avatars.githubusercontent.com/u/538264?v=3","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uber/tchannel","description":"network multiplexing and framing protocol for RPC","fork":false,"url":"https://api.github.com/repos/uber/tchannel","forks_url":"https://api.github.com/repos/uber/tchannel/forks","keys_url":"https://api.github.com/repos/uber/tchannel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uber/tchannel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uber/tchannel/teams","hooks_url":"https://api.github.com/repos/uber/tchannel/hooks","issue_events_url":"https://api.github.com/repos/uber/tchannel/issues/events{/number}","events_url":"https://api.github.com/repos/uber/tchannel/events","assignees_url":"https://api.github.com/repos/uber/tchannel/assignees{/user}","branches_url":"https://api.github.com/repos/uber/tchannel/branches{/branch}","tags_url":"https://api.github.com/repos/uber/tchannel/tags","blobs_url":"https://api.github.com/repos/uber/tchannel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uber/tchannel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uber/tchannel/git/refs{/sha}","trees_url":"https://api.github.com/repos/uber/tchannel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uber/tchannel/statuses/{sha}","languages_url":"https://api.github.com/repos/uber/tchannel/languages","stargazers_url":"https://api.github.com/repos/uber/tchannel/stargazers","contributors_url":"https://api.github.com/repos/uber/tchannel/contributors","subscribers_url":"https://api.github.com/repos/uber/tchannel/subscribers","subscription_url":"https://api.github.com/repos/uber/tchannel/subscription","commits_url":"https://api.github.com/repos/uber/tchannel/commits{/sha}","git_commits_url":"https://api.github.com/repos/uber/tchannel/git/commits{/sha}","comments_url":"https://api.github.com/repos/uber/tchannel/comments{/number}","issue_comment_url":"https://api.github.com/repos/uber/tchannel/issues/comments{/number}","contents_url":"https://api.github.com/repos/uber/tchannel/contents/{+path}","compare_url":"https://api.github.com/repos/uber/tchannel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uber/tchannel/merges","archive_url":"https://api.github.com/repos/uber/tchannel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uber/tchannel/downloads","issues_url":"https://api.github.com/repos/uber/tchannel/issues{/number}","pulls_url":"https://api.github.com/repos/uber/tchannel/pulls{/number}","milestones_url":"https://api.github.com/repos/uber/tchannel/milestones{/number}","notifications_url":"https://api.github.com/repos/uber/tchannel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uber/tchannel/labels{/name}","releases_url":"https://api.github.com/repos/uber/tchannel/releases{/id}","created_at":"2014-12-23T21:06:57Z","updated_at":"2015-07-08T02:46:30Z","pushed_at":"2015-07-10T23:54:10Z","git_url":"git://github.com/uber/tchannel.git","ssh_url":"git@github.com:uber/tchannel.git","clone_url":"https://github.com/uber/tchannel.git","svn_url":"https://github.com/uber/tchannel","homepage":"","size":16685,"stargazers_count":86,"watchers_count":86,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":52,"forks":9,"open_issues":52,"watchers":86,"default_branch":"master"}},"base":{"label":"uber:master","ref":"master","sha":"9fbef07b5bf4906e7b7884e35a0643820731a4e4","user":{"login":"uber","id":538264,"avatar_url":"https://avatars.githubusercontent.com/u/538264?v=3","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"repo":{"id":28419663,"name":"tchannel","full_name":"uber/tchannel","owner":{"login":"uber","id":538264,"avatar_url":"https://avatars.githubusercontent.com/u/538264?v=3","gravatar_id":"","url":"https://api.github.com/users/uber","html_url":"https://github.com/uber","followers_url":"https://api.github.com/users/uber/followers","following_url":"https://api.github.com/users/uber/following{/other_user}","gists_url":"https://api.github.com/users/uber/gists{/gist_id}","starred_url":"https://api.github.com/users/uber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uber/subscriptions","organizations_url":"https://api.github.com/users/uber/orgs","repos_url":"https://api.github.com/users/uber/repos","events_url":"https://api.github.com/users/uber/events{/privacy}","received_events_url":"https://api.github.com/users/uber/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uber/tchannel","description":"network multiplexing and framing protocol for RPC","fork":false,"url":"https://api.github.com/repos/uber/tchannel","forks_url":"https://api.github.com/repos/uber/tchannel/forks","keys_url":"https://api.github.com/repos/uber/tchannel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uber/tchannel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uber/tchannel/teams","hooks_url":"https://api.github.com/repos/uber/tchannel/hooks","issue_events_url":"https://api.github.com/repos/uber/tchannel/issues/events{/number}","events_url":"https://api.github.com/repos/uber/tchannel/events","assignees_url":"https://api.github.com/repos/uber/tchannel/assignees{/user}","branches_url":"https://api.github.com/repos/uber/tchannel/branches{/branch}","tags_url":"https://api.github.com/repos/uber/tchannel/tags","blobs_url":"https://api.github.com/repos/uber/tchannel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uber/tchannel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uber/tchannel/git/refs{/sha}","trees_url":"https://api.github.com/repos/uber/tchannel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uber/tchannel/statuses/{sha}","languages_url":"https://api.github.com/repos/uber/tchannel/languages","stargazers_url":"https://api.github.com/repos/uber/tchannel/stargazers","contributors_url":"https://api.github.com/repos/uber/tchannel/contributors","subscribers_url":"https://api.github.com/repos/uber/tchannel/subscribers","subscription_url":"https://api.github.com/repos/uber/tchannel/subscription","commits_url":"https://api.github.com/repos/uber/tchannel/commits{/sha}","git_commits_url":"https://api.github.com/repos/uber/tchannel/git/commits{/sha}","comments_url":"https://api.github.com/repos/uber/tchannel/comments{/number}","issue_comment_url":"https://api.github.com/repos/uber/tchannel/issues/comments{/number}","contents_url":"https://api.github.com/repos/uber/tchannel/contents/{+path}","compare_url":"https://api.github.com/repos/uber/tchannel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uber/tchannel/merges","archive_url":"https://api.github.com/repos/uber/tchannel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uber/tchannel/downloads","issues_url":"https://api.github.com/repos/uber/tchannel/issues{/number}","pulls_url":"https://api.github.com/repos/uber/tchannel/pulls{/number}","milestones_url":"https://api.github.com/repos/uber/tchannel/milestones{/number}","notifications_url":"https://api.github.com/repos/uber/tchannel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uber/tchannel/labels{/name}","releases_url":"https://api.github.com/repos/uber/tchannel/releases{/id}","created_at":"2014-12-23T21:06:57Z","updated_at":"2015-07-08T02:46:30Z","pushed_at":"2015-07-10T23:54:10Z","git_url":"git://github.com/uber/tchannel.git","ssh_url":"git@github.com:uber/tchannel.git","clone_url":"https://github.com/uber/tchannel.git","svn_url":"https://github.com/uber/tchannel","homepage":"","size":16685,"stargazers_count":86,"watchers_count":86,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":52,"forks":9,"open_issues":52,"watchers":86,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/uber/tchannel/pulls/897"},"html":{"href":"https://github.com/uber/tchannel/pull/897"},"issue":{"href":"https://api.github.com/repos/uber/tchannel/issues/897"},"comments":{"href":"https://api.github.com/repos/uber/tchannel/issues/897/comments"},"review_comments":{"href":"https://api.github.com/repos/uber/tchannel/pulls/897/comments"},"review_comment":{"href":"https://api.github.com/repos/uber/tchannel/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/uber/tchannel/pulls/897/commits"},"statuses":{"href":"https://api.github.com/repos/uber/tchannel/statuses/190dcb59f576d1b46bc9a0b67e18c3be0e6e00a6"}}}}