foundationdb
foundationdb copied to clipboard
No Java control over target_byte_sizes causes potential inefficiencies
The current Java API does not allow the caller to control the target_byte limits; Instead, target bytes is always set to 0 in the java driver, which causes the C driver to apply its own logic.
Further, even if that weren't set, the C driver overrides sizes specified externally using a std::min, preventing larger buffer sizes from being chosen by the client even with extra knowledge.
The net result of this is that extra getRange() calls may be necessary, which can lead to significant performance problems.
The target bytes strategies should be exposed in the Java layer