{"action":"created","comment":{"url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/comments/47442315","id":47442315,"diff_hunk":"@@ -124,6 +129,26 @@ spark {\n akka {\n   # Use SLF4J/logback for deployed environment logging\n   loggers = [\"akka.event.slf4j.Slf4jLogger\"]\n+\n+  actor {\n+    provider = \"akka.cluster.ClusterActorRefProvider\"","path":"job-server/src/main/resources/application.conf","position":25,"original_position":25,"commit_id":"ca7fb1527d753151464871fd718e5f02e37031bd","original_commit_id":"ca7fb1527d753151464871fd718e5f02e37031bd","user":{"login":"velvia","id":1062875,"avatar_url":"https://avatars.githubusercontent.com/u/1062875?v=3","gravatar_id":"","url":"https://api.github.com/users/velvia","html_url":"https://github.com/velvia","followers_url":"https://api.github.com/users/velvia/followers","following_url":"https://api.github.com/users/velvia/following{/other_user}","gists_url":"https://api.github.com/users/velvia/gists{/gist_id}","starred_url":"https://api.github.com/users/velvia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/velvia/subscriptions","organizations_url":"https://api.github.com/users/velvia/orgs","repos_url":"https://api.github.com/users/velvia/repos","events_url":"https://api.github.com/users/velvia/events{/privacy}","received_events_url":"https://api.github.com/users/velvia/received_events","type":"User","site_admin":false},"body":"You can't know at startup time how many contexts a user will spin up, but there is a flag to turn this off. \n\n-Evan\n\"Never doubt that a small group of thoughtful, committed citizens can change the world\" - M. Mead\n\n> On Dec 13, 2015, at 12:42 AM, Helena Edelson <notifications@github.com> wrote:\n> \n> In job-server/src/main/resources/application.conf:\n> \n> > @@ -124,6 +129,26 @@ spark {\n> >  akka {\n> >    # Use SLF4J/logback for deployed environment logging\n> >    loggers = [\"akka.event.slf4j.Slf4jLogger\"]\n> > +\n> > +  actor {\n> > +    provider = \"akka.cluster.ClusterActorRefProvider\"\n> Always spin up a cluster even for those not needed > 1 context? My one thought is it's a lot of chatter for not needing this new feature, unless leveraging things like leader election etc regardless :)\n> \n> —\n> Reply to this email directly or view it on GitHub.\n> \n","created_at":"2015-12-13T09:32:26Z","updated_at":"2015-12-13T09:32:26Z","html_url":"https://github.com/spark-jobserver/spark-jobserver/pull/345#discussion_r47442315","pull_request_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345","_links":{"self":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/comments/47442315"},"html":{"href":"https://github.com/spark-jobserver/spark-jobserver/pull/345#discussion_r47442315"},"pull_request":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345"}}},"pull_request":{"url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345","id":53494348,"html_url":"https://github.com/spark-jobserver/spark-jobserver/pull/345","diff_url":"https://github.com/spark-jobserver/spark-jobserver/pull/345.diff","patch_url":"https://github.com/spark-jobserver/spark-jobserver/pull/345.patch","issue_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/345","number":345,"state":"open","locked":false,"title":"Separate JVM per SparkContext","user":{"login":"velvia","id":1062875,"avatar_url":"https://avatars.githubusercontent.com/u/1062875?v=3","gravatar_id":"","url":"https://api.github.com/users/velvia","html_url":"https://github.com/velvia","followers_url":"https://api.github.com/users/velvia/followers","following_url":"https://api.github.com/users/velvia/following{/other_user}","gists_url":"https://api.github.com/users/velvia/gists{/gist_id}","starred_url":"https://api.github.com/users/velvia/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/velvia/subscriptions","organizations_url":"https://api.github.com/users/velvia/orgs","repos_url":"https://api.github.com/users/velvia/repos","events_url":"https://api.github.com/users/velvia/events{/privacy}","received_events_url":"https://api.github.com/users/velvia/received_events","type":"User","site_admin":false},"body":"This is the long awaited continuation of the original PR #120 to fork off a separate process per SparkContext.   One of the most requested features and makes the job server officially much more scalable.   You can see #120 for the history, but here is a very brief summary:\r\n\r\n- If the `spark.jobserver.context-per-jvm` setting is set to `true`, then the JobServer will use `AkkaClusterSupervisorActor`, which forks off a separate JVM to run each `JobManagerActor`, using the `manager_start.sh` script.  If it is false, then it uses the old `LocalContextSupervisorActor`.\r\n- In `application.conf`, the above setting is set to false, to enable `sbt reStart` to run without forking JVM for ease of local development\r\n- In the default deployment configs, this property is set to true, so that by default deployed SJS will use this setting\r\n- The forked JVM talks back to the SJS WebApi via Akka cluster / remote actors.  Right now this is all local, so a new port should not need to be opened.\r\n- The forked JVM does not save directly to the database, but rather sends updates to a `JobDAOActor`.\r\n\r\nCurrently almost all changes in master, including Spark 1.5.2 compatibility, are merged into this branch, and the tests *should* be all passing.  Please test this out in different environments!","created_at":"2015-12-13T07:00:09Z","updated_at":"2015-12-13T09:32:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"141799bd9218fd061cb7fb4d9cf5553cd472f941","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345/commits","review_comments_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345/comments","review_comment_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/345/comments","statuses_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/statuses/ca7fb1527d753151464871fd718e5f02e37031bd","head":{"label":"spark-jobserver:feature/context-per-jvm","ref":"feature/context-per-jvm","sha":"ca7fb1527d753151464871fd718e5f02e37031bd","user":{"login":"spark-jobserver","id":8494302,"avatar_url":"https://avatars.githubusercontent.com/u/8494302?v=3","gravatar_id":"","url":"https://api.github.com/users/spark-jobserver","html_url":"https://github.com/spark-jobserver","followers_url":"https://api.github.com/users/spark-jobserver/followers","following_url":"https://api.github.com/users/spark-jobserver/following{/other_user}","gists_url":"https://api.github.com/users/spark-jobserver/gists{/gist_id}","starred_url":"https://api.github.com/users/spark-jobserver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spark-jobserver/subscriptions","organizations_url":"https://api.github.com/users/spark-jobserver/orgs","repos_url":"https://api.github.com/users/spark-jobserver/repos","events_url":"https://api.github.com/users/spark-jobserver/events{/privacy}","received_events_url":"https://api.github.com/users/spark-jobserver/received_events","type":"Organization","site_admin":false},"repo":{"id":23205911,"name":"spark-jobserver","full_name":"spark-jobserver/spark-jobserver","owner":{"login":"spark-jobserver","id":8494302,"avatar_url":"https://avatars.githubusercontent.com/u/8494302?v=3","gravatar_id":"","url":"https://api.github.com/users/spark-jobserver","html_url":"https://github.com/spark-jobserver","followers_url":"https://api.github.com/users/spark-jobserver/followers","following_url":"https://api.github.com/users/spark-jobserver/following{/other_user}","gists_url":"https://api.github.com/users/spark-jobserver/gists{/gist_id}","starred_url":"https://api.github.com/users/spark-jobserver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spark-jobserver/subscriptions","organizations_url":"https://api.github.com/users/spark-jobserver/orgs","repos_url":"https://api.github.com/users/spark-jobserver/repos","events_url":"https://api.github.com/users/spark-jobserver/events{/privacy}","received_events_url":"https://api.github.com/users/spark-jobserver/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spark-jobserver/spark-jobserver","description":"REST job server for Apache Spark","fork":false,"url":"https://api.github.com/repos/spark-jobserver/spark-jobserver","forks_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/forks","keys_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/teams","hooks_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/hooks","issue_events_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/events{/number}","events_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/events","assignees_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/assignees{/user}","branches_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/branches{/branch}","tags_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/tags","blobs_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/refs{/sha}","trees_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/statuses/{sha}","languages_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/languages","stargazers_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/stargazers","contributors_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/contributors","subscribers_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/subscribers","subscription_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/subscription","commits_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/commits{/sha}","git_commits_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/commits{/sha}","comments_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/comments{/number}","issue_comment_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/comments{/number}","contents_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/contents/{+path}","compare_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/merges","archive_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/downloads","issues_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues{/number}","pulls_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls{/number}","milestones_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/milestones{/number}","notifications_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/labels{/name}","releases_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/releases{/id}","created_at":"2014-08-21T23:07:47Z","updated_at":"2015-12-12T19:09:06Z","pushed_at":"2015-12-13T07:00:10Z","git_url":"git://github.com/spark-jobserver/spark-jobserver.git","ssh_url":"git@github.com:spark-jobserver/spark-jobserver.git","clone_url":"https://github.com/spark-jobserver/spark-jobserver.git","svn_url":"https://github.com/spark-jobserver/spark-jobserver","homepage":"","size":2271,"stargazers_count":733,"watchers_count":733,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":299,"mirror_url":null,"open_issues_count":62,"forks":299,"open_issues":62,"watchers":733,"default_branch":"master"}},"base":{"label":"spark-jobserver:master","ref":"master","sha":"b71f0f4c17b80a9ef1f8af3802e20950b402dc66","user":{"login":"spark-jobserver","id":8494302,"avatar_url":"https://avatars.githubusercontent.com/u/8494302?v=3","gravatar_id":"","url":"https://api.github.com/users/spark-jobserver","html_url":"https://github.com/spark-jobserver","followers_url":"https://api.github.com/users/spark-jobserver/followers","following_url":"https://api.github.com/users/spark-jobserver/following{/other_user}","gists_url":"https://api.github.com/users/spark-jobserver/gists{/gist_id}","starred_url":"https://api.github.com/users/spark-jobserver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spark-jobserver/subscriptions","organizations_url":"https://api.github.com/users/spark-jobserver/orgs","repos_url":"https://api.github.com/users/spark-jobserver/repos","events_url":"https://api.github.com/users/spark-jobserver/events{/privacy}","received_events_url":"https://api.github.com/users/spark-jobserver/received_events","type":"Organization","site_admin":false},"repo":{"id":23205911,"name":"spark-jobserver","full_name":"spark-jobserver/spark-jobserver","owner":{"login":"spark-jobserver","id":8494302,"avatar_url":"https://avatars.githubusercontent.com/u/8494302?v=3","gravatar_id":"","url":"https://api.github.com/users/spark-jobserver","html_url":"https://github.com/spark-jobserver","followers_url":"https://api.github.com/users/spark-jobserver/followers","following_url":"https://api.github.com/users/spark-jobserver/following{/other_user}","gists_url":"https://api.github.com/users/spark-jobserver/gists{/gist_id}","starred_url":"https://api.github.com/users/spark-jobserver/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spark-jobserver/subscriptions","organizations_url":"https://api.github.com/users/spark-jobserver/orgs","repos_url":"https://api.github.com/users/spark-jobserver/repos","events_url":"https://api.github.com/users/spark-jobserver/events{/privacy}","received_events_url":"https://api.github.com/users/spark-jobserver/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spark-jobserver/spark-jobserver","description":"REST job server for Apache Spark","fork":false,"url":"https://api.github.com/repos/spark-jobserver/spark-jobserver","forks_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/forks","keys_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/teams","hooks_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/hooks","issue_events_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/events{/number}","events_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/events","assignees_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/assignees{/user}","branches_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/branches{/branch}","tags_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/tags","blobs_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/refs{/sha}","trees_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/statuses/{sha}","languages_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/languages","stargazers_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/stargazers","contributors_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/contributors","subscribers_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/subscribers","subscription_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/subscription","commits_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/commits{/sha}","git_commits_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/git/commits{/sha}","comments_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/comments{/number}","issue_comment_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/comments{/number}","contents_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/contents/{+path}","compare_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/merges","archive_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/downloads","issues_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues{/number}","pulls_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls{/number}","milestones_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/milestones{/number}","notifications_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/labels{/name}","releases_url":"https://api.github.com/repos/spark-jobserver/spark-jobserver/releases{/id}","created_at":"2014-08-21T23:07:47Z","updated_at":"2015-12-12T19:09:06Z","pushed_at":"2015-12-13T07:00:10Z","git_url":"git://github.com/spark-jobserver/spark-jobserver.git","ssh_url":"git@github.com:spark-jobserver/spark-jobserver.git","clone_url":"https://github.com/spark-jobserver/spark-jobserver.git","svn_url":"https://github.com/spark-jobserver/spark-jobserver","homepage":"","size":2271,"stargazers_count":733,"watchers_count":733,"language":"Scala","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":299,"mirror_url":null,"open_issues_count":62,"forks":299,"open_issues":62,"watchers":733,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345"},"html":{"href":"https://github.com/spark-jobserver/spark-jobserver/pull/345"},"issue":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/345"},"comments":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/issues/345/comments"},"review_comments":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345/comments"},"review_comment":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/pulls/345/commits"},"statuses":{"href":"https://api.github.com/repos/spark-jobserver/spark-jobserver/statuses/ca7fb1527d753151464871fd718e5f02e37031bd"}}}}