Skip to content

Commit 13c4a37

Browse files
committed
Address feedback
1 parent 3c005f8 commit 13c4a37

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

pinot-core/src/main/java/org/apache/pinot/core/data/manager/BaseTableDataManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,7 @@ public void addSegment(String segmentName, TableConfig tableConfig, IndexLoading
240240
@Override
241241
public void removeSegment(String segmentName) {
242242
_logger.info("Removing segment: {} from table: {}", segmentName, _tableNameWithType);
243-
SegmentDataManager segmentDataManager = deRegisterSegment(segmentName);
243+
SegmentDataManager segmentDataManager = unregisterSegment(segmentName);
244244
if (segmentDataManager != null) {
245245
releaseSegment(segmentDataManager);
246246
_logger.info("Removed segment: {} from table: {}", segmentName, _tableNameWithType);
@@ -449,7 +449,7 @@ protected SegmentDataManager registerSegment(String segmentName, SegmentDataMana
449449
* identify this scenario.
450450
*/
451451
@Nullable
452-
protected SegmentDataManager deRegisterSegment(String segmentName) {
452+
protected SegmentDataManager unregisterSegment(String segmentName) {
453453
_deletedSegments.put(segmentName, segmentName);
454454
return _segmentDataManagerMap.remove(segmentName);
455455
}

pinot-core/src/main/java/org/apache/pinot/core/query/executor/ServerQueryExecutorV1Impl.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,6 @@ private DataTable processQueryInternal(ServerQueryRequest queryRequest, Executor
195195
List<String> unAcquiredSegments = new ArrayList<>();
196196
List<SegmentDataManager> segmentDataManagers = tableDataManager.acquireSegments(
197197
segmentsToQuery, unAcquiredSegments);
198-
List<String> missingSegments =
199-
unAcquiredSegments.stream()
200-
.filter(segmentName -> !tableDataManager.isSegmentDeletedRecently(segmentName))
201-
.collect(Collectors.toList());
202198
int numSegmentsAcquired = segmentDataManagers.size();
203199
List<IndexSegment> indexSegments = new ArrayList<>(numSegmentsAcquired);
204200
for (SegmentDataManager segmentDataManager : segmentDataManagers) {
@@ -297,12 +293,18 @@ private DataTable processQueryInternal(ServerQueryRequest queryRequest, Executor
297293
//
298294
// After step 2 but before step 4, segment will be missing on server side
299295
// TODO: Change broker to watch both IdealState and ExternalView to not query the removed segments
300-
int numMissingSegments = missingSegments.size();
301-
if (numMissingSegments != 0) {
302-
dataTable.addException(QueryException.getException(QueryException.SERVER_SEGMENT_MISSING_ERROR,
303-
String.format("%d segments %s missing on server: %s", numMissingSegments, missingSegments,
304-
_instanceDataManager.getInstanceId())));
305-
_serverMetrics.addMeteredTableValue(tableNameWithType, ServerMeter.NUM_MISSING_SEGMENTS, numMissingSegments);
296+
if (unAcquiredSegments.size() > 0) {
297+
List<String> missingSegments =
298+
unAcquiredSegments.stream()
299+
.filter(segmentName -> !tableDataManager.isSegmentDeletedRecently(segmentName))
300+
.collect(Collectors.toList());
301+
int numMissingSegments = missingSegments.size();
302+
if (numMissingSegments > 0) {
303+
dataTable.addException(QueryException.getException(QueryException.SERVER_SEGMENT_MISSING_ERROR,
304+
String.format("%d segments %s missing on server: %s", numMissingSegments, missingSegments,
305+
_instanceDataManager.getInstanceId())));
306+
_serverMetrics.addMeteredTableValue(tableNameWithType, ServerMeter.NUM_MISSING_SEGMENTS, numMissingSegments);
307+
}
306308
}
307309

308310
if (tableDataManager instanceof RealtimeTableDataManager) {

pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManagerConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public class HelixInstanceDataManagerConfig implements InstanceDataManagerConfig
127127
private final static String[] REQUIRED_KEYS = {INSTANCE_ID, INSTANCE_DATA_DIR, READ_MODE};
128128
private static final long DEFAULT_ERROR_CACHE_SIZE = 100L;
129129
private static final int DEFAULT_DELETED_SEGMENTS_CACHE_SIZE = 10_000;
130-
private static final int DEFAULT_DELETED_SEGMENTS_CACHE_TTL_MINUTES = 10;
130+
private static final int DEFAULT_DELETED_SEGMENTS_CACHE_TTL_MINUTES = 2;
131131
private PinotConfiguration _instanceDataManagerConfiguration = null;
132132

133133
public HelixInstanceDataManagerConfig(PinotConfiguration serverConfig)

0 commit comments

Comments
 (0)