{"action":"created","comment":{"url":"https://api.github.com/repos/mit-pdos/noria/pulls/comments/233154684","pull_request_review_id":174502624,"id":233154684,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMzE1NDY4NA==","diff_hunk":"@@ -1117,10 +1124,11 @@ impl ControllerInner {\n             .count()\n             > 0\n         {\n-            // This query leaf node has children -- typically, these are readers, but they can\n-            // also be egress nodes or other, dependent queries. If the reader has replicas, we\n-            // are looking for a single egress node that connects the leaf to replicas in other\n-            // domains.\n+            // This query leaf node has children -- egress nodes or other, dependent queries.\n+            // Typically, we are looking for a single egress node that connects the leaf to\n+            // readers in other domains.\n+            // TODO: if each reader (including the 1st) definitely gets its own domain, this\n+            // code can be a lot simpler.","path":"noria-server/src/controller/inner.rs","position":187,"original_position":56,"commit_id":"94c32257b88312a4cac2064c26eb0b378a49e55d","original_commit_id":"94c32257b88312a4cac2064c26eb0b378a49e55d","user":{"login":"jonhoo","id":176295,"node_id":"MDQ6VXNlcjE3NjI5NQ==","avatar_url":"https://avatars2.githubusercontent.com/u/176295?v=4","gravatar_id":"","url":"https://api.github.com/users/jonhoo","html_url":"https://github.com/jonhoo","followers_url":"https://api.github.com/users/jonhoo/followers","following_url":"https://api.github.com/users/jonhoo/following{/other_user}","gists_url":"https://api.github.com/users/jonhoo/gists{/gist_id}","starred_url":"https://api.github.com/users/jonhoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jonhoo/subscriptions","organizations_url":"https://api.github.com/users/jonhoo/orgs","repos_url":"https://api.github.com/users/jonhoo/repos","events_url":"https://api.github.com/users/jonhoo/events{/privacy}","received_events_url":"https://api.github.com/users/jonhoo/received_events","type":"User","site_admin":false},"body":"How much is \"a lot\"? I think we should favor simplicity then.","created_at":"2018-11-13T17:50:45Z","updated_at":"2018-11-13T17:50:45Z","html_url":"https://github.com/mit-pdos/noria/pull/113#discussion_r233154684","pull_request_url":"https://api.github.com/repos/mit-pdos/noria/pulls/113","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/comments/233154684"},"html":{"href":"https://github.com/mit-pdos/noria/pull/113#discussion_r233154684"},"pull_request":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/113"}}},"pull_request":{"url":"https://api.github.com/repos/mit-pdos/noria/pulls/113","id":228050230,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4MDUwMjMw","html_url":"https://github.com/mit-pdos/noria/pull/113","diff_url":"https://github.com/mit-pdos/noria/pull/113.diff","patch_url":"https://github.com/mit-pdos/noria/pull/113.patch","issue_url":"https://api.github.com/repos/mit-pdos/noria/issues/113","number":113,"state":"open","locked":false,"title":"Static reader node replication","user":{"login":"ygina","id":7017404,"node_id":"MDQ6VXNlcjcwMTc0MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017404?v=4","gravatar_id":"","url":"https://api.github.com/users/ygina","html_url":"https://github.com/ygina","followers_url":"https://api.github.com/users/ygina/followers","following_url":"https://api.github.com/users/ygina/following{/other_user}","gists_url":"https://api.github.com/users/ygina/gists{/gist_id}","starred_url":"https://api.github.com/users/ygina/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ygina/subscriptions","organizations_url":"https://api.github.com/users/ygina/orgs","repos_url":"https://api.github.com/users/ygina/repos","events_url":"https://api.github.com/users/ygina/events{/privacy}","received_events_url":"https://api.github.com/users/ygina/received_events","type":"User","site_admin":false},"body":"Place replicas in separate domains, including when there is only 1 replica. Place these domains round robin on separate workers. (`migrate/mod.rs`)\r\nSupport for removing all reader replicas along with a view. (`controller/inner.rs`)\r\nObtain views to replicas round robin. CLI options to set replicas and reader threads.\r\n\r\n**Benchmarks:** 16 client threads and cores, 4 Noria servers with 1 core per server, 1 write every 100 on the vote benchmark. As number of replicas increases, Noria can handle a greater number of ops/s before falling behind.\r\n**Tests:** Same as before, with updated node counts to account for additional replicas. One new test to check that view actually returns different replicas, and that writes are reflected in these replicas.\r\n","created_at":"2018-11-02T20:25:43Z","updated_at":"2018-11-13T17:50:45Z","closed_at":null,"merged_at":null,"merge_commit_sha":"99a4bb76facc1ec4b5b47c64081efe034f4247c8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"ms705","id":192315,"node_id":"MDQ6VXNlcjE5MjMxNQ==","avatar_url":"https://avatars3.githubusercontent.com/u/192315?v=4","gravatar_id":"","url":"https://api.github.com/users/ms705","html_url":"https://github.com/ms705","followers_url":"https://api.github.com/users/ms705/followers","following_url":"https://api.github.com/users/ms705/following{/other_user}","gists_url":"https://api.github.com/users/ms705/gists{/gist_id}","starred_url":"https://api.github.com/users/ms705/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ms705/subscriptions","organizations_url":"https://api.github.com/users/ms705/orgs","repos_url":"https://api.github.com/users/ms705/repos","events_url":"https://api.github.com/users/ms705/events{/privacy}","received_events_url":"https://api.github.com/users/ms705/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/mit-pdos/noria/pulls/113/commits","review_comments_url":"https://api.github.com/repos/mit-pdos/noria/pulls/113/comments","review_comment_url":"https://api.github.com/repos/mit-pdos/noria/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mit-pdos/noria/issues/113/comments","statuses_url":"https://api.github.com/repos/mit-pdos/noria/statuses/94c32257b88312a4cac2064c26eb0b378a49e55d","head":{"label":"mit-pdos:replication","ref":"replication","sha":"94c32257b88312a4cac2064c26eb0b378a49e55d","user":{"login":"mit-pdos","id":12404246,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDA0MjQ2","avatar_url":"https://avatars1.githubusercontent.com/u/12404246?v=4","gravatar_id":"","url":"https://api.github.com/users/mit-pdos","html_url":"https://github.com/mit-pdos","followers_url":"https://api.github.com/users/mit-pdos/followers","following_url":"https://api.github.com/users/mit-pdos/following{/other_user}","gists_url":"https://api.github.com/users/mit-pdos/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-pdos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-pdos/subscriptions","organizations_url":"https://api.github.com/users/mit-pdos/orgs","repos_url":"https://api.github.com/users/mit-pdos/repos","events_url":"https://api.github.com/users/mit-pdos/events{/privacy}","received_events_url":"https://api.github.com/users/mit-pdos/received_events","type":"Organization","site_admin":false},"repo":{"id":61160698,"node_id":"MDEwOlJlcG9zaXRvcnk2MTE2MDY5OA==","name":"noria","full_name":"mit-pdos/noria","private":false,"owner":{"login":"mit-pdos","id":12404246,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDA0MjQ2","avatar_url":"https://avatars1.githubusercontent.com/u/12404246?v=4","gravatar_id":"","url":"https://api.github.com/users/mit-pdos","html_url":"https://github.com/mit-pdos","followers_url":"https://api.github.com/users/mit-pdos/followers","following_url":"https://api.github.com/users/mit-pdos/following{/other_user}","gists_url":"https://api.github.com/users/mit-pdos/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-pdos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-pdos/subscriptions","organizations_url":"https://api.github.com/users/mit-pdos/orgs","repos_url":"https://api.github.com/users/mit-pdos/repos","events_url":"https://api.github.com/users/mit-pdos/events{/privacy}","received_events_url":"https://api.github.com/users/mit-pdos/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mit-pdos/noria","description":"Dynamically changing, partially-stateful data-flow for web application backends.","fork":false,"url":"https://api.github.com/repos/mit-pdos/noria","forks_url":"https://api.github.com/repos/mit-pdos/noria/forks","keys_url":"https://api.github.com/repos/mit-pdos/noria/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mit-pdos/noria/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mit-pdos/noria/teams","hooks_url":"https://api.github.com/repos/mit-pdos/noria/hooks","issue_events_url":"https://api.github.com/repos/mit-pdos/noria/issues/events{/number}","events_url":"https://api.github.com/repos/mit-pdos/noria/events","assignees_url":"https://api.github.com/repos/mit-pdos/noria/assignees{/user}","branches_url":"https://api.github.com/repos/mit-pdos/noria/branches{/branch}","tags_url":"https://api.github.com/repos/mit-pdos/noria/tags","blobs_url":"https://api.github.com/repos/mit-pdos/noria/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mit-pdos/noria/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mit-pdos/noria/git/refs{/sha}","trees_url":"https://api.github.com/repos/mit-pdos/noria/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mit-pdos/noria/statuses/{sha}","languages_url":"https://api.github.com/repos/mit-pdos/noria/languages","stargazers_url":"https://api.github.com/repos/mit-pdos/noria/stargazers","contributors_url":"https://api.github.com/repos/mit-pdos/noria/contributors","subscribers_url":"https://api.github.com/repos/mit-pdos/noria/subscribers","subscription_url":"https://api.github.com/repos/mit-pdos/noria/subscription","commits_url":"https://api.github.com/repos/mit-pdos/noria/commits{/sha}","git_commits_url":"https://api.github.com/repos/mit-pdos/noria/git/commits{/sha}","comments_url":"https://api.github.com/repos/mit-pdos/noria/comments{/number}","issue_comment_url":"https://api.github.com/repos/mit-pdos/noria/issues/comments{/number}","contents_url":"https://api.github.com/repos/mit-pdos/noria/contents/{+path}","compare_url":"https://api.github.com/repos/mit-pdos/noria/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mit-pdos/noria/merges","archive_url":"https://api.github.com/repos/mit-pdos/noria/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mit-pdos/noria/downloads","issues_url":"https://api.github.com/repos/mit-pdos/noria/issues{/number}","pulls_url":"https://api.github.com/repos/mit-pdos/noria/pulls{/number}","milestones_url":"https://api.github.com/repos/mit-pdos/noria/milestones{/number}","notifications_url":"https://api.github.com/repos/mit-pdos/noria/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mit-pdos/noria/labels{/name}","releases_url":"https://api.github.com/repos/mit-pdos/noria/releases{/id}","deployments_url":"https://api.github.com/repos/mit-pdos/noria/deployments","created_at":"2016-06-14T22:43:25Z","updated_at":"2018-11-12T20:37:45Z","pushed_at":"2018-11-12T04:06:35Z","git_url":"git://github.com/mit-pdos/noria.git","ssh_url":"git@github.com:mit-pdos/noria.git","clone_url":"https://github.com/mit-pdos/noria.git","svn_url":"https://github.com/mit-pdos/noria","homepage":"","size":12239,"stargazers_count":447,"watchers_count":447,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":23,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":23,"open_issues":25,"watchers":447,"default_branch":"master"}},"base":{"label":"mit-pdos:master","ref":"master","sha":"52939f461b88787afd987f1ae203a286895f2955","user":{"login":"mit-pdos","id":12404246,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDA0MjQ2","avatar_url":"https://avatars1.githubusercontent.com/u/12404246?v=4","gravatar_id":"","url":"https://api.github.com/users/mit-pdos","html_url":"https://github.com/mit-pdos","followers_url":"https://api.github.com/users/mit-pdos/followers","following_url":"https://api.github.com/users/mit-pdos/following{/other_user}","gists_url":"https://api.github.com/users/mit-pdos/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-pdos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-pdos/subscriptions","organizations_url":"https://api.github.com/users/mit-pdos/orgs","repos_url":"https://api.github.com/users/mit-pdos/repos","events_url":"https://api.github.com/users/mit-pdos/events{/privacy}","received_events_url":"https://api.github.com/users/mit-pdos/received_events","type":"Organization","site_admin":false},"repo":{"id":61160698,"node_id":"MDEwOlJlcG9zaXRvcnk2MTE2MDY5OA==","name":"noria","full_name":"mit-pdos/noria","private":false,"owner":{"login":"mit-pdos","id":12404246,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNDA0MjQ2","avatar_url":"https://avatars1.githubusercontent.com/u/12404246?v=4","gravatar_id":"","url":"https://api.github.com/users/mit-pdos","html_url":"https://github.com/mit-pdos","followers_url":"https://api.github.com/users/mit-pdos/followers","following_url":"https://api.github.com/users/mit-pdos/following{/other_user}","gists_url":"https://api.github.com/users/mit-pdos/gists{/gist_id}","starred_url":"https://api.github.com/users/mit-pdos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mit-pdos/subscriptions","organizations_url":"https://api.github.com/users/mit-pdos/orgs","repos_url":"https://api.github.com/users/mit-pdos/repos","events_url":"https://api.github.com/users/mit-pdos/events{/privacy}","received_events_url":"https://api.github.com/users/mit-pdos/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/mit-pdos/noria","description":"Dynamically changing, partially-stateful data-flow for web application backends.","fork":false,"url":"https://api.github.com/repos/mit-pdos/noria","forks_url":"https://api.github.com/repos/mit-pdos/noria/forks","keys_url":"https://api.github.com/repos/mit-pdos/noria/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mit-pdos/noria/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mit-pdos/noria/teams","hooks_url":"https://api.github.com/repos/mit-pdos/noria/hooks","issue_events_url":"https://api.github.com/repos/mit-pdos/noria/issues/events{/number}","events_url":"https://api.github.com/repos/mit-pdos/noria/events","assignees_url":"https://api.github.com/repos/mit-pdos/noria/assignees{/user}","branches_url":"https://api.github.com/repos/mit-pdos/noria/branches{/branch}","tags_url":"https://api.github.com/repos/mit-pdos/noria/tags","blobs_url":"https://api.github.com/repos/mit-pdos/noria/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mit-pdos/noria/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mit-pdos/noria/git/refs{/sha}","trees_url":"https://api.github.com/repos/mit-pdos/noria/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mit-pdos/noria/statuses/{sha}","languages_url":"https://api.github.com/repos/mit-pdos/noria/languages","stargazers_url":"https://api.github.com/repos/mit-pdos/noria/stargazers","contributors_url":"https://api.github.com/repos/mit-pdos/noria/contributors","subscribers_url":"https://api.github.com/repos/mit-pdos/noria/subscribers","subscription_url":"https://api.github.com/repos/mit-pdos/noria/subscription","commits_url":"https://api.github.com/repos/mit-pdos/noria/commits{/sha}","git_commits_url":"https://api.github.com/repos/mit-pdos/noria/git/commits{/sha}","comments_url":"https://api.github.com/repos/mit-pdos/noria/comments{/number}","issue_comment_url":"https://api.github.com/repos/mit-pdos/noria/issues/comments{/number}","contents_url":"https://api.github.com/repos/mit-pdos/noria/contents/{+path}","compare_url":"https://api.github.com/repos/mit-pdos/noria/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mit-pdos/noria/merges","archive_url":"https://api.github.com/repos/mit-pdos/noria/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mit-pdos/noria/downloads","issues_url":"https://api.github.com/repos/mit-pdos/noria/issues{/number}","pulls_url":"https://api.github.com/repos/mit-pdos/noria/pulls{/number}","milestones_url":"https://api.github.com/repos/mit-pdos/noria/milestones{/number}","notifications_url":"https://api.github.com/repos/mit-pdos/noria/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mit-pdos/noria/labels{/name}","releases_url":"https://api.github.com/repos/mit-pdos/noria/releases{/id}","deployments_url":"https://api.github.com/repos/mit-pdos/noria/deployments","created_at":"2016-06-14T22:43:25Z","updated_at":"2018-11-12T20:37:45Z","pushed_at":"2018-11-12T04:06:35Z","git_url":"git://github.com/mit-pdos/noria.git","ssh_url":"git@github.com:mit-pdos/noria.git","clone_url":"https://github.com/mit-pdos/noria.git","svn_url":"https://github.com/mit-pdos/noria","homepage":"","size":12239,"stargazers_count":447,"watchers_count":447,"language":"Rust","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":23,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":23,"open_issues":25,"watchers":447,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/113"},"html":{"href":"https://github.com/mit-pdos/noria/pull/113"},"issue":{"href":"https://api.github.com/repos/mit-pdos/noria/issues/113"},"comments":{"href":"https://api.github.com/repos/mit-pdos/noria/issues/113/comments"},"review_comments":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/113/comments"},"review_comment":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mit-pdos/noria/pulls/113/commits"},"statuses":{"href":"https://api.github.com/repos/mit-pdos/noria/statuses/94c32257b88312a4cac2064c26eb0b378a49e55d"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"jonhoo"}}