github-actions[bot] commented on code in PR #69300:
URL: https://github.com/apache/doris/pull/69300#discussion_r4321394838
##########
be/src/format_v2/table_reader.h:
##########
@@ -148,6 +152,7 @@ struct TableReadOptions {
std::shared_ptr<io::IOContext> io_ctx;
RuntimeState* runtime_state;
RuntimeProfile* scanner_profile;
+ parquet::ParquetProfileCache* parquet_profile_cache = nullptr;
Review Comment:
[P2] Cache the nested position-delete system-table reader too
Scanning `table$position_deletes` with multiple Parquet delete files still
takes the full counter-registration path for every split:
`IcebergPositionDeleteSysTableV2Reader::_init_position_delete_reader()` creates
a fresh `PositionDeleteFileTableReader` but omits this option. The generic
factory consequently receives a null cache and `ParquetReader::_init_profile()`
calls `ParquetProfile::init()` for each file, repeatedly acquiring the shared
child profile's registration lock. Retain and pass a cache bound to
`IcebergPositionDeleteFileReader` across splits; forwarding the outer cache
would attribute counters to the wrong profile. This is separate from the
earlier fixed `_create_delete_file_reader()` issue: `$position_deletes` scans
use this nested system-table reader instead of the ordinary Iceberg
delete-application factory. Add repeated-split coverage for this 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]