Class SegmentPartitionMetadataManager
- java.lang.Object
-
- org.apache.pinot.broker.routing.segmentpartition.SegmentPartitionMetadataManager
-
- All Implemented Interfaces:
SegmentZkMetadataFetchListener
public class SegmentPartitionMetadataManager extends Object implements SegmentZkMetadataFetchListener
ThePartitionDataManagermanages partitions of a table. It manages 1. all the online segments associated with the partition and their allocated servers 2. all the replica of a specific segment. It provides API to query 1. For each partition ID, what are the servers that contains ALL segments belong to this partition ID. 2. For each server, what are all the partition IDs and list of segments of those partition IDs on this server.
-
-
Constructor Summary
Constructors Constructor Description SegmentPartitionMetadataManager(String tableNameWithType, String partitionColumn, String partitionFunctionName, int numPartitions)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TablePartitionInfogetTablePartitionInfo()voidinit(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, List<String> onlineSegments, List<org.apache.helix.zookeeper.datamodel.ZNRecord> znRecords)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 theSegmentPreSelector).voidonAssignmentChange(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, Set<String> onlineSegments, List<String> pulledSegments, List<org.apache.helix.zookeeper.datamodel.ZNRecord> znRecords)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 theSegmentPreSelector).voidrefreshSegment(String segment, org.apache.helix.zookeeper.datamodel.ZNRecord znRecord)Refreshes the metadata for the given segment (called when segment is getting refreshed).
-
-
-
Method Detail
-
init
public void init(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, List<String> onlineSegments, List<org.apache.helix.zookeeper.datamodel.ZNRecord> znRecords)Description copied from interface:SegmentZkMetadataFetchListenerInitializes 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 theSegmentPreSelector). Should be called only once before calling other methods.- Specified by:
initin interfaceSegmentZkMetadataFetchListener
-
onAssignmentChange
public void onAssignmentChange(org.apache.helix.model.IdealState idealState, org.apache.helix.model.ExternalView externalView, Set<String> onlineSegments, List<String> pulledSegments, List<org.apache.helix.zookeeper.datamodel.ZNRecord> znRecords)Description copied from interface:SegmentZkMetadataFetchListenerProcesses 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 theSegmentPreSelector).- Specified by:
onAssignmentChangein interfaceSegmentZkMetadataFetchListener
-
refreshSegment
public void refreshSegment(String segment, @Nullable org.apache.helix.zookeeper.datamodel.ZNRecord znRecord)
Description copied from interface:SegmentZkMetadataFetchListenerRefreshes the metadata for the given segment (called when segment is getting refreshed).- Specified by:
refreshSegmentin interfaceSegmentZkMetadataFetchListener
-
getTablePartitionInfo
public TablePartitionInfo getTablePartitionInfo()
-
-