You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 710ae55
Browse filesBrowse the repository at this point in the historyBrowse files
[test](fluss) Check from the profile that the heavy JNI readers declare their heap
### What problem does this PR solve?
Issue Number: None
Related PR: None
Problem Summary:
test_fluss_jni_heap_admission compared every query's rows with enable_jni_heap_admission off and on.
That agreement holds just as well if FE never sends jni_heap_bytes or BE never goes through the gate, so
the feature could be disconnected while the suite stayed green. Two of the reads it named as declaring
did not declare in this environment either:
- PK_FULL ranges declare the change log after their bucket's kv snapshot. The environment takes a kv
snapshot every ten seconds and nothing writes after init, so by the time the suite runs every snapshot
covers its whole log: the PK_FULL reads of pk_basic and pk_part declare nothing (their profile shows
JvmHeapDeclaredBytes 0.00).
- The union read's lake half is read natively unless forced through JNI, so no paimon split declared.
The suite now reads JvmHeapDeclaredBytes from the profile (the per-instance detail profile, fetched
through the FE HTTP API as external_table_p0/cache/condition_cache_orc does) and asserts that the union
read declares (its PK_TAIL tail), that the same read with force_jni_scanner declares at least a
megabyte (a paimon JNI split declares a 1 MB dictionary page for every column of every file, the fluss
tail here about a kilobyte), and that a log read declares nothing. The forced-JNI union read is also
recorded and compared with the variable off. The header no longer says PK_FULL declares here; those
reads stay for the agreement, and FlussJniHeapEstimateTest covers what a PK_FULL range declares.
### Release note
None
### Check List (For Author)
- Test: Regression test
- test_fluss_jni_heap_admission passes against a local cluster whose FE and BE carry this PR's
admission code (built from the branch it was split from) and the fluss 1.0.0 docker environment;
the .out was regenerated with -forceGenOut, which adds only union_rows_jni, then checked by a
normal run
- With the variable off both union reads report JvmHeapDeclaredBytes 0.00, so the new assertions
fail if the declarations stop reaching BE
- Behavior changed: No
- Does this need documentation: No
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
0 commit comments