{"action":"created","comment":{"url":"https://api.github.com/repos/apache/storm/pulls/comments/41366483","id":41366483,"diff_hunk":"@@ -0,0 +1,50 @@\n+/**\n+ * Licensed to the Apache Software Foundation (ASF) under one\n+ * or more contributor license agreements.  See the NOTICE file\n+ * distributed with this work for additional information\n+ * regarding copyright ownership.  The ASF licenses this file\n+ * to you under the Apache License, Version 2.0 (the\n+ * \"License\"); you may not use this file except in compliance\n+ * with the License.  You may obtain a copy of the License at\n+ *\n+ *     http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+package backtype.storm.networktopography;\n+\n+import java.util.List;\n+import java.util.Map;\n+\n+/**\n+ * An interface that must be implemented to allow pluggable\n+ * DNS-name/IP-address to RackID resolvers.\n+ *\n+ */\n+public interface DNSToSwitchMapping {\n+  public final static String DEFAULT_RACK = \"/default-rack\";","path":"storm-core/src/jvm/backtype/storm/networktopography/DNSToSwitchMapping.java","position":29,"original_position":29,"commit_id":"210d1ebbd69a3967487291d8c7b4418deab83435","original_commit_id":"210d1ebbd69a3967487291d8c7b4418deab83435","user":{"login":"erikdw","id":1111441,"avatar_url":"https://avatars.githubusercontent.com/u/1111441?v=3","gravatar_id":"","url":"https://api.github.com/users/erikdw","html_url":"https://github.com/erikdw","followers_url":"https://api.github.com/users/erikdw/followers","following_url":"https://api.github.com/users/erikdw/following{/other_user}","gists_url":"https://api.github.com/users/erikdw/gists{/gist_id}","starred_url":"https://api.github.com/users/erikdw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/erikdw/subscriptions","organizations_url":"https://api.github.com/users/erikdw/orgs","repos_url":"https://api.github.com/users/erikdw/repos","events_url":"https://api.github.com/users/erikdw/events{/privacy}","received_events_url":"https://api.github.com/users/erikdw/received_events","type":"User","site_admin":false},"body":"please use consistent indentation.  The java code in the storm project seems to use 4-space indents.  This applies to this file as well as AbstractDNSToSwitchMapping.java.  Maybe others that I've missed with all the generated code making this a bit hard to read through.","created_at":"2015-10-07T08:59:37Z","updated_at":"2015-10-07T08:59:37Z","html_url":"https://github.com/apache/storm/pull/746#discussion_r41366483","pull_request_url":"https://api.github.com/repos/apache/storm/pulls/746","_links":{"self":{"href":"https://api.github.com/repos/apache/storm/pulls/comments/41366483"},"html":{"href":"https://github.com/apache/storm/pull/746#discussion_r41366483"},"pull_request":{"href":"https://api.github.com/repos/apache/storm/pulls/746"}}},"pull_request":{"url":"https://api.github.com/repos/apache/storm/pulls/746","id":45440704,"html_url":"https://github.com/apache/storm/pull/746","diff_url":"https://github.com/apache/storm/pull/746.diff","patch_url":"https://github.com/apache/storm/pull/746.patch","issue_url":"https://api.github.com/repos/apache/storm/issues/746","number":746,"state":"open","locked":false,"title":"[STORM-893] Resource Aware Scheduling","user":{"login":"jerrypeng","id":3613359,"avatar_url":"https://avatars.githubusercontent.com/u/3613359?v=3","gravatar_id":"","url":"https://api.github.com/users/jerrypeng","html_url":"https://github.com/jerrypeng","followers_url":"https://api.github.com/users/jerrypeng/followers","following_url":"https://api.github.com/users/jerrypeng/following{/other_user}","gists_url":"https://api.github.com/users/jerrypeng/gists{/gist_id}","starred_url":"https://api.github.com/users/jerrypeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerrypeng/subscriptions","organizations_url":"https://api.github.com/users/jerrypeng/orgs","repos_url":"https://api.github.com/users/jerrypeng/repos","events_url":"https://api.github.com/users/jerrypeng/events{/privacy}","received_events_url":"https://api.github.com/users/jerrypeng/received_events","type":"User","site_admin":false},"body":"I have created a initial open source implementation of the Resource Aware Scheduler as described in the paper I published: \r\n\r\nhttp://web.engr.illinois.edu/~bpeng/files/r-storm.pdf\r\n\r\nThe paper describes the general architecture, concepts, and algorithms used.\r\n\r\nI have written an example topology (examples/storm-starter/src/jvm/storm/starter/ResourceAwareExampleTopology.java) that demonstrates how to use the API I have written to specify resource requirements in your topology.  I have also uploaded a doc on the corresponding JIRA page explaining the API of Resource Aware Scheduer: \r\n\r\nhttps://issues.apache.org/jira/secure/attachment/12761178/resource_aware_scheduler_api.pdf\r\n\r\nCurrently the user can only specify two types of resources: Memory and CPU.  We plan on adding support for more resources in the future.\r\n\r\nCurrently, there is no built in enforcement of resource usage in worker processes, however, we plan to add that functionality via CGroups.  We are also working on launching workers with the correct corresponding JVM heap sizes.  We will release that code soon\r\n\r\nPeople that worked on the implementation at Yahoo with me:\r\n\r\nBobby Evans (Yahoo & Storm PMC)\r\nDerek Dagit (Yahoo & Storm PMC)\r\nKyle Nusbaum (Yahoo & Storm PMC)\r\nLiu Zhuo (Yahoo)\r\nSanket Chintapalli (Yahoo)\r\nReza Fravier (Yahoo & UIUC)","created_at":"2015-09-18T19:00:05Z","updated_at":"2015-10-07T08:59:37Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c628ed3ba88aeac947d9a8094c8d151a094dd87c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/apache/storm/pulls/746/commits","review_comments_url":"https://api.github.com/repos/apache/storm/pulls/746/comments","review_comment_url":"https://api.github.com/repos/apache/storm/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/storm/issues/746/comments","statuses_url":"https://api.github.com/repos/apache/storm/statuses/210d1ebbd69a3967487291d8c7b4418deab83435","head":{"label":"jerrypeng:opensource_ras","ref":"opensource_ras","sha":"210d1ebbd69a3967487291d8c7b4418deab83435","user":{"login":"jerrypeng","id":3613359,"avatar_url":"https://avatars.githubusercontent.com/u/3613359?v=3","gravatar_id":"","url":"https://api.github.com/users/jerrypeng","html_url":"https://github.com/jerrypeng","followers_url":"https://api.github.com/users/jerrypeng/followers","following_url":"https://api.github.com/users/jerrypeng/following{/other_user}","gists_url":"https://api.github.com/users/jerrypeng/gists{/gist_id}","starred_url":"https://api.github.com/users/jerrypeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerrypeng/subscriptions","organizations_url":"https://api.github.com/users/jerrypeng/orgs","repos_url":"https://api.github.com/users/jerrypeng/repos","events_url":"https://api.github.com/users/jerrypeng/events{/privacy}","received_events_url":"https://api.github.com/users/jerrypeng/received_events","type":"User","site_admin":false},"repo":{"id":37741458,"name":"storm","full_name":"jerrypeng/storm","owner":{"login":"jerrypeng","id":3613359,"avatar_url":"https://avatars.githubusercontent.com/u/3613359?v=3","gravatar_id":"","url":"https://api.github.com/users/jerrypeng","html_url":"https://github.com/jerrypeng","followers_url":"https://api.github.com/users/jerrypeng/followers","following_url":"https://api.github.com/users/jerrypeng/following{/other_user}","gists_url":"https://api.github.com/users/jerrypeng/gists{/gist_id}","starred_url":"https://api.github.com/users/jerrypeng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jerrypeng/subscriptions","organizations_url":"https://api.github.com/users/jerrypeng/orgs","repos_url":"https://api.github.com/users/jerrypeng/repos","events_url":"https://api.github.com/users/jerrypeng/events{/privacy}","received_events_url":"https://api.github.com/users/jerrypeng/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jerrypeng/storm","description":"Mirror of Apache Storm","fork":true,"url":"https://api.github.com/repos/jerrypeng/storm","forks_url":"https://api.github.com/repos/jerrypeng/storm/forks","keys_url":"https://api.github.com/repos/jerrypeng/storm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jerrypeng/storm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jerrypeng/storm/teams","hooks_url":"https://api.github.com/repos/jerrypeng/storm/hooks","issue_events_url":"https://api.github.com/repos/jerrypeng/storm/issues/events{/number}","events_url":"https://api.github.com/repos/jerrypeng/storm/events","assignees_url":"https://api.github.com/repos/jerrypeng/storm/assignees{/user}","branches_url":"https://api.github.com/repos/jerrypeng/storm/branches{/branch}","tags_url":"https://api.github.com/repos/jerrypeng/storm/tags","blobs_url":"https://api.github.com/repos/jerrypeng/storm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jerrypeng/storm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jerrypeng/storm/git/refs{/sha}","trees_url":"https://api.github.com/repos/jerrypeng/storm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jerrypeng/storm/statuses/{sha}","languages_url":"https://api.github.com/repos/jerrypeng/storm/languages","stargazers_url":"https://api.github.com/repos/jerrypeng/storm/stargazers","contributors_url":"https://api.github.com/repos/jerrypeng/storm/contributors","subscribers_url":"https://api.github.com/repos/jerrypeng/storm/subscribers","subscription_url":"https://api.github.com/repos/jerrypeng/storm/subscription","commits_url":"https://api.github.com/repos/jerrypeng/storm/commits{/sha}","git_commits_url":"https://api.github.com/repos/jerrypeng/storm/git/commits{/sha}","comments_url":"https://api.github.com/repos/jerrypeng/storm/comments{/number}","issue_comment_url":"https://api.github.com/repos/jerrypeng/storm/issues/comments{/number}","contents_url":"https://api.github.com/repos/jerrypeng/storm/contents/{+path}","compare_url":"https://api.github.com/repos/jerrypeng/storm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jerrypeng/storm/merges","archive_url":"https://api.github.com/repos/jerrypeng/storm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jerrypeng/storm/downloads","issues_url":"https://api.github.com/repos/jerrypeng/storm/issues{/number}","pulls_url":"https://api.github.com/repos/jerrypeng/storm/pulls{/number}","milestones_url":"https://api.github.com/repos/jerrypeng/storm/milestones{/number}","notifications_url":"https://api.github.com/repos/jerrypeng/storm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jerrypeng/storm/labels{/name}","releases_url":"https://api.github.com/repos/jerrypeng/storm/releases{/id}","created_at":"2015-06-19T19:23:06Z","updated_at":"2015-10-04T16:30:13Z","pushed_at":"2015-10-07T03:53:04Z","git_url":"git://github.com/jerrypeng/storm.git","ssh_url":"git@github.com:jerrypeng/storm.git","clone_url":"https://github.com/jerrypeng/storm.git","svn_url":"https://github.com/jerrypeng/storm","homepage":null,"size":19778,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"apache:master","ref":"master","sha":"1822491bc2889765454e456f56125fd7912c1043","user":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"repo":{"id":14135470,"name":"storm","full_name":"apache/storm","owner":{"login":"apache","id":47359,"avatar_url":"https://avatars.githubusercontent.com/u/47359?v=3","gravatar_id":"","url":"https://api.github.com/users/apache","html_url":"https://github.com/apache","followers_url":"https://api.github.com/users/apache/followers","following_url":"https://api.github.com/users/apache/following{/other_user}","gists_url":"https://api.github.com/users/apache/gists{/gist_id}","starred_url":"https://api.github.com/users/apache/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/apache/subscriptions","organizations_url":"https://api.github.com/users/apache/orgs","repos_url":"https://api.github.com/users/apache/repos","events_url":"https://api.github.com/users/apache/events{/privacy}","received_events_url":"https://api.github.com/users/apache/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/apache/storm","description":"Mirror of Apache Storm","fork":false,"url":"https://api.github.com/repos/apache/storm","forks_url":"https://api.github.com/repos/apache/storm/forks","keys_url":"https://api.github.com/repos/apache/storm/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/storm/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/storm/teams","hooks_url":"https://api.github.com/repos/apache/storm/hooks","issue_events_url":"https://api.github.com/repos/apache/storm/issues/events{/number}","events_url":"https://api.github.com/repos/apache/storm/events","assignees_url":"https://api.github.com/repos/apache/storm/assignees{/user}","branches_url":"https://api.github.com/repos/apache/storm/branches{/branch}","tags_url":"https://api.github.com/repos/apache/storm/tags","blobs_url":"https://api.github.com/repos/apache/storm/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/storm/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/storm/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/storm/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/storm/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/storm/languages","stargazers_url":"https://api.github.com/repos/apache/storm/stargazers","contributors_url":"https://api.github.com/repos/apache/storm/contributors","subscribers_url":"https://api.github.com/repos/apache/storm/subscribers","subscription_url":"https://api.github.com/repos/apache/storm/subscription","commits_url":"https://api.github.com/repos/apache/storm/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/storm/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/storm/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/storm/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/storm/contents/{+path}","compare_url":"https://api.github.com/repos/apache/storm/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/storm/merges","archive_url":"https://api.github.com/repos/apache/storm/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/storm/downloads","issues_url":"https://api.github.com/repos/apache/storm/issues{/number}","pulls_url":"https://api.github.com/repos/apache/storm/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/storm/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/storm/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/storm/labels{/name}","releases_url":"https://api.github.com/repos/apache/storm/releases{/id}","created_at":"2013-11-05T08:00:14Z","updated_at":"2015-10-07T03:23:32Z","pushed_at":"2015-10-07T07:42:24Z","git_url":"git://github.com/apache/storm.git","ssh_url":"git@github.com:apache/storm.git","clone_url":"https://github.com/apache/storm.git","svn_url":"https://github.com/apache/storm","homepage":null,"size":834088,"stargazers_count":2416,"watchers_count":2416,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":1750,"mirror_url":"git://git.apache.org/incubator-storm.git","open_issues_count":86,"forks":1750,"open_issues":86,"watchers":2416,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/storm/pulls/746"},"html":{"href":"https://github.com/apache/storm/pull/746"},"issue":{"href":"https://api.github.com/repos/apache/storm/issues/746"},"comments":{"href":"https://api.github.com/repos/apache/storm/issues/746/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/storm/pulls/746/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/storm/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/storm/pulls/746/commits"},"statuses":{"href":"https://api.github.com/repos/apache/storm/statuses/210d1ebbd69a3967487291d8c7b4418deab83435"}}}}