Class EmptySegmentPruner

  • All Implemented Interfaces:
    SegmentPruner

    public class EmptySegmentPruner
    extends Object
    implements SegmentPruner
    The EmptySegmentPruner prunes segments if they have 0 total docs. It does not prune segments with -1 total docs (that can be either error case or CONSUMING segment).
    • Constructor Summary

      Constructors 
      Constructor Description
      EmptySegmentPruner​(org.apache.pinot.spi.config.table.TableConfig tableConfig, org.apache.helix.store.zk.ZkHelixPropertyStore<org.apache.helix.zookeeper.datamodel.ZNRecord> propertyStore)  
    • Method Summary

      Modifier and Type Method Description
      void init​(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, Set<String> onlineSegments)
      Initializes the segment pruner with the ideal state, external view and online segments (segments with ONLINE/CONSUMING instances in the ideal state and pre-selected by the SegmentPreSelector).
      void onAssignmentChange​(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, Set<String> onlineSegments)
      Processes the segment assignment (ideal state or external view) change based on the given online segments (segments with ONLINE/CONSUMING instances in the ideal state and pre-selected by the SegmentPreSelector).
      Set<String> prune​(org.apache.pinot.common.request.BrokerRequest brokerRequest, Set<String> segments)
      Prunes the segments queried by the given broker request, returns the selected segments to be queried.
      void refreshSegment​(String segment)
      Refreshes the metadata for the given segment (called when segment is getting refreshed).
    • Constructor Detail

      • EmptySegmentPruner

        public EmptySegmentPruner​(org.apache.pinot.spi.config.table.TableConfig tableConfig,
                                  org.apache.helix.store.zk.ZkHelixPropertyStore<org.apache.helix.zookeeper.datamodel.ZNRecord> propertyStore)
    • Method Detail

      • init

        public void init​(org.apache.helix.model.IdealState idealState,
                         org.apache.helix.model.ExternalView externalView,
                         Set<String> onlineSegments)
        Description copied from interface: SegmentPruner
        Initializes the segment pruner with the ideal state, external view and online segments (segments with ONLINE/CONSUMING instances in the ideal state and pre-selected by the SegmentPreSelector). Should be called only once before calling other methods.
        Specified by:
        init in interface SegmentPruner
      • onAssignmentChange

        public void onAssignmentChange​(org.apache.helix.model.IdealState idealState,
                                       org.apache.helix.model.ExternalView externalView,
                                       Set<String> onlineSegments)
        Description copied from interface: SegmentPruner
        Processes the segment assignment (ideal state or external view) change based on the given online segments (segments with ONLINE/CONSUMING instances in the ideal state and pre-selected by the SegmentPreSelector).
        Specified by:
        onAssignmentChange in interface SegmentPruner
      • refreshSegment

        public void refreshSegment​(String segment)
        Description copied from interface: SegmentPruner
        Refreshes the metadata for the given segment (called when segment is getting refreshed).
        Specified by:
        refreshSegment in interface SegmentPruner
      • prune

        public Set<String> prune​(org.apache.pinot.common.request.BrokerRequest brokerRequest,
                                 Set<String> segments)
        Description copied from interface: SegmentPruner
        Prunes the segments queried by the given broker request, returns the selected segments to be queried.
        Specified by:
        prune in interface SegmentPruner