Class DiskBackedDeferredGroupingProvider<DATA_TYPE>

java.lang.Object
com.illumon.iris.db.v2.dataindex.MemoizingGroupingProvider
com.illumon.iris.db.v2.dataindex.DiskBackedDeferredGroupingProvider<DATA_TYPE>
All Implemented Interfaces:
GroupingProvider, KeyRangeGroupingProvider

public class DiskBackedDeferredGroupingProvider<DATA_TYPE> extends MemoizingGroupingProvider implements KeyRangeGroupingProvider
Grouping provider that loads column location metadata and assembles grouping indexes lazily on demand.
  • Field Details

    • THREADPOOL_SIZE

      public static final int THREADPOOL_SIZE
    • GROUPING_POOL

      public static final ForkJoinPool GROUPING_POOL
  • Constructor Details

    • DiskBackedDeferredGroupingProvider

      public DiskBackedDeferredGroupingProvider(@NotNull com.illumon.dataobjects.ColumnDefinition<DATA_TYPE> columnDefinition, @NotNull com.fishlib.io.logger.Logger log)
  • Method Details

    • addSource

      public void addSource(@NotNull ColumnLocation columnLocation, long firstKey, long lastKey)
      Description copied from interface: KeyRangeGroupingProvider
      Add a column location for consideration when constructing groupings.
      Specified by:
      addSource in interface KeyRangeGroupingProvider
      Parameters:
      columnLocation - The column location to add
      firstKey - The first key in the range for this column location
      lastKey - The last key in the range for this column location (inclusive)
    • getGroupingBuilder

      @NotNull public GroupingBuilder getGroupingBuilder()
      Description copied from interface: GroupingProvider
      Get a GroupingBuilder suitable for creating groups with specific properties.
      Specified by:
      getGroupingBuilder in interface GroupingProvider
      Returns:
      a GroupingBuilder
    • hasGrouping

      public boolean hasGrouping()
      Description copied from interface: GroupingProvider
      Check if this provider is able to create a grouping for all included regions or not.
      Specified by:
      hasGrouping in interface GroupingProvider
      Returns:
      true if this provider can create a grouping.
    • hasGrouping

      public boolean hasGrouping(@Nullable ReadOnlyIndex relevantIndex)
      Description copied from interface: GroupingProvider
      Check if this provider is able to create a grouping for all included regions or not.
      Specified by:
      hasGrouping in interface GroupingProvider
      Returns:
      true if this provider can create a grouping.