lxy-9602 opened a new issue, #480:
URL: https://github.com/apache/paimon-cpp/issues/480

   ### Search before asking
   
   - [x] I searched in the 
[issues](https://github.com/apache/paimon-cpp/issues) and found nothing similar.
   
   
   ### Motivation
   
   The C++ Blob fallback reader currently materializes all sequence layers 
before selecting the newest non-placeholder value for each row.
   
   When newer layers cover older values, this introduces unnecessary I/O, 
decoding, descriptor construction, and memory allocations.
   
   Java avoids this work by calling skip() on older layers once a newer 
non-placeholder value has been found. Aligning the C++ reading strategy would 
improve performance, especially when multiple layers overlap or Blob payloads 
are large.
   
   ### Solution
   
   Process sequence layers from newest to oldest within each read window:
   
   - Materialize older values only for rows that still require fallback.
   - Advance covered rows without reading or decoding their payloads.
   - Bound each batch by the current read/skip range to avoid unnecessary reads 
across range or window boundaries.
   - Preserve null replacement semantics, row selections, deletion vectors, 
row-tracking fields, and layer-length validation.
   
   ### Anything else?
   
   This optimization applies to BLOB, ARRAY<BLOB>, and MAP<..., BLOB>, in both 
content and descriptor modes.
   
   
   ### Are you willing to submit a PR?
   
   - [x] I'm willing to submit a PR!


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

Reply via email to