bobhan1 opened a new pull request, #66520:
URL: https://github.com/apache/doris/pull/66520

   ### What problem does this PR solve?
   
   Issue Number: N/A
   
   Related PR: #65658
   
   Problem Summary:
   
   Cold remote scans can issue independent reads for adjacent data pages, 
increasing remote request count and preventing the returned bytes from being 
reused directly by the page decode path. Sparse reads also need to preserve 
exact page-sized I/O instead of expanding every request to a cache-block 
boundary.
   
   This PR adds an opt-in query page prefetch and I/O coalescing path:
   
   - Support exact `NO_WRITE + UNALIGNED` reads across local cache, inflight 
buffers, and remote storage.
   - Decode pages directly from prefetched byte slices through the existing 
`PageIO` validation and decompression path.
   - Plan bounded page windows and coalesced ranges for forward, reverse, and 
sparse-rowid scans.
   - Apply non-blocking per-query and per-BE admission limits with 
cancellation, shutdown, and synchronous fallback handling.
   - Prepare all participating columns before consumption, including struct, 
array, and map physical rowid propagation.
   - Schedule writeback only for complete useful cache blocks through a 
dedicated coordinator and fixed-block submitter.
   
   The feature is disabled by default through 
`enable_query_page_prefetch=false`. Rejected, cancelled, failed, or unavailable 
prefetch ranges fall back to the existing synchronous page read path.
   
   ### Release note
   
   Add an opt-in BE page prefetch and remote I/O coalescing path for cold 
queries.
   
   ### Check List (For Author)
   
   - Test
       - [ ] Regression test
       - [x] Unit Test
           - Focused ASAN BE unit tests for cached reads, page decoding, 
prefetch planning/admission/service, writeback, column readers, and segment 
iteration: 264 passed; 3 existing disabled tests skipped.
           - `./build.sh --be -j100`
           - `build-support/check-format.sh`
           - `git diff --check b586dd1f429..HEAD`
       - [ ] Manual test (add detailed scripts or steps below)
       - [ ] No need to test or manual test. Explain why:
           - [ ] This is a refactor/code format and no logic has been changed.
           - [ ] Previous test can cover this change.
           - [ ] No code files have been changed.
           - [ ] Other reason
   
   - Behavior changed:
       - [ ] No.
       - [x] Yes. When explicitly enabled, query scans can prefetch and 
coalesce data-page reads; the default remains disabled.
   
   - Does this need documentation?
       - [x] No.
       - [ ] Yes.
   
   ### Check List (For Reviewer who merge this PR)
   
   - [ ] Confirm the release note
   - [ ] Confirm test cases
   - [ ] Confirm document
   - [ ] Add branch pick label
   


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