1. 25 9月, 2018 4 次提交
  2. 24 9月, 2018 1 次提交
    • A
      HllSketch module (#5712) · 93345064
      Alexander Saydakov 提交于
      * HllSketch module
      
      * updated license and imports
      
      * updated package name
      
      * implemented makeAggregateCombiner()
      
      * removed json marks
      
      * style fix
      
      * added module
      
      * removed unnecessary import, side effect of package renaming
      
      * use TreadLocalRandom
      
      * addressing code review points, mostly formatting and comments
      
      * javadoc
      
      * natural order with nulls
      
      * typo
      
      * factored out raw input value extraction
      
      * singleton
      
      * style fix
      
      * style fix
      
      * use Collections.singletonList instead of Arrays.asList
      
      * suppress warning
      93345064
  3. 23 9月, 2018 1 次提交
  4. 22 9月, 2018 3 次提交
  5. 21 9月, 2018 1 次提交
  6. 20 9月, 2018 2 次提交
    • G
      Add metadata indexes to help with segment allocation. (#6348) · e1c649e9
      Gian Merlino 提交于
      Segment allocation queries can take a long time (10s of seconds) when
      you have a lot of segments. Adding these indexes helps greatly.
      e1c649e9
    • J
      Mutual TLS support (#6076) · 8972244c
      Jonathan Wei 提交于
      * Mutual TLS support
      
      * Kafka test fixes
      
      * TeamCity fix
      
      * Split integration tests
      
      * Use localhost DOCKER_IP
      
      * Increase server thread count
      
      * Increase SSL handshake timeouts
      
      * Add broken pipe retries, use injected client config params
      
      * PR comments, Rat license check exclusion
      8972244c
  7. 19 9月, 2018 2 次提交
  8. 18 9月, 2018 4 次提交
    • S
      Adding licenses and enable apache-rat-plugin. (#6215) · 028354ee
      Slim Bouguerra 提交于
      * Adding licenses and enable apache-rat-plugi.
      
      Change-Id: I4685a2d9f1e147855dba69329b286f2d5bee3c18
      
      * restore the copywrite of demo_table and add it to the list of allowed ones
      
      Change-Id: I2a9efde6f4b984bc1ac90483e90d98e71f818a14
      
      * revirew comments
      
      Change-Id: I0256c930b7f9a5bb09b44b5e7a149e6ec48cb0ca
      
      * more fixup
      
      Change-Id: I1355e8a2549e76cd44487abec142be79bec59de2
      
      * align
      
      Change-Id: I70bc47ecb577bdf6b91639dd91b6f5642aa6b02f
      028354ee
    • J
      Fix dictionary ID race condition in IncrementalIndexStorageAdapter (#6340) · 609da018
      Jonathan Wei 提交于
      Possibly related to https://github.com/apache/incubator-druid/issues/4937
      
      --------
      
      There is currently a race condition in IncrementalIndexStorageAdapter that can lead to exceptions like the following, when running queries with filters on String dimensions that hit realtime tasks: 
      
      ```
      org.apache.druid.java.util.common.ISE: id[5] >= maxId[5]
      	at org.apache.druid.segment.StringDimensionIndexer$1IndexerDimensionSelector.lookupName(StringDimensionIndexer.java:591)
      	at org.apache.druid.segment.StringDimensionIndexer$1IndexerDimensionSelector$2.matches(StringDimensionIndexer.java:562)
      	at org.apache.druid.segment.incremental.IncrementalIndexStorageAdapter$IncrementalIndexCursor.advance(IncrementalIndexStorageAdapter.java:284)
      ```
      
      When the `filterMatcher` is created in the constructor of `IncrementalIndexStorageAdapter.IncrementalIndexCursor`, `StringDimensionIndexer.makeDimensionSelector` gets called eventually, which calls:
      
      ```
      final int maxId = getCardinality();
      ...
      
       @Override
        public int getCardinality()
        {
          return dimLookup.size();
        }
      ```
      
      So `maxId` is set to the size of the dictionary at the time that the `filterMatcher` is created.
      
      However, the `maxRowIndex` which is meant to prevent the Cursor from returning rows that were added after the Cursor was created (see https://github.com/apache/incubator-druid/pull/4049) is set after the `filterMatcher` is created.
      
      If rows with new dictionary values are added after the `filterMatcher` is created but before `maxRowIndex` is set, then it is possible for the Cursor to return rows that contain the new values, which will have `id >= maxId`.
      
      This PR sets `maxRowIndex` before creating the `filterMatcher` to prevent rows with unknown dictionary IDs from being passed to the `filterMatcher`.
      
      -----------
      
      The included test triggers the error with a custom Filter + DruidPredicateFactory.
      
      The DimensionSelector for predicate-based filter matching is created here in `Filters.makeValueMatcher`:
      
      ```
        public static ValueMatcher makeValueMatcher(
            final ColumnSelectorFactory columnSelectorFactory,
            final String columnName,
            final DruidPredicateFactory predicateFactory
        )
        {
          final ColumnCapabilities capabilities = columnSelectorFactory.getColumnCapabilities(columnName);
      
          // This should be folded into the ValueMatcherColumnSelectorStrategy once that can handle LONG typed columns.
          if (capabilities != null && capabilities.getType() == ValueType.LONG) {
            return getLongPredicateMatcher(
                columnSelectorFactory.makeColumnValueSelector(columnName),
                predicateFactory.makeLongPredicate()
            );
          }
      
          final ColumnSelectorPlus<ValueMatcherColumnSelectorStrategy> selector =
              DimensionHandlerUtils.createColumnSelectorPlus(
                  ValueMatcherColumnSelectorStrategyFactory.instance(),
                  DefaultDimensionSpec.of(columnName),
                  columnSelectorFactory
              );
      
          return selector.getColumnSelectorStrategy().makeValueMatcher(selector.getSelector(), predicateFactory);
        }
      ```
      
      The test Filter adds a row to the IncrementalIndex in the test when the predicateFactory creates a new String predicate, after `DimensionHandlerUtils.createColumnSelectorPlus` is called.
      609da018
    • D
      add a sql option to force user to specify time condition (#6246) · edf0c138
      Dayue Gao 提交于
      * add a sql option to force user to specify time condition
      
      * rename forceTimeCondition to requireTimeCondition, refine error message
      edf0c138
    • H
      2fac6743
  9. 15 9月, 2018 4 次提交
  10. 14 9月, 2018 4 次提交
    • Q
      Add ability to specify list of task ports and port range (#6263) · 87ccee05
      QiuMM 提交于
      * support specify list of task ports
      
      * fix typos
      
      * address comments
      
      * remove druid.indexer.runner.separateIngestionEndpoint config
      
      * tweak doc
      
      * fix doc
      
      * code cleanup
      
      * keep some useful comments
      87ccee05
    • R
      Prohibit LinkedList (#6112) · d50b69e6
      Roman Leventov 提交于
      * Prohibit LinkedList
      
      * Fix tests
      
      * Fix
      
      * Remove unused import
      d50b69e6
    • J
      fd6786ac
    • C
      'suspend' and 'resume' support for supervisors (kafka indexing service, materialized views) (#6234) · 91a37c69
      Clint Wylie 提交于
      * 'suspend' and 'resume' support for kafka indexing service
      changes:
      * introduces `SuspendableSupervisorSpec` interface to describe supervisors which support suspend/resume functionality controlled through the `SupervisorManager`, which will gracefully shutdown the supervisor and it's tasks, update it's `SupervisorSpec` with either a suspended or running state, and update with the toggled spec. Spec updates are provided by `SuspendableSupervisorSpec.createSuspendedSpec` and `SuspendableSupervisorSpec.createRunningSpec` respectively.
      * `KafkaSupervisorSpec` extends `SuspendableSupervisorSpec` and now supports suspend/resume functionality. The difference in behavior between 'running' and 'suspended' state is whether the supervisor will attempt to ensure that indexing tasks are or are not running respectively. Behavior is identical otherwise.
      * `SupervisorResource` now provides `/druid/indexer/v1/supervisor/{id}/suspend` and `/druid/indexer/v1/supervisor/{id}/resume` which are used to suspend/resume suspendable supervisors
      * Deprecated `/druid/indexer/v1/supervisor/{id}/shutdown` and moved it's functionality to `/druid/indexer/v1/supervisor/{id}/terminate` since 'shutdown' is ambiguous verbage for something that effectively stops a supervisor forever
      * Added ability to get all supervisor specs from `/druid/indexer/v1/supervisor` by supplying the 'full' query parameter `/druid/indexer/v1/supervisor?full` which will return a list of json objects of the form `{"id":<id>, "spec":<SupervisorSpec>}`
      * Updated overlord console ui to enable suspend/resume, and changed 'shutdown' to 'terminate'
      
      * move overlord console status to own column in supervisor table so does not look like garbage
      
      * spacing
      
      * padding
      
      * other kind of spacing
      
      * fix rebase fail
      
      * fix more better
      
      * all supervisors now suspendable, updated materialized view supervisor to support suspend, more tests
      
      * fix log
      91a37c69
  11. 12 9月, 2018 2 次提交
    • C
      allow 3 retries for failing tests (#6324) · 96a1076e
      Clint Wylie 提交于
      * allow 1 retry for failing tests idk if this is a good idea, but false failure rate due to flaky tests seems pretty bad lately
      
      * try to fix retry issue with teardown
      
      * Update pom.xml
      
      * Update pom.xml
      96a1076e
    • G
      ParseSpec: Remove default setting. (#6310) · 7f3a0dae
      Gian Merlino 提交于
      * ParseSpec: Remove default setting.
      
      Having a default ParseSpec implementation is bad for users, because it masks
      problems specifying the format. Two common problems masked by this are specifying
      the "format" at the wrong level of the JSON, and specifying a format that
      Druid doesn't support. In both cases, having a default implementation means that
      users will get the delimited parser rather than an error, and then be confused
      when, later on, their data failed to parse.
      
      * Fix integration tests.
      7f3a0dae
  12. 11 9月, 2018 1 次提交
    • G
      Broker backpressure. (#6313) · d6cbdf86
      Gian Merlino 提交于
      * Broker backpressure.
      
      Adds a new property "druid.broker.http.maxQueuedBytes" and a new context
      parameter "maxQueuedBytes". Both represent a maximum number of bytes queued
      per query before exerting backpressure on the channel to the data server.
      
      Fixes #4933.
      
      * Fix query context doc.
      d6cbdf86
  13. 10 9月, 2018 1 次提交
  14. 08 9月, 2018 1 次提交
    • C
      Add support for 'maxTotalRows' to incremental publishing kafka indexing task... · e6e068ce
      Clint Wylie 提交于
      Add support for 'maxTotalRows' to incremental publishing kafka indexing task and appenderator based realtime task (#6129)
      
      * resolves #5898 by adding maxTotalRows to incremental publishing kafka index task and appenderator based realtime indexing task, as available in IndexTask
      
      * address review comments
      
      * changes due to review
      
      * merge fail
      e6e068ce
  15. 07 9月, 2018 1 次提交
  16. 06 9月, 2018 3 次提交
  17. 05 9月, 2018 5 次提交