mirror of https://github.com/apache/druid.git
fc95c92806
* Remove OffheapIncrementalIndex and clarify aggregator thread-safety needs. This patch does the following: - Removes OffheapIncrementalIndex. - Clarifies that Aggregators are required to be thread safe. - Clarifies that BufferAggregators and VectorAggregators are not required to be thread safe. - Removes thread safety code from some DataSketches aggregators that had it. (Not all of them did, and that's OK, because it wasn't necessary anyway.) - Makes enabling "useOffheap" with groupBy v1 an error. Rationale for removing the offheap incremental index: - It is only used in one rare scenario: groupBy v1 (which is non-default) in "useOffheap" mode (also non-default). So you have to go pretty deep into the wilderness to get this code to activate in production. It is never used during ingestion. - Its existence complicates developer efforts to reason about how aggregators get used, because the way it uses buffer aggregators is so different from how every other query engine uses them. - It doesn't have meaningful testing. By the way, I do believe that the given way the offheap incremental index works, it actually didn't require buffer aggregators to be thread-safe. It synchronizes on "aggregate" and doesn't call "get" until it has stopped calling "aggregate". Nevertheless, this is a bother to think about, and for the above reasons I think it makes sense to remove the code anyway. * Remove things that are now unused. * Revert removal of getFloat, getLong, getDouble from BufferAggregator. * OAK-related warnings, suppressions. * Unused item suppressions. |
||
---|---|---|
.. | ||
aggregations.md | ||
caching.md | ||
datasource.md | ||
datasourcemetadataquery.md | ||
dimensionspecs.md | ||
filters.md | ||
granularities.md | ||
groupbyquery.md | ||
having.md | ||
hll-old.md | ||
joins.md | ||
limitspec.md | ||
lookups.md | ||
multi-value-dimensions.md | ||
multitenancy.md | ||
post-aggregations.md | ||
query-context.md | ||
query-execution.md | ||
querying.md | ||
scan-query.md | ||
searchquery.md | ||
segmentmetadataquery.md | ||
select-query.md | ||
sorting-orders.md | ||
sql.md | ||
timeboundaryquery.md | ||
timeseriesquery.md | ||
topnmetricspec.md | ||
topnquery.md | ||
using-caching.md | ||
virtual-columns.md |