rocksdb/java/rocksjni
Miroslav Kovar fc2cf7ead2 Expose optimized TransactionBaseImpl::MultiGet through JNI (#13589)
Summary:
Addresses https://github.com/facebook/rocksdb/issues/13587.

This PR exposes the optimized implementation of batched reads through a `Transaction` object to Java clients.

The latency improvement of transactional multiget on production workload achieved by switching the implementation is roughly:
```
quantile=0.2: 21%
quantile=0.5: 28%
quantile=0.8: 46%
quantile=1.0: 239%
```

Pull Request resolved: https://github.com/facebook/rocksdb/pull/13589

Reviewed By: jaykorean

Differential Revision: D74660169

Pulled By: cbi42

fbshipit-source-id: d01780173e0500c96e5e431ff6645008cbf6e8b5
2025-05-14 13:19:06 -07:00
..
backup_engine_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
backupenginejni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
cache.cc Put Cache and CacheWrapper in new public header (#11192) 2023-02-09 12:12:02 -08:00
cassandra_compactionfilterjni.cc Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
cassandra_value_operator.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
checkpoint.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
clock_cache.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
columnfamilyhandle.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compact_range_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_filter.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
compaction_filter_factory.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_filter_factory_jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
compaction_filter_factory_jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
compaction_job_info.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_job_stats.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_options_fifo.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
compaction_options_universal.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
comparator.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
comparatorjnicallback.cc Fix Java API ComparatorOptions use after delete error (#11176) 2023-02-17 13:03:41 -08:00
comparatorjnicallback.h Fix Java API ComparatorOptions use after delete error (#11176) 2023-02-17 13:03:41 -08:00
compression_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
concurrent_task_limiter.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
config_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
cplusplus_to_java_convert.h Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
env.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
env_options.cc Deprecate random access max buffer size references - take #2 (#13288) 2025-01-10 15:32:38 -08:00
event_listener.cc Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
event_listener_jnicallback.cc Add (& fix) some simple source code checks (#8821) 2021-09-07 21:19:27 -07:00
event_listener_jnicallback.h Add (& fix) some simple source code checks (#8821) 2021-09-07 21:19:27 -07:00
export_import_files_metadatajni.cc Add jni Support for API CreateColumnFamilyWithImport (#11646) 2023-11-06 07:38:42 -08:00
filter.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
hyper_clock_cache.cc Add HyperClockCache Java API. (#12065) 2023-11-16 15:46:31 -08:00
import_column_family_options.cc Add jni Support for API CreateColumnFamilyWithImport (#11646) 2023-11-06 07:38:42 -08:00
ingest_external_file_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
iterator.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
jni_multiget_helpers.cc JNI get_helper code sharing / multiGet() use efficient batch C++ support (#12344) 2024-03-12 12:42:08 -07:00
jni_multiget_helpers.h JNI get_helper code sharing / multiGet() use efficient batch C++ support (#12344) 2024-03-12 12:42:08 -07:00
jni_perf_context.cc Implement PerfContex#toString for the Java API (#12473) 2024-04-03 14:33:31 -07:00
jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
kv_helper.h Fix deprecated dynamic exception in internal_repo_rocksdb/repo/java/rocksjni/kv_helper.h +1 2024-06-13 12:41:13 -07:00
loggerjnicallback.cc Add native logger support to RocksJava (#12213) 2024-01-17 17:51:36 -08:00
loggerjnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
lru_cache.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
memory_util.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
memtablejni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
merge_operator.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
native_comparator_wrapper_test.cc Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
optimistic_transaction_db.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
optimistic_transaction_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
options.cc Remove fail_if_options_file_error DB option (#13504) 2025-04-09 14:18:33 -07:00
options_util.cc java API - load block based table config (#10826) 2023-10-12 09:39:01 -07:00
persistent_cache.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
portal.h Add trivial copy support when FIFO compaction reason is kChangeTemperature (#13562) 2025-05-08 15:51:37 -07:00
ratelimiterjni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
remove_emptyvalue_compactionfilterjni.cc Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
restorejni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
rocks_callback_object.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
rocksdb_exception_test.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
rocksjni.cc Deprecate RangePtr, favor new RangeOpt and OptSlice (#13481) 2025-03-24 17:08:17 -07:00
slice.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
snapshot.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
sst_file_manager.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
sst_file_reader_iterator.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
sst_file_readerjni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
sst_file_writerjni.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
sst_partitioner.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
statistics.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
statisticsjni.cc Fix tabs and lint-ignores (#6734) 2020-04-20 11:39:31 -07:00
statisticsjni.h Remove 'virtual' when implied by 'override' (#12319) 2024-01-31 13:14:42 -08:00
stderr_logger.cc Add native logger support to RocksJava (#12213) 2024-01-17 17:51:36 -08:00
table.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
table_filter.cc Fix pointer to jlong conversion in 32 bit OS (#9396) 2022-03-01 09:02:15 -08:00
table_filter_jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
table_filter_jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
table_properties_collector_factory.cc Fix header files to meet Open source requirements (#12164) 2023-12-19 13:43:17 -08:00
table_properties_collector_factory.h Fix header files to meet Open source requirements (#12164) 2023-12-19 13:43:17 -08:00
testable_event_listener.cc Fix build on OpenBSD i386 (#12142) 2024-01-29 16:19:59 -08:00
thread_status.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
trace_writer.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
trace_writer_jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
trace_writer_jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
transaction.cc Expose optimized TransactionBaseImpl::MultiGet through JNI (#13589) 2025-05-14 13:19:06 -07:00
transaction_db.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
transaction_db_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
transaction_log.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
transaction_notifier.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
transaction_notifier_jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
transaction_notifier_jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
transaction_options.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
ttl.cc use nullptr instead of NULL / 0 in rocksdbjni (#12575) 2024-05-21 12:56:07 -07:00
wal_filter.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
wal_filter_jnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
wal_filter_jnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
write_batch.cc Replace ScopedArenaIterator with ScopedArenaPtr<InternalIterator> (#12470) 2024-03-22 13:40:42 -07:00
write_batch_test.cc Introduce a transaction option to skip memtable write during commit (#13144) 2024-12-05 15:00:17 -08:00
write_batch_with_index.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
write_buffer_manager.cc Change Java native methods to static (#11882) 2024-01-25 12:36:30 -08:00
writebatchhandlerjnicallback.cc Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00
writebatchhandlerjnicallback.h Run format check for *.h and *.cc files under java/ (#10851) 2022-10-25 09:26:51 -07:00