{"action":"created","issue":{"url":"https://api.github.com/repos/druid-io/druid/issues/2998","repository_url":"https://api.github.com/repos/druid-io/druid","labels_url":"https://api.github.com/repos/druid-io/druid/issues/2998/labels{/name}","comments_url":"https://api.github.com/repos/druid-io/druid/issues/2998/comments","events_url":"https://api.github.com/repos/druid-io/druid/issues/2998/events","html_url":"https://github.com/druid-io/druid/pull/2998","id":155863397,"number":2998,"title":"Alternative groupBy strategy.","user":{"login":"gianm","id":1214075,"avatar_url":"https://avatars.githubusercontent.com/u/1214075?v=3","gravatar_id":"","url":"https://api.github.com/users/gianm","html_url":"https://github.com/gianm","followers_url":"https://api.github.com/users/gianm/followers","following_url":"https://api.github.com/users/gianm/following{/other_user}","gists_url":"https://api.github.com/users/gianm/gists{/gist_id}","starred_url":"https://api.github.com/users/gianm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gianm/subscriptions","organizations_url":"https://api.github.com/users/gianm/orgs","repos_url":"https://api.github.com/users/gianm/repos","events_url":"https://api.github.com/users/gianm/events{/privacy}","received_events_url":"https://api.github.com/users/gianm/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/druid-io/druid/labels/Improvement","name":"Improvement","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/druid-io/druid/milestones/20","html_url":"https://github.com/druid-io/druid/milestones/0.9.2","labels_url":"https://api.github.com/repos/druid-io/druid/milestones/20/labels","id":1571409,"number":20,"title":"0.9.2","description":"","creator":{"login":"fjy","id":428325,"avatar_url":"https://avatars.githubusercontent.com/u/428325?v=3","gravatar_id":"","url":"https://api.github.com/users/fjy","html_url":"https://github.com/fjy","followers_url":"https://api.github.com/users/fjy/followers","following_url":"https://api.github.com/users/fjy/following{/other_user}","gists_url":"https://api.github.com/users/fjy/gists{/gist_id}","starred_url":"https://api.github.com/users/fjy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fjy/subscriptions","organizations_url":"https://api.github.com/users/fjy/orgs","repos_url":"https://api.github.com/users/fjy/repos","events_url":"https://api.github.com/users/fjy/events{/privacy}","received_events_url":"https://api.github.com/users/fjy/received_events","type":"User","site_admin":false},"open_issues":24,"closed_issues":6,"state":"open","created_at":"2016-02-08T22:01:21Z","updated_at":"2016-05-20T00:37:47Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-05-20T00:17:57Z","updated_at":"2016-05-20T21:53:14Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/druid-io/druid/pulls/2998","html_url":"https://github.com/druid-io/druid/pull/2998","diff_url":"https://github.com/druid-io/druid/pull/2998.diff","patch_url":"https://github.com/druid-io/druid/pull/2998.patch"},"body":"This patch introduces a GroupByStrategy concept and two strategies: \"oldFaithful\"\r\nis the current groupBy strategy and \"epinephelinae\" is a new one. It also\r\nintroduces a merge buffers concept in DruidProcessingModule, to try to better\r\nmanage memory used for merging.\r\n\r\nBoth of these are described in more detail in #2987.\r\n\r\nThere are two goals of this patch:\r\n\r\n1. Make it possible for historical/realtime nodes to return larger groupBy\r\n   result sets, faster, with better memory management.\r\n2. Make it possible for brokers to merge streams when there are no order-by\r\n   columns, avoiding materialization.\r\n\r\nThis patch does not do anything to help with memory management on the broker\r\nwhen there are order-by columns or when there are nested queries. That could\r\npotentially be done in a future patch.\r\n\r\nBenchmarks:\r\n\r\nmaster\r\n\r\n```\r\nBenchmark                                       (numSegments)  (rowsPerSegment)  (schemaAndQuery)  Mode  Cnt       Score      Error  Units\r\nGroupByBenchmark.processSingleIncrementalIndex              4            100000           basic.A  avgt   25  109206.640 ± 2110.087  us/op\r\nGroupByBenchmark.processSingleQueryableIndex                4            100000           basic.A  avgt   25   79239.089 ± 1903.127  us/op\r\nGroupByBenchmark.queryMultiQueryableIndex                   4            100000           basic.A  avgt   25  376020.150 ± 4878.307  us/op\r\nGroupByBenchmark.querySingleIncrementalIndex                4            100000           basic.A  avgt   25  253640.355 ± 9018.422  us/op\r\nGroupByBenchmark.querySingleQueryableIndex                  4            100000           basic.A  avgt   25  198558.886 ± 7151.646  us/op\r\n```\r\n\r\nepinephelinae\r\n\r\n```\r\nBenchmark                                       (numSegments)  (rowsPerSegment)  (schemaAndQuery)  Mode  Cnt       Score      Error  Units\r\nGroupByBenchmark.processSingleIncrementalIndex              4            100000           basic.A  avgt   25   59674.994 ± 1996.179  us/op\r\nGroupByBenchmark.processSingleQueryableIndex                4            100000           basic.A  avgt   25   38382.406 ±  848.041  us/op\r\nGroupByBenchmark.queryMultiQueryableIndex                   4            100000           basic.A  avgt   25  189633.397 ± 3665.856  us/op\r\nGroupByBenchmark.querySingleIncrementalIndex                4            100000           basic.A  avgt   25   69098.673 ± 3138.578  us/op\r\nGroupByBenchmark.querySingleQueryableIndex                  4            100000           basic.A  avgt   25   45949.471 ± 1807.845  us/op\r\n```"},"comment":{"url":"https://api.github.com/repos/druid-io/druid/issues/comments/220727391","html_url":"https://github.com/druid-io/druid/pull/2998#issuecomment-220727391","issue_url":"https://api.github.com/repos/druid-io/druid/issues/2998","id":220727391,"user":{"login":"fjy","id":428325,"avatar_url":"https://avatars.githubusercontent.com/u/428325?v=3","gravatar_id":"","url":"https://api.github.com/users/fjy","html_url":"https://github.com/fjy","followers_url":"https://api.github.com/users/fjy/followers","following_url":"https://api.github.com/users/fjy/following{/other_user}","gists_url":"https://api.github.com/users/fjy/gists{/gist_id}","starred_url":"https://api.github.com/users/fjy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fjy/subscriptions","organizations_url":"https://api.github.com/users/fjy/orgs","repos_url":"https://api.github.com/users/fjy/repos","events_url":"https://api.github.com/users/fjy/events{/privacy}","received_events_url":"https://api.github.com/users/fjy/received_events","type":"User","site_admin":false},"created_at":"2016-05-20T21:53:14Z","updated_at":"2016-05-20T21:53:14Z","body":"@gianm benchmarks look great!\r\n\r\nthis is really promising "}}
{"actor":{"display_login":"fjy"}}