Class SinglePartitionColumnSegmentPruner

  • All Implemented Interfaces:
    SegmentPruner

    public class SinglePartitionColumnSegmentPruner
    extends Object
    implements SegmentPruner
    The SinglePartitionColumnSegmentPruner prunes segments based on their partition metadata stored in ZK. The pruner supports queries with filter (or nested filter) of EQUALITY and IN predicates.
    • Constructor Summary

      Constructors 
      Constructor Description
      SinglePartitionColumnSegmentPruner​(String tableNameWithType, String partitionColumn, 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

      • SinglePartitionColumnSegmentPruner

        public SinglePartitionColumnSegmentPruner​(String tableNameWithType,
                                                  String partitionColumn,
                                                  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