When calling Result.getValue(), an extra dummy KeyValue and its associated underlying byte array are allocated, as well as a persistent buffer that will contain the returned value.
These can be avoided by reusing a static array for the dummy object and by passing a ByteBuffer object as a value destination buffer to the read method.
The current functionality is maintained, and we have added a separate method call stack that employs the described changes. I will provide more details with the patch.
Running tests with a profiler, the reduction of read time seems to be of up to 40%.