Skip to content

Consistent naming of 'no-op', 'empty' aggregators #6934

@clintropolis

Description

@clintropolis

Follow up of discussion here requesting that naming of aggregators is consistent.

I am currently unsure if it is worth using naming convention to distinguish "empty" aggregators, which create an empty value to offer up for combining/merging but otherwise do nothing during aggregation, and "no-op" aggregators which do nothing and return constants for combining/merging.

Aggregators I would consider "empty":
datasketches:
ArrayOfDoublesSketchNoOpAggregator, ArrayOfDoublesSketchNoOpBufferAggregator
druid-bloom-filter:
EmptyBloomFilterAggregator, EmptyBloomFilterBufferAggregator

Aggregators I would consider "no-op"
processing:
NoopAggregator, NoopBufferAggregator
datasketches:
DoublesSketchNoOpAggregator, DoublesSketchNoOpBufferAggregator
distinct-count:
EmptyDistinctCountAggregator, EmptyDistinctCountBufferAggregator

If there is not enough distinction in behavior between what I've classed as "empty" and "no-op" then these should all share naming convention, but at minimum, they should at least be self consistent within behavior, with all "empty" classes starting with "Empty" and all "no-op" classes starting with "Noop" or something to that effect.

This needs #6397 merged first

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions