{"action":"created","issue":{"url":"https://api.github.com/repos/Alluxio/alluxio/issues/3994","repository_url":"https://api.github.com/repos/Alluxio/alluxio","labels_url":"https://api.github.com/repos/Alluxio/alluxio/issues/3994/labels{/name}","comments_url":"https://api.github.com/repos/Alluxio/alluxio/issues/3994/comments","events_url":"https://api.github.com/repos/Alluxio/alluxio/issues/3994/events","html_url":"https://github.com/Alluxio/alluxio/pull/3994","id":180493300,"number":3994,"title":"[ALLUXIO-2236] Improve heartbeat concurrency","user":{"login":"peisun1115","id":18294241,"avatar_url":"https://avatars.githubusercontent.com/u/18294241?v=3","gravatar_id":"","url":"https://api.github.com/users/peisun1115","html_url":"https://github.com/peisun1115","followers_url":"https://api.github.com/users/peisun1115/followers","following_url":"https://api.github.com/users/peisun1115/following{/other_user}","gists_url":"https://api.github.com/users/peisun1115/gists{/gist_id}","starred_url":"https://api.github.com/users/peisun1115/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peisun1115/subscriptions","organizations_url":"https://api.github.com/users/peisun1115/orgs","repos_url":"https://api.github.com/users/peisun1115/repos","events_url":"https://api.github.com/users/peisun1115/events{/privacy}","received_events_url":"https://api.github.com/users/peisun1115/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":14,"created_at":"2016-10-02T03:39:05Z","updated_at":"2016-10-04T00:45:20Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Alluxio/alluxio/pulls/3994","html_url":"https://github.com/Alluxio/alluxio/pull/3994","diff_url":"https://github.com/Alluxio/alluxio/pull/3994.diff","patch_url":"https://github.com/Alluxio/alluxio/pull/3994.patch"},"body":"https://alluxio.atlassian.net/browse/ALLUXIO-2236\r\n\r\n1. \r\n Do not consume one thread for every session.\r\n   If we have more than 128 (number of threads used to do block worker session heartbeat), some heartbeats will not start till there are threads available.  This PR changes the implementation to use ScheduledExecutorService to schedule the heartbeats to avoid consuming one thread per session. A followup PR is to refactor the code to move all heartbeat to this mode.\r\n\r\n2. \r\nFix a bug related to Thead.interrupted() which clears the interrupt signal.\r\nhbFuture1 = executor.submit(Heartbeat1);\r\nhbFuture1.cancel(true);  // This has the chance to interrupt the thread that runs Heartbeat1 if heartbeat1 is blocked on sleep(), await etc. Then it throws an InterruptedException. \r\nhbFuture2 = executor.submit(Heartbeat2); // This heartbeat will immediately return and do nothing if it runs in the same thread that ran Heartbeat1."},"comment":{"url":"https://api.github.com/repos/Alluxio/alluxio/issues/comments/251267362","html_url":"https://github.com/Alluxio/alluxio/pull/3994#issuecomment-251267362","issue_url":"https://api.github.com/repos/Alluxio/alluxio/issues/3994","id":251267362,"user":{"login":"AmplabJenkins","id":4031291,"avatar_url":"https://avatars.githubusercontent.com/u/4031291?v=3","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2016-10-04T00:45:20Z","updated_at":"2016-10-04T00:45:20Z","body":"Test FAILed.\nRefer to this link for build results (access rights to CI server needed): \nhttps://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/11595/<h2>Failed Tests: <span class='status-failure'>1</span></h2><h3><a name='org.alluxio:alluxio-tests' /><a href='https://amplab.cs.berkeley.edu/jenkins/job/Alluxio-Pull-Request-Builder/11595/org.alluxio$alluxio-tests/testReport'>org.alluxio:alluxio-tests</a>: <span class='status-failure'>1</span></h3><ul><li><a href='https://amplab.cs.berkeley.edu/jenkins/job/Alluxio-Pull-Request-Builder/11595/org.alluxio$alluxio-tests/testReport/alluxio.master.file/FileSystemMasterIntegrationTest/clientFileInfoDirectory/'><strong>alluxio.master.file.FileSystemMasterIntegrationTest.clientFileInfoDirectory</strong></a></li></ul>\nTest FAILed."}}
{"actor":{"display_login":"AmplabJenkins"}}