{"action":"created","comment":{"url":"https://api.github.com/repos/apache/incubator-druid/pulls/comments/240882381","pull_request_review_id":184012647,"id":240882381,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDg4MjM4MQ==","diff_hunk":"@@ -27,16 +27,20 @@\n import java.util.Comparator;\n import java.util.List;\n import java.util.Set;\n+import java.util.stream.Collectors;\n \n public class ConnectionCountServerSelectorStrategy implements ServerSelectorStrategy\n {\n-  private static final Comparator<QueryableDruidServer> COMPARATOR =\n-      Comparator.comparingInt(s -> s.getClient().getNumOpenConnections());\n+  private static final Comparator<RemoteDruidServer> COMPARATOR =\n+      Comparator.comparingInt(s -> s.getQueryRunner().getNumOpenConnections());\n \n   @Override\n   public QueryableDruidServer pick(Set<QueryableDruidServer> servers, DataSegment segment)\n   {\n-    return Collections.min(servers, COMPARATOR);\n+    return Collections.min(\n+        servers.stream().map(server -> (RemoteDruidServer) server).collect(Collectors.toSet()),","path":"server/src/main/java/org/apache/druid/client/selector/ConnectionCountServerSelectorStrategy.java","position":18,"original_position":18,"commit_id":"89d8bb38f2c3888b5dc080489b9b0bcfb3cfda9c","original_commit_id":"7f709c97187011b4963914e112e0fa3b15bd479a","user":{"login":"jihoonson","id":2322288,"node_id":"MDQ6VXNlcjIzMjIyODg=","avatar_url":"https://avatars3.githubusercontent.com/u/2322288?v=4","gravatar_id":"","url":"https://api.github.com/users/jihoonson","html_url":"https://github.com/jihoonson","followers_url":"https://api.github.com/users/jihoonson/followers","following_url":"https://api.github.com/users/jihoonson/following{/other_user}","gists_url":"https://api.github.com/users/jihoonson/gists{/gist_id}","starred_url":"https://api.github.com/users/jihoonson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jihoonson/subscriptions","organizations_url":"https://api.github.com/users/jihoonson/orgs","repos_url":"https://api.github.com/users/jihoonson/repos","events_url":"https://api.github.com/users/jihoonson/events{/privacy}","received_events_url":"https://api.github.com/users/jihoonson/received_events","type":"User","site_admin":false},"body":"All I did in this PR is changing the type of `COMPARATOR`. The suggestion sounds good, but I don't think this should be part of this PR.","created_at":"2018-12-12T04:56:27Z","updated_at":"2018-12-12T04:56:27Z","html_url":"https://github.com/apache/incubator-druid/pull/6629#discussion_r240882381","pull_request_url":"https://api.github.com/repos/apache/incubator-druid/pulls/6629","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/comments/240882381"},"html":{"href":"https://github.com/apache/incubator-druid/pull/6629#discussion_r240882381"},"pull_request":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/6629"}},"in_reply_to_id":240789022},"pull_request":{"url":"https://api.github.com/repos/apache/incubator-druid/pulls/6629","id":231339979,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxMzM5OTc5","html_url":"https://github.com/apache/incubator-druid/pull/6629","diff_url":"https://github.com/apache/incubator-druid/pull/6629.diff","patch_url":"https://github.com/apache/incubator-druid/pull/6629.patch","issue_url":"https://api.github.com/repos/apache/incubator-druid/issues/6629","number":6629,"state":"open","locked":false,"title":"Add support parallel combine in brokers","user":{"login":"jihoonson","id":2322288,"node_id":"MDQ6VXNlcjIzMjIyODg=","avatar_url":"https://avatars3.githubusercontent.com/u/2322288?v=4","gravatar_id":"","url":"https://api.github.com/users/jihoonson","html_url":"https://github.com/jihoonson","followers_url":"https://api.github.com/users/jihoonson/followers","following_url":"https://api.github.com/users/jihoonson/following{/other_user}","gists_url":"https://api.github.com/users/jihoonson/gists{/gist_id}","starred_url":"https://api.github.com/users/jihoonson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jihoonson/subscriptions","organizations_url":"https://api.github.com/users/jihoonson/orgs","repos_url":"https://api.github.com/users/jihoonson/repos","events_url":"https://api.github.com/users/jihoonson/events{/privacy}","received_events_url":"https://api.github.com/users/jihoonson/received_events","type":"User","site_admin":false},"body":"This PR is to solve the same problem of https://github.com/apache/incubator-druid/pull/5913, but uses a different approach. `ParallelMergeCombineSequence` is newly added which merges and combines underlying sequences in parallel. As in https://github.com/apache/incubator-druid/pull/4704, this sequence internally creates a processing tree consisting of processing threads connected by blocking queues. The leaf threads combines streams from historicals and stores computed aggregates in its blocking queue. Other threads read values from the blocking queue of their children and stores computed aggregates in its blocking queue. Finally, the HTTP thread reads the final aggregates from the blocking queue of the root thread.\r\n\r\nI think this is a better approach than that used in #5913 because\r\n\r\n- All query types can benefit from the same code path without adding any new aggregation interface to QueryRunner or QueryToolChest. Currently Timeseries, TopN, and GroupBy queries are supported.\r\n- Since it uses the existing processing thread pool, it doesn't introduce new configurations for processing pools.\r\n- The size of blocking queue to materialize intermediate aggregates can be controlled by a user configuration.\r\n\r\nHere is the benchmark result. Please note that this benchmark is to test only the performance of broker merge part, so the actual impact to the total query time would be smaller than the benchmark result.\r\n\r\n```\r\nBenchmark                                        (brokerParallelMergeQueueSize)  (numProcessingThreads)  (numServers)  (queryGranularity)  (rowsPerSegment)  Mode  Cnt        Score       Error  Units\r\nCachingClusteredClientBenchmark.groupByQuery                               5120                       4             8                 all             75000  avgt   30   714863.287 ± 58633.480  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                               5120                       2             8                 all             75000  avgt   30  1167741.128 ± 19310.619  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                               5120                       1             8                 all             75000  avgt   30  1241544.213 ± 48946.858  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              10240                       4             8                 all             75000  avgt   30   726906.643 ± 67856.413  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              10240                       2             8                 all             75000  avgt   30  1094897.814 ± 44889.933  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              10240                       1             8                 all             75000  avgt   30  1187752.397 ± 37929.303  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              20480                       4             8                 all             75000  avgt   30   717070.371 ± 95373.466  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              20480                       2             8                 all             75000  avgt   30  1047820.065 ± 72792.607  us/op\r\nCachingClusteredClientBenchmark.groupByQuery                              20480                       1             8                 all             75000  avgt   30  1165636.716 ± 25094.569  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                            5120                       4             8                 all             75000  avgt   30     4241.572 ±    61.572  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                            5120                       2             8                 all             75000  avgt   30     7986.811 ±   127.783  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                            5120                       1             8                 all             75000  avgt   30     7829.323 ±    66.921  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           10240                       4             8                 all             75000  avgt   30     3534.114 ±    29.147  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           10240                       2             8                 all             75000  avgt   30     7883.849 ±    65.148  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           10240                       1             8                 all             75000  avgt   30     7870.191 ±    98.308  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           20480                       4             8                 all             75000  avgt   30     3543.012 ±    28.043  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           20480                       2             8                 all             75000  avgt   30     7908.610 ±    78.611  us/op\r\nCachingClusteredClientBenchmark.timeseriesQuery                           20480                       1             8                 all             75000  avgt   30     9725.952 ±    59.340  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                  5120                       4             8                 all             75000  avgt   30   349675.258 ±  3556.410  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                  5120                       2             8                 all             75000  avgt   30   528744.700 ±  6688.440  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                  5120                       1             8                 all             75000  avgt   30   580475.864 ±  6444.335  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 10240                       4             8                 all             75000  avgt   30   339018.234 ±  2702.056  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 10240                       2             8                 all             75000  avgt   30   513790.033 ±  5519.426  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 10240                       1             8                 all             75000  avgt   30   545196.149 ±  7395.862  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 20480                       4             8                 all             75000  avgt   30   340100.347 ± 16336.004  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 20480                       2             8                 all             75000  avgt   30   536705.227 ±  7110.629  us/op\r\nCachingClusteredClientBenchmark.topNQuery                                 20480                       1             8                 all             75000  avgt   30   562068.604 ±  8781.368  us/op\r\n```\r\n\r\nOther changes are:\r\n\r\n- Added `CachingClusteredClientBenchmark` which can reproduce the above benchmark result.\r\n- Removed unused `OrderedMergeSequence`\r\n- Extracted the common code to build a combine tree from `ParallelCombiner` to `ParallelCombines`.\r\n- Moved `createMergeFn()` from `ResultMergeQueryRunner` to `QueryToolChest`.\r\n- Change `QueryableDruidServer` to an interface and added `RemoteDruidServer` to write the benchmark.\r\n- Added unit tests to test parallel merging for timeseries, topN, and groupBy queries.\r\n\r\nThis adds some new query contexts, and so is labelled as `Design Review`.","created_at":"2018-11-15T21:28:04Z","updated_at":"2018-12-12T04:56:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2aa1c4ed771bb442b2b4ea2de812b68d0b1789a7","assignee":{"login":"clintropolis","id":1577461,"node_id":"MDQ6VXNlcjE1Nzc0NjE=","avatar_url":"https://avatars1.githubusercontent.com/u/1577461?v=4","gravatar_id":"","url":"https://api.github.com/users/clintropolis","html_url":"https://github.com/clintropolis","followers_url":"https://api.github.com/users/clintropolis/followers","following_url":"https://api.github.com/users/clintropolis/following{/other_user}","gists_url":"https://api.github.com/users/clintropolis/gists{/gist_id}","starred_url":"https://api.github.com/users/clintropolis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clintropolis/subscriptions","organizations_url":"https://api.github.com/users/clintropolis/orgs","repos_url":"https://api.github.com/users/clintropolis/repos","events_url":"https://api.github.com/users/clintropolis/events{/privacy}","received_events_url":"https://api.github.com/users/clintropolis/received_events","type":"User","site_admin":false},"assignees":[{"login":"clintropolis","id":1577461,"node_id":"MDQ6VXNlcjE1Nzc0NjE=","avatar_url":"https://avatars1.githubusercontent.com/u/1577461?v=4","gravatar_id":"","url":"https://api.github.com/users/clintropolis","html_url":"https://github.com/clintropolis","followers_url":"https://api.github.com/users/clintropolis/followers","following_url":"https://api.github.com/users/clintropolis/following{/other_user}","gists_url":"https://api.github.com/users/clintropolis/gists{/gist_id}","starred_url":"https://api.github.com/users/clintropolis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clintropolis/subscriptions","organizations_url":"https://api.github.com/users/clintropolis/orgs","repos_url":"https://api.github.com/users/clintropolis/repos","events_url":"https://api.github.com/users/clintropolis/events{/privacy}","received_events_url":"https://api.github.com/users/clintropolis/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":219585748,"node_id":"MDU6TGFiZWwyMTk1ODU3NDg=","url":"https://api.github.com/repos/apache/incubator-druid/labels/Area%20-%20Querying","name":"Area - Querying","color":"fef2c0","default":false},{"id":592291319,"node_id":"MDU6TGFiZWw1OTIyOTEzMTk=","url":"https://api.github.com/repos/apache/incubator-druid/labels/Design%20Review","name":"Design Review","color":"f9d0c4","default":false},{"id":120288359,"node_id":"MDU6TGFiZWwxMjAyODgzNTk=","url":"https://api.github.com/repos/apache/incubator-druid/labels/Performance","name":"Performance","color":"fbca04","default":false}],"milestone":{"url":"https://api.github.com/repos/apache/incubator-druid/milestones/29","html_url":"https://github.com/apache/incubator-druid/milestone/29","labels_url":"https://api.github.com/repos/apache/incubator-druid/milestones/29/labels","id":3663294,"node_id":"MDk6TWlsZXN0b25lMzY2MzI5NA==","number":29,"title":"0.14.0","description":"","creator":{"login":"jon-wei","id":8729063,"node_id":"MDQ6VXNlcjg3MjkwNjM=","avatar_url":"https://avatars3.githubusercontent.com/u/8729063?v=4","gravatar_id":"","url":"https://api.github.com/users/jon-wei","html_url":"https://github.com/jon-wei","followers_url":"https://api.github.com/users/jon-wei/followers","following_url":"https://api.github.com/users/jon-wei/following{/other_user}","gists_url":"https://api.github.com/users/jon-wei/gists{/gist_id}","starred_url":"https://api.github.com/users/jon-wei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jon-wei/subscriptions","organizations_url":"https://api.github.com/users/jon-wei/orgs","repos_url":"https://api.github.com/users/jon-wei/repos","events_url":"https://api.github.com/users/jon-wei/events{/privacy}","received_events_url":"https://api.github.com/users/jon-wei/received_events","type":"User","site_admin":false},"open_issues":41,"closed_issues":46,"state":"open","created_at":"2018-09-17T20:58:12Z","updated_at":"2018-12-12T03:48:06Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/apache/incubator-druid/pulls/6629/commits","review_comments_url":"https://api.github.com/repos/apache/incubator-druid/pulls/6629/comments","review_comment_url":"https://api.github.com/repos/apache/incubator-druid/pulls/comments{/number}","comments_url":"https://api.github.com/repos/apache/incubator-druid/issues/6629/comments","statuses_url":"https://api.github.com/repos/apache/incubator-druid/statuses/89d8bb38f2c3888b5dc080489b9b0bcfb3cfda9c","head":{"label":"jihoonson:parallel-combine-broker","ref":"parallel-combine-broker","sha":"89d8bb38f2c3888b5dc080489b9b0bcfb3cfda9c","user":{"login":"jihoonson","id":2322288,"node_id":"MDQ6VXNlcjIzMjIyODg=","avatar_url":"https://avatars3.githubusercontent.com/u/2322288?v=4","gravatar_id":"","url":"https://api.github.com/users/jihoonson","html_url":"https://github.com/jihoonson","followers_url":"https://api.github.com/users/jihoonson/followers","following_url":"https://api.github.com/users/jihoonson/following{/other_user}","gists_url":"https://api.github.com/users/jihoonson/gists{/gist_id}","starred_url":"https://api.github.com/users/jihoonson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jihoonson/subscriptions","organizations_url":"https://api.github.com/users/jihoonson/orgs","repos_url":"https://api.github.com/users/jihoonson/repos","events_url":"https://api.github.com/users/jihoonson/events{/privacy}","received_events_url":"https://api.github.com/users/jihoonson/received_events","type":"User","site_admin":false},"repo":{"id":71565181,"node_id":"MDEwOlJlcG9zaXRvcnk3MTU2NTE4MQ==","name":"druid","full_name":"jihoonson/druid","private":false,"owner":{"login":"jihoonson","id":2322288,"node_id":"MDQ6VXNlcjIzMjIyODg=","avatar_url":"https://avatars3.githubusercontent.com/u/2322288?v=4","gravatar_id":"","url":"https://api.github.com/users/jihoonson","html_url":"https://github.com/jihoonson","followers_url":"https://api.github.com/users/jihoonson/followers","following_url":"https://api.github.com/users/jihoonson/following{/other_user}","gists_url":"https://api.github.com/users/jihoonson/gists{/gist_id}","starred_url":"https://api.github.com/users/jihoonson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jihoonson/subscriptions","organizations_url":"https://api.github.com/users/jihoonson/orgs","repos_url":"https://api.github.com/users/jihoonson/repos","events_url":"https://api.github.com/users/jihoonson/events{/privacy}","received_events_url":"https://api.github.com/users/jihoonson/received_events","type":"User","site_admin":false},"html_url":"https://github.com/jihoonson/druid","description":"Column oriented distributed data store ideal for powering interactive applications","fork":true,"url":"https://api.github.com/repos/jihoonson/druid","forks_url":"https://api.github.com/repos/jihoonson/druid/forks","keys_url":"https://api.github.com/repos/jihoonson/druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jihoonson/druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jihoonson/druid/teams","hooks_url":"https://api.github.com/repos/jihoonson/druid/hooks","issue_events_url":"https://api.github.com/repos/jihoonson/druid/issues/events{/number}","events_url":"https://api.github.com/repos/jihoonson/druid/events","assignees_url":"https://api.github.com/repos/jihoonson/druid/assignees{/user}","branches_url":"https://api.github.com/repos/jihoonson/druid/branches{/branch}","tags_url":"https://api.github.com/repos/jihoonson/druid/tags","blobs_url":"https://api.github.com/repos/jihoonson/druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jihoonson/druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jihoonson/druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/jihoonson/druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jihoonson/druid/statuses/{sha}","languages_url":"https://api.github.com/repos/jihoonson/druid/languages","stargazers_url":"https://api.github.com/repos/jihoonson/druid/stargazers","contributors_url":"https://api.github.com/repos/jihoonson/druid/contributors","subscribers_url":"https://api.github.com/repos/jihoonson/druid/subscribers","subscription_url":"https://api.github.com/repos/jihoonson/druid/subscription","commits_url":"https://api.github.com/repos/jihoonson/druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/jihoonson/druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/jihoonson/druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/jihoonson/druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/jihoonson/druid/contents/{+path}","compare_url":"https://api.github.com/repos/jihoonson/druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jihoonson/druid/merges","archive_url":"https://api.github.com/repos/jihoonson/druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jihoonson/druid/downloads","issues_url":"https://api.github.com/repos/jihoonson/druid/issues{/number}","pulls_url":"https://api.github.com/repos/jihoonson/druid/pulls{/number}","milestones_url":"https://api.github.com/repos/jihoonson/druid/milestones{/number}","notifications_url":"https://api.github.com/repos/jihoonson/druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jihoonson/druid/labels{/name}","releases_url":"https://api.github.com/repos/jihoonson/druid/releases{/id}","deployments_url":"https://api.github.com/repos/jihoonson/druid/deployments","created_at":"2016-10-21T13:05:19Z","updated_at":"2018-07-06T15:32:53Z","pushed_at":"2018-12-12T04:55:08Z","git_url":"git://github.com/jihoonson/druid.git","ssh_url":"git@github.com:jihoonson/druid.git","clone_url":"https://github.com/jihoonson/druid.git","svn_url":"https://github.com/jihoonson/druid","homepage":"http://druid.io","size":156289,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"apache:master","ref":"master","sha":"607339003b2c31ff8d2a047d4afdc563f4d05675","user":{"login":"apache","id":47359,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MzU5","avatar_url":"https://avatars0.githubusercontent.com/u/47359?v=4","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":6358188,"node_id":"MDEwOlJlcG9zaXRvcnk2MzU4MTg4","name":"incubator-druid","full_name":"apache/incubator-druid","private":false,"owner":{"login":"apache","id":47359,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ3MzU5","avatar_url":"https://avatars0.githubusercontent.com/u/47359?v=4","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},"html_url":"https://github.com/apache/incubator-druid","description":"Apache Druid (Incubating) - Column oriented distributed data store ideal for powering interactive applications","fork":false,"url":"https://api.github.com/repos/apache/incubator-druid","forks_url":"https://api.github.com/repos/apache/incubator-druid/forks","keys_url":"https://api.github.com/repos/apache/incubator-druid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/apache/incubator-druid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/apache/incubator-druid/teams","hooks_url":"https://api.github.com/repos/apache/incubator-druid/hooks","issue_events_url":"https://api.github.com/repos/apache/incubator-druid/issues/events{/number}","events_url":"https://api.github.com/repos/apache/incubator-druid/events","assignees_url":"https://api.github.com/repos/apache/incubator-druid/assignees{/user}","branches_url":"https://api.github.com/repos/apache/incubator-druid/branches{/branch}","tags_url":"https://api.github.com/repos/apache/incubator-druid/tags","blobs_url":"https://api.github.com/repos/apache/incubator-druid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/apache/incubator-druid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/apache/incubator-druid/git/refs{/sha}","trees_url":"https://api.github.com/repos/apache/incubator-druid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/apache/incubator-druid/statuses/{sha}","languages_url":"https://api.github.com/repos/apache/incubator-druid/languages","stargazers_url":"https://api.github.com/repos/apache/incubator-druid/stargazers","contributors_url":"https://api.github.com/repos/apache/incubator-druid/contributors","subscribers_url":"https://api.github.com/repos/apache/incubator-druid/subscribers","subscription_url":"https://api.github.com/repos/apache/incubator-druid/subscription","commits_url":"https://api.github.com/repos/apache/incubator-druid/commits{/sha}","git_commits_url":"https://api.github.com/repos/apache/incubator-druid/git/commits{/sha}","comments_url":"https://api.github.com/repos/apache/incubator-druid/comments{/number}","issue_comment_url":"https://api.github.com/repos/apache/incubator-druid/issues/comments{/number}","contents_url":"https://api.github.com/repos/apache/incubator-druid/contents/{+path}","compare_url":"https://api.github.com/repos/apache/incubator-druid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/apache/incubator-druid/merges","archive_url":"https://api.github.com/repos/apache/incubator-druid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/apache/incubator-druid/downloads","issues_url":"https://api.github.com/repos/apache/incubator-druid/issues{/number}","pulls_url":"https://api.github.com/repos/apache/incubator-druid/pulls{/number}","milestones_url":"https://api.github.com/repos/apache/incubator-druid/milestones{/number}","notifications_url":"https://api.github.com/repos/apache/incubator-druid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/apache/incubator-druid/labels{/name}","releases_url":"https://api.github.com/repos/apache/incubator-druid/releases{/id}","deployments_url":"https://api.github.com/repos/apache/incubator-druid/deployments","created_at":"2012-10-23T19:08:07Z","updated_at":"2018-12-12T03:16:22Z","pushed_at":"2018-12-12T04:55:10Z","git_url":"git://github.com/apache/incubator-druid.git","ssh_url":"git@github.com:apache/incubator-druid.git","clone_url":"https://github.com/apache/incubator-druid.git","svn_url":"https://github.com/apache/incubator-druid","homepage":"http://druid.io","size":153174,"stargazers_count":7329,"watchers_count":7329,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1800,"mirror_url":null,"archived":false,"open_issues_count":1206,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":1800,"open_issues":1206,"watchers":7329,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/6629"},"html":{"href":"https://github.com/apache/incubator-druid/pull/6629"},"issue":{"href":"https://api.github.com/repos/apache/incubator-druid/issues/6629"},"comments":{"href":"https://api.github.com/repos/apache/incubator-druid/issues/6629/comments"},"review_comments":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/6629/comments"},"review_comment":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/apache/incubator-druid/pulls/6629/commits"},"statuses":{"href":"https://api.github.com/repos/apache/incubator-druid/statuses/89d8bb38f2c3888b5dc080489b9b0bcfb3cfda9c"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jihoonson"}}