Skip to content

Aggregation enhancements #681

@rfecher

Description

@rfecher
  1. Rather than conflating the different aspects of an aggregation, break out the functionality further so that performance enhancements can be made on aggregations broken down by functionality. For example, the Aggregation interface may be better characterized as something like this:
public interface Aggregation<P extends Persistable, R extends Mergeable, T> 
{
    public P getParameters();

    public R getResult();

    public void aggregate(
            T entry );
}

rather than currently the aggregation function, the parameters to that function and the result are all rolled together.

  1. instead of decomposing ranges using the space filling curve decomposition on the client (batch scanner) decompose ranges within the iterator and appropriately seek. This will limit the amount of iterator instances and optimize the amount of the aggregation that can be rolled together. We may still want to break down ranges by tablet boundaries on the client side.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions