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


##########
be/src/storage/index/inverted/snii/snii_doris_adapter.cpp:
##########
@@ -249,10 +273,29 @@ Status DorisSniiFileReader::read_batch(const 
std::vector<::doris::snii::io::Rang
 
     // Run the planned physical reads, concurrently when a pool is available.
     auto run_segment = [&](size_t s) {
+        const bool timed = segs[s].len <= kInlineMaxBatchBytes;

Review Comment:
   [P2] Keep remote timings out of the local-read latency estimate
   
   `timed` only checks length, so successful direct-remote and cached-remote 
segments also update `g_small_read_ns`, although `_local_fs` restricts use of 
that estimate to local files. This occurs with tiered storage: 
`Tablet::pick_cooldown_rowset()` supports local and remote rowsets in the same 
tablet, and both reach this adapter. For example, one 1 ms remote read raises 
an initially zero estimate to 125 us, making subsequent hot local batches with 
2 to 4 segments fail the 20 us inline-admission check. Frequent remote reads 
can keep them on the shared pool and erase the intended scheduling benefit even 
while the local page cache stays hot. Restrict sampling to local files while 
continuing to sample their pooled reads, and add a mixed remote/local test so 
slow remote IO cannot disable the hot local path.



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