github-actions[bot] commented on code in PR #63366:
URL: https://github.com/apache/doris/pull/63366#discussion_r3432646806
##########
be/src/exec/pipeline/dependency.h:
##########
@@ -832,50 +832,44 @@ struct SetSharedState : public BasicSharedState {
Status hash_table_init();
};
-enum class ExchangeType : uint8_t {
- NOOP = 0,
- // Shuffle data by Crc32CHashPartitioner
- HASH_SHUFFLE = 1,
- // Round-robin passthrough data blocks.
- PASSTHROUGH = 2,
- // Shuffle data by Crc32HashPartitioner<ShuffleChannelIds> (e.g. same as
storage engine).
- BUCKET_HASH_SHUFFLE = 3,
- // Passthrough data blocks to all channels.
- BROADCAST = 4,
- // Passthrough data to channels evenly in an adaptive way.
- ADAPTIVE_PASSTHROUGH = 5,
- // Send all data to the first channel.
- PASS_TO_ONE = 6,
-};
+inline bool is_shuffled_exchange(TLocalPartitionType::type idx) {
Review Comment:
dependency.h now directly exposes inline helpers and DataDistribution
members that use TLocalPartitionType, but this header never includes the thrift
header that defines that enum. This header is included directly from several
translation units that only include Types_types.h or protobuf headers first,
for example runtime/record_batch_queue.cpp and
load/group_commit/group_commit_mgr.cpp, so the build depends on unrelated
include order and can fail with TLocalPartitionType undeclared. Please include
<gen_cpp/Partitions_types.h> from dependency.h itself before using the enum.
##########
fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java:
##########
@@ -563,6 +567,10 @@ public void update(Map<String, String> summaryInfo) {
// This method is used to display the final data status when the overall
query ends.
// This can avoid recalculating some strings and so on every time during
the update process.
public void queryFinished() {
+ // Mark profile collection as complete. This is written last, after
all BE fragment
+ // profiles have been merged (called post-waitForFragmentsDone).
Pollers can wait for
+ // this field to avoid reading a partial profile.
Review Comment:
The completion marker is written before the optional
SPLITS_ASSIGNMENT_WEIGHT field, but the new contract says readers can poll this
marker to know the profile is fully collected. A polling reader can observe Is
Profile Collection Completed=true while queryFinished() has not yet added the
assignment-weight info string, and then read a partial profile. Move this
marker write to the end of queryFinished() after the optional fields are added.
--
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]