github-actions[bot] commented on code in PR #66711:
URL: https://github.com/apache/doris/pull/66711#discussion_r3781710820


##########
fe/fe-core/src/main/java/org/apache/doris/datasource/FileSplit.java:
##########
@@ -76,6 +80,12 @@ public Object getInfo() {
         return null;
     }
 
+    @Override
+    public Optional<String> getFileAffinityKey() {
+        return hosts.length == 0 && fileLength > length && 
fileAffinitySupported

Review Comment:
   [P2] Keep pinned local TVFs out of same-file affinity
   
   This predicate also becomes true for a splittable Parquet/ORC `local()` TVF: 
`TVFScanNode` enables the scan-wide format flag, `FileSplitter` supplies empty 
synthetic hosts, and `fileLength > length` holds. In the normal non-shared 
form, `backend_id` has already constrained execution to the selected backend 
location, but recording this key makes `AffinityAwareInstanceSplitter` treat 
the entire file as one group. For a query over that one large file that is 
non-serial before grouping, both legacy and Nereids consequently drop from 
several fragment instances to one; the remaining scanner fan-out does not 
restore the lost downstream pipeline parallelism. Please gate affinity off 
using local-TVF/source provenance (production `safe_glob` paths can be 
schemaless, so a `FILE_LOCAL`-only check is insufficient) and cover a split, 
backend-pinned local-TVF plan.



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