somandal commented on code in PR #17028:
URL: https://github.com/apache/pinot/pull/17028#discussion_r2445856594


##########
pinot-segment-local/src/main/java/org/apache/pinot/segment/local/segment/creator/impl/SegmentIndexCreationDriverImpl.java:
##########
@@ -542,6 +541,10 @@ private void buildStarTreeV2IfNecessary(File indexDir)
           MultipleTreesBuilder builder = new 
MultipleTreesBuilder(starTreeIndexConfigs, enableDefaultStarTree, indexDir,
               buildMode)) {
         builder.build();
+      } catch (Exception e) {
+        String tableNameWithType = _config.getTableConfig().getTableName();
+        LOGGER.error("Failed to build star-tree index for table: {}, 
skipping", tableNameWithType, e);
+        MinionMetrics.get().addMeteredTableValue(tableNameWithType, 
MinionMeter.STAR_TREE_INDEX_BUILD_FAILURES, 1);

Review Comment:
   i actually do see the `build()` method called by the realtime segment 
conversion path (`RealtimeSegmentConverter`):
   
   ```
     /**
      * Common method to build segment with the provided record reader
      */
     private void buildSegmentWithReader(SegmentIndexCreationDriverImpl driver, 
SegmentGeneratorConfig genConfig,
         RecordReader recordReader, int[] sortedDocIds, boolean 
useCompactedReader,
         @Nullable ThreadSafeMutableRoaringBitmap validDocIdsSnapshot)
         throws Exception {
       RealtimeSegmentSegmentCreationDataSource dataSource;
       if (useCompactedReader) {
         // For compacted readers, use the constructor that takes sortedDocIds 
and pass the validDocIds snapshot
         dataSource = new 
RealtimeSegmentSegmentCreationDataSource(_realtimeSegmentImpl, recordReader, 
sortedDocIds,
             validDocIdsSnapshot);
       } else {
         // For regular readers, use the original constructor
         dataSource =
             new RealtimeSegmentSegmentCreationDataSource(_realtimeSegmentImpl, 
(PinotSegmentRecordReader) recordReader);
       }
       driver.init(genConfig, dataSource, 
TransformPipeline.getPassThroughPipeline(_tableName)); // initializes reader
   
       if (!_enableColumnMajor) {
         driver.build();
       } else {
         //buildByColumn uses validDocIds to skip invalid record while indexing 
each column. We pass the validDocIds
         // only if we are using compacted reader.
         driver.buildByColumn(_realtimeSegmentImpl, useCompactedReader ? 
validDocIdsSnapshot : null);
       }
     }
   ```
   
   so I do think we need to pass some context on whether this is called from 
minion code path or server 😅 



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to