{"action":"created","issue":{"url":"https://api.github.com/repos/addthis/hydra/issues/184","labels_url":"https://api.github.com/repos/addthis/hydra/issues/184/labels{/name}","comments_url":"https://api.github.com/repos/addthis/hydra/issues/184/comments","events_url":"https://api.github.com/repos/addthis/hydra/issues/184/events","html_url":"https://github.com/addthis/hydra/pull/184","id":102138440,"number":184,"title":"Provide a unsafe tree implementation (non-concurrent) for improved single thread performance","user":{"login":"abramsm","id":24427,"avatar_url":"https://avatars.githubusercontent.com/u/24427?v=3","gravatar_id":"","url":"https://api.github.com/users/abramsm","html_url":"https://github.com/abramsm","followers_url":"https://api.github.com/users/abramsm/followers","following_url":"https://api.github.com/users/abramsm/following{/other_user}","gists_url":"https://api.github.com/users/abramsm/gists{/gist_id}","starred_url":"https://api.github.com/users/abramsm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abramsm/subscriptions","organizations_url":"https://api.github.com/users/abramsm/orgs","repos_url":"https://api.github.com/users/abramsm/repos","events_url":"https://api.github.com/users/abramsm/events{/privacy}","received_events_url":"https://api.github.com/users/abramsm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-08-20T13:27:22Z","updated_at":"2015-08-26T19:37:39Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/addthis/hydra/pulls/184","html_url":"https://github.com/addthis/hydra/pull/184","diff_url":"https://github.com/addthis/hydra/pull/184.diff","patch_url":"https://github.com/addthis/hydra/pull/184.patch"},"body":"Hydra jobs that use a single thread still pay a high price for concurrency in Hydra.  This PR provides an optional path that uses unsafe data structures which should allow for improved performance in single thread operation. \r\n\r\nThe default behavior of jobs with this PR will be exactly the same as they are today.  If the job configuration sets threads=1 and concurrentTree=false then the non-concurrent codebase will be used.  If this proves successful we may consider making non concurrent the default behavior and allow job developers to move to a concurrent environment on an as needed basis.\r\n\r\nMy testing in hercules has shown that most CPU bound 2 threaded jobs are out performed by single threaded non concurrent configurations.  Jobs with a heavy amount of IO tend to perform better with a multi threaded configuration.\r\n\r\nComments welcome."},"comment":{"url":"https://api.github.com/repos/addthis/hydra/issues/comments/135148493","html_url":"https://github.com/addthis/hydra/pull/184#issuecomment-135148493","issue_url":"https://api.github.com/repos/addthis/hydra/issues/184","id":135148493,"user":{"login":"tea-dragon","id":2219887,"avatar_url":"https://avatars.githubusercontent.com/u/2219887?v=3","gravatar_id":"","url":"https://api.github.com/users/tea-dragon","html_url":"https://github.com/tea-dragon","followers_url":"https://api.github.com/users/tea-dragon/followers","following_url":"https://api.github.com/users/tea-dragon/following{/other_user}","gists_url":"https://api.github.com/users/tea-dragon/gists{/gist_id}","starred_url":"https://api.github.com/users/tea-dragon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tea-dragon/subscriptions","organizations_url":"https://api.github.com/users/tea-dragon/orgs","repos_url":"https://api.github.com/users/tea-dragon/repos","events_url":"https://api.github.com/users/tea-dragon/events{/privacy}","received_events_url":"https://api.github.com/users/tea-dragon/received_events","type":"User","site_admin":false},"created_at":"2015-08-26T19:37:39Z","updated_at":"2015-08-26T19:37:39Z","body":"Now seems as good as time as any, although I admit I would be more hesitant if any implied future work wasn't automatically considered worthwhile."}}