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


##########
be/src/format_v2/jni/paimon_jni_reader.cpp:
##########
@@ -94,6 +95,12 @@ Status 
PaimonJniReader::build_scanner_params(std::map<std::string, std::string>*
     (*params)["paimon_split"] = paimon_params.paimon_split;
     (*params)["paimon_predicate"] = *paimon_predicate;

Review Comment:
   [P2] Release the native loader payloads after constructing the Java scanner. 
This assignment leaves every V2 reader holding its own `serialized_table` 
string in `_scanner_params`, and the options loop likewise copies 
`paimon.doris.serialized-system-source`; V1 moves the same per-reader copies 
into `JniReader::_scanner_params`. `convert_to_java_map()` creates separate 
Java strings, so the new `params.remove(...)` calls release only the Java 
copies. The native maps survive until split close/reset (or V1 reader 
destruction), so N concurrent warm scanners still retain N full Base64 payloads 
even though they share the deserialized `Table`. This is distinct from the 
existing serialized-table and system-source threads, which cover Java-map 
retention. Erase the loader-only native keys (or clear the native parameter 
map) once Java object construction succeeds in both paths, and add lifecycle 
coverage.



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