jon-wei commented on a change in pull request #8154: Fix `is_realtime` column
behavior in sys.segments table
URL: https://github.com/apache/incubator-druid/pull/8154#discussion_r309483085
##########
File path:
sql/src/main/java/org/apache/druid/sql/calcite/schema/DruidSchema.java
##########
@@ -431,19 +431,29 @@ void removeSegment(final DataSegment segment)
}
}
- private void removeServerSegment(final DruidServerMetadata server, final
DataSegment segment)
+ @VisibleForTesting
+ void removeServerSegment(final DruidServerMetadata server, final DataSegment
segment)
{
synchronized (lock) {
log.debug("Segment[%s] is gone from server[%s]", segment.getId(),
server.getName());
final Map<SegmentId, AvailableSegmentMetadata> knownSegments =
segmentMetadataInfo.get(segment.getDataSource());
final AvailableSegmentMetadata segmentMetadata =
knownSegments.get(segment.getId());
- final Set<String> segmentServers = segmentMetadata.getReplicas();
- final ImmutableSet<String> servers = FluentIterable.from(segmentServers)
-
.filter(Predicates.not(Predicates.equalTo(server.getName())))
- .toSet();
+ final Set<DruidServerMetadata> segmentServers =
segmentMetadata.getReplicas();
+ final ImmutableSet<DruidServerMetadata> servers = FluentIterable
+ .from(segmentServers)
+ .filter(Predicates.not(Predicates.equalTo(server)))
+ .toSet();
+ final Optional<DruidServerMetadata> realtimeServer = servers
+ .stream()
+ .filter(metadata -> metadata.getType().equals(ServerType.REALTIME))
+ .findAny();
+
+ // if there is no realtime server in the replicas, isRealtime flag
should be unset
+ long isRealtime = realtimeServer.isPresent() ? 1 : 0;
Review comment:
> It might be more useful for is_realtime to report true if it is only
available on realtime tasks, and false if any server serving the segment is a
historical
That sounds good to me
----------------------------------------------------------------
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:
[email protected]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]