ConcurrentGrouper(GroupByQueryConfig groupByQueryConfig,
                 com.google.common.base.Supplier<ByteBuffer> bufferSupplier,
                 com.google.common.base.Supplier<ResourceHolder<ByteBuffer>> combineBufferSupplier,
                 Grouper.KeySerdeFactory<KeyType> keySerdeFactory,
                 Grouper.KeySerdeFactory<KeyType> combineKeySerdeFactory,
                 ColumnSelectorFactory columnSelectorFactory,
                 AggregatorFactory[] aggregatorFactories,
                 LimitedTemporaryStorage temporaryStorage,
                 com.fasterxml.jackson.databind.ObjectMapper spillMapper,
                 int concurrencyHint,
                 DefaultLimitSpec limitSpec,
                 boolean sortHasNonGroupingFields,
                 com.google.common.util.concurrent.ListeningExecutorService executor,
                 int priority,
                 boolean hasQueryTimeout,
                 long queryTimeoutAt)  | 
SpillingGrouper(com.google.common.base.Supplier<ByteBuffer> bufferSupplier,
               Grouper.KeySerdeFactory<KeyType> keySerdeFactory,
               ColumnSelectorFactory columnSelectorFactory,
               AggregatorFactory[] aggregatorFactories,
               int bufferGrouperMaxSize,
               float bufferGrouperMaxLoadFactor,
               int bufferGrouperInitialBuckets,
               LimitedTemporaryStorage temporaryStorage,
               com.fasterxml.jackson.databind.ObjectMapper spillMapper,
               boolean spillingAllowed,
               DefaultLimitSpec limitSpec,
               boolean sortHasNonGroupingFields,
               int mergeBufferSize)  |