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


##########
fe/be-java-extensions/paimon-scanner/src/main/java/org/apache/doris/paimon/PaimonJniScanner.java:
##########
@@ -867,6 +874,39 @@ private static void validateSerializedReadBatchSize(String 
value) {
         }
     }
 
+    private boolean initTableFromCache() {
+        PaimonTableCache.TableCacheEntry cachedEntry = 
PaimonTableCache.acquire(tableCacheKey);
+        if (cachedEntry == null) {
+            return false;
+        }
+        tableCacheEntry = cachedEntry;
+        table = cachedEntry.table();
+        paimonAllFieldNames = cachedEntry.fieldNames();
+        params.remove(SERIALIZED_TABLE);

Review Comment:
   [P2] Drop the serialized system-source payload after resolving the cached 
table. System-table scans also send a full FileStoreTable in 
paimon.doris.serialized-system-source (PaimonScanPlanProvider.java:924-937). A 
cold init deserializes it to rebuild the table that is published in this cache; 
on a warm hit that rebuilt table is already available and this payload is never 
read. This branch removes only serialized_table, so every warm system-table 
scanner retains another full Base64 table string in params for the split 
lifetime (and the cold path retains it after deserialization). Remove the 
system-source entry on hit and after successful deserialization, and extend the 
warm-hit retention test. This is distinct from discussion_r3663697749: the 
current code fixes the primary serialized_table payload from that thread, not 
this separate system-table source payload.



##########
be/src/format/jni/jni_reader.cpp:
##########
@@ -416,6 +398,35 @@ void JniReader::_collect_profile_before_close() {
             LOG(WARNING) << "failed to get jni env when collect profile: " << 
st;
             return;
         }
+        COUNTER_UPDATE(_open_scanner_time, _jni_scanner_open_watcher);

Review Comment:
   [P2] Forward the pre-close profile hook from JdbcScanner. This move assumes 
every JniReader owner calls collect_profile_before_close() before close. 
FileScanner does, but the still-live legacy JdbcScanner has no hook override 
and its close() calls only _jni_reader->close(). Ordinary JDBC scans therefore 
stop publishing OpenScannerTime, FillBlockTime, the Java append/create/scan 
timers, and MaxTimeSplitWeight that JniReader::close() published before this 
change. Please forward the child hook (or collect it immediately before close) 
and add a JDBC profile regression test. This is distinct from 
discussion_r3701518872: that thread requested the move but did not cover this 
owner, which never invokes the new hook.



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