swaminathanmanish commented on code in PR #13735:
URL: https://github.com/apache/pinot/pull/13735#discussion_r1701086173


##########
pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/PinotHelixResourceManager.java:
##########
@@ -3476,160 +3476,161 @@ public String startReplaceSegments(String 
tableNameWithType, List<String> segmen
           segment, tableNameWithType);
     }
 
-    try {
-      DEFAULT_RETRY_POLICY.attempt(() -> {
-        // Fetch table config
-        TableConfig tableConfig = 
ZKMetadataProvider.getTableConfig(_propertyStore, tableNameWithType);
-        Preconditions.checkState(tableConfig != null, "Failed to find table 
config for table: %s", tableNameWithType);
-
-        // Fetch the segment lineage metadata
-        ZNRecord segmentLineageZNRecord =
-            
SegmentLineageAccessHelper.getSegmentLineageZNRecord(_propertyStore, 
tableNameWithType);
-        SegmentLineage segmentLineage;
-        int expectedVersion;
-        if (segmentLineageZNRecord == null) {
-          segmentLineage = new SegmentLineage(tableNameWithType);
-          expectedVersion = -1;
-        } else {
-          segmentLineage = SegmentLineage.fromZNRecord(segmentLineageZNRecord);
-          expectedVersion = segmentLineageZNRecord.getVersion();
-        }
-        // Check that the segment lineage entry id doesn't exist in the 
segment lineage
-        
Preconditions.checkState(segmentLineage.getLineageEntry(segmentLineageEntryId) 
== null,
-            "Entry id: %s already exists in the segment lineage for table: 
%s", segmentLineageEntryId,
-            tableNameWithType);
+    synchronized (getTableUpdaterLock(tableNameWithType)) {

Review Comment:
   This lock is also used for IS update which is different than lineage. IS and 
lineage are different Znodes and their updates can block each other?
   Could we use a dedicated lock/semaphore just for lineage ? 



-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

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