Skip to content

Disable Arrow Java's per-accessor safety checks

Applies to: the RowData↔Arrow transpose at every native island's edges

What it is

Two JVM flags — arrow.enable_unsafe_memory_access and arrow.enable_null_check_for_get — set the same way Comet/Spark set them, removing Arrow Java's per-accessor bounds and refcount checks (5454540).

Why it works

Every vector read and write in the entry transpose was paying a bounds check and a refcount check per accessor call. Those checks accounted for roughly a third of native-side CPU on q0.

Measured

Cut the entry transpose from ~21% to ~12% of CPU.