npawar commented on a change in pull request #6667:
URL: https://github.com/apache/incubator-pinot/pull/6667#discussion_r595600886



##########
File path: 
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/PinotLLCRealtimeSegmentManager.java
##########
@@ -448,14 +494,39 @@ private void commitSegmentMetadataInternal(String 
realtimeTableName,
     // Refresh the Broker routing to reflect the changes in the segment ZK 
metadata
     _helixResourceManager.sendSegmentRefreshMessage(realtimeTableName, 
committingSegmentName, false, true);
 
-    // Step-2
+    // Get current partition groups - this gives current state of latest 
segments for each partition
+    // E.g. [A - DONE], [B - IN_PROGRESS], [C - IN_PROGRESS]
+    PartitionLevelStreamConfig streamConfig = new 
PartitionLevelStreamConfig(tableConfig.getTableName(),
+        IngestionConfigUtils.getStreamConfigMap(tableConfig));
+    List<PartitionGroupMetadata> currentPartitionGroupMetadataList =
+        getCurrentPartitionGroupMetadataList(idealState, streamConfig);
+
+    // Fetches new partition groups, given current partition groups metadata.
+    // Assume stream has partitions A, B, C, all still consuming. Result will 
be A, B, C
+    // Assume A was split into D, E, but messages of A are yet to be consumed, 
result will be A, B, C

Review comment:
       The comments are kinda irrelevant out here, as those are kinesis 
specific examples. Removed them.
   In general, the controller will get the currentPartitionGroupMetadata using 
the ideal state and segment zk metadata of latest segment for each partition 
group. 
   The Stream impl will look at the partitions in the stream and get new 
partition groups.
   Take the example of Kafka, if we began with 3 partitions, and partition 0 
was committing, we would have 
   Current partition group metadata:
   0 - seqNum: 0, startOffset: 100, endOffset: 220,  status: DONE
   1 - seqNum: 0, startOffset: 110, endOffset: -,  status: IN_PROGRESS
   2 - seqNum: 0, startOffset: 100, endOffset: -,  status: IN_PROGRESS
   And new partition group info: [0, 1, 2]
   
   Lets assume partition 3,4 had come up, before the commit call for partition 
0 was reached. Then, the new partition group info would be: [0, 1, 2, 3, 4]




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to