rocksdb-native 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.clang-format +15 -0
- package/.github/workflows/test-node.yml +23 -0
- package/.gitmodules +4 -0
- package/CMakeLists.txt +33 -0
- package/LICENSE +201 -0
- package/NOTICE +13 -0
- package/README.md +15 -0
- package/binding.c +470 -0
- package/binding.js +1 -0
- package/index.js +276 -0
- package/package.json +19 -0
- package/vendor/rocksdb/.circleci/config.yml +892 -0
- package/vendor/rocksdb/.circleci/ubsan_suppression_list.txt +6 -0
- package/vendor/rocksdb/.clang-format +5 -0
- package/vendor/rocksdb/.github/workflows/sanity_check.yml +47 -0
- package/vendor/rocksdb/.lgtm.yml +4 -0
- package/vendor/rocksdb/AUTHORS +12 -0
- package/vendor/rocksdb/CMakeLists.txt +1591 -0
- package/vendor/rocksdb/CODE_OF_CONDUCT.md +77 -0
- package/vendor/rocksdb/CONTRIBUTING.md +17 -0
- package/vendor/rocksdb/COPYING +339 -0
- package/vendor/rocksdb/DEFAULT_OPTIONS_HISTORY.md +24 -0
- package/vendor/rocksdb/DUMP_FORMAT.md +16 -0
- package/vendor/rocksdb/HISTORY.md +2399 -0
- package/vendor/rocksdb/INSTALL.md +220 -0
- package/vendor/rocksdb/LANGUAGE-BINDINGS.md +26 -0
- package/vendor/rocksdb/LICENSE.Apache +202 -0
- package/vendor/rocksdb/LICENSE.leveldb +29 -0
- package/vendor/rocksdb/Makefile +2579 -0
- package/vendor/rocksdb/PLUGINS.md +8 -0
- package/vendor/rocksdb/README.md +29 -0
- package/vendor/rocksdb/TARGETS +5599 -0
- package/vendor/rocksdb/USERS.md +165 -0
- package/vendor/rocksdb/Vagrantfile +39 -0
- package/vendor/rocksdb/WINDOWS_PORT.md +228 -0
- package/vendor/rocksdb/buckifier/bench-slow.json +6163 -0
- package/vendor/rocksdb/buckifier/bench.json +1594 -0
- package/vendor/rocksdb/buckifier/buckify_rocksdb.py +333 -0
- package/vendor/rocksdb/buckifier/check_buck_targets.sh +32 -0
- package/vendor/rocksdb/buckifier/rocks_test_runner.sh +6 -0
- package/vendor/rocksdb/buckifier/targets_builder.py +150 -0
- package/vendor/rocksdb/buckifier/targets_cfg.py +41 -0
- package/vendor/rocksdb/buckifier/util.py +118 -0
- package/vendor/rocksdb/build_tools/amalgamate.py +168 -0
- package/vendor/rocksdb/build_tools/benchmark_log_tool.py +238 -0
- package/vendor/rocksdb/build_tools/build_detect_platform +804 -0
- package/vendor/rocksdb/build_tools/check-sources.sh +48 -0
- package/vendor/rocksdb/build_tools/dependencies_platform010.sh +22 -0
- package/vendor/rocksdb/build_tools/dockerbuild.sh +3 -0
- package/vendor/rocksdb/build_tools/error_filter.py +181 -0
- package/vendor/rocksdb/build_tools/fb_compile_mongo.sh +55 -0
- package/vendor/rocksdb/build_tools/fbcode_config.sh +175 -0
- package/vendor/rocksdb/build_tools/fbcode_config_platform010.sh +175 -0
- package/vendor/rocksdb/build_tools/format-diff.sh +203 -0
- package/vendor/rocksdb/build_tools/gnu_parallel +7971 -0
- package/vendor/rocksdb/build_tools/make_package.sh +129 -0
- package/vendor/rocksdb/build_tools/ps_with_stack +38 -0
- package/vendor/rocksdb/build_tools/regression_build_test.sh +396 -0
- package/vendor/rocksdb/build_tools/run_ci_db_test.ps1 +493 -0
- package/vendor/rocksdb/build_tools/setup_centos7.sh +45 -0
- package/vendor/rocksdb/build_tools/ubuntu20_image/Dockerfile +57 -0
- package/vendor/rocksdb/build_tools/update_dependencies.sh +106 -0
- package/vendor/rocksdb/build_tools/version.sh +23 -0
- package/vendor/rocksdb/cache/cache.cc +158 -0
- package/vendor/rocksdb/cache/cache_bench.cc +20 -0
- package/vendor/rocksdb/cache/cache_bench_tool.cc +969 -0
- package/vendor/rocksdb/cache/cache_entry_roles.cc +104 -0
- package/vendor/rocksdb/cache/cache_entry_roles.h +20 -0
- package/vendor/rocksdb/cache/cache_entry_stats.h +182 -0
- package/vendor/rocksdb/cache/cache_helpers.cc +40 -0
- package/vendor/rocksdb/cache/cache_helpers.h +139 -0
- package/vendor/rocksdb/cache/cache_key.cc +364 -0
- package/vendor/rocksdb/cache/cache_key.h +143 -0
- package/vendor/rocksdb/cache/cache_reservation_manager.cc +184 -0
- package/vendor/rocksdb/cache/cache_reservation_manager.h +317 -0
- package/vendor/rocksdb/cache/cache_reservation_manager_test.cc +469 -0
- package/vendor/rocksdb/cache/cache_test.cc +1061 -0
- package/vendor/rocksdb/cache/charged_cache.cc +109 -0
- package/vendor/rocksdb/cache/charged_cache.h +59 -0
- package/vendor/rocksdb/cache/clock_cache.cc +1482 -0
- package/vendor/rocksdb/cache/clock_cache.h +707 -0
- package/vendor/rocksdb/cache/compressed_secondary_cache.cc +304 -0
- package/vendor/rocksdb/cache/compressed_secondary_cache.h +132 -0
- package/vendor/rocksdb/cache/compressed_secondary_cache_test.cc +983 -0
- package/vendor/rocksdb/cache/lru_cache.cc +723 -0
- package/vendor/rocksdb/cache/lru_cache.h +467 -0
- package/vendor/rocksdb/cache/lru_cache_test.cc +2559 -0
- package/vendor/rocksdb/cache/secondary_cache.cc +44 -0
- package/vendor/rocksdb/cache/secondary_cache_adapter.cc +295 -0
- package/vendor/rocksdb/cache/secondary_cache_adapter.h +52 -0
- package/vendor/rocksdb/cache/sharded_cache.cc +137 -0
- package/vendor/rocksdb/cache/sharded_cache.h +309 -0
- package/vendor/rocksdb/cache/typed_cache.h +375 -0
- package/vendor/rocksdb/cmake/RocksDBConfig.cmake.in +54 -0
- package/vendor/rocksdb/common.mk +30 -0
- package/vendor/rocksdb/crash_test.mk +107 -0
- package/vendor/rocksdb/db/arena_wrapped_db_iter.cc +163 -0
- package/vendor/rocksdb/db/arena_wrapped_db_iter.h +127 -0
- package/vendor/rocksdb/db/blob/blob_constants.h +16 -0
- package/vendor/rocksdb/db/blob/blob_contents.cc +42 -0
- package/vendor/rocksdb/db/blob/blob_contents.h +59 -0
- package/vendor/rocksdb/db/blob/blob_counting_iterator.h +150 -0
- package/vendor/rocksdb/db/blob/blob_counting_iterator_test.cc +327 -0
- package/vendor/rocksdb/db/blob/blob_fetcher.cc +34 -0
- package/vendor/rocksdb/db/blob/blob_fetcher.h +37 -0
- package/vendor/rocksdb/db/blob/blob_file_addition.cc +156 -0
- package/vendor/rocksdb/db/blob/blob_file_addition.h +67 -0
- package/vendor/rocksdb/db/blob/blob_file_addition_test.cc +211 -0
- package/vendor/rocksdb/db/blob/blob_file_builder.cc +426 -0
- package/vendor/rocksdb/db/blob/blob_file_builder.h +112 -0
- package/vendor/rocksdb/db/blob/blob_file_builder_test.cc +680 -0
- package/vendor/rocksdb/db/blob/blob_file_cache.cc +101 -0
- package/vendor/rocksdb/db/blob/blob_file_cache.h +56 -0
- package/vendor/rocksdb/db/blob/blob_file_cache_test.cc +278 -0
- package/vendor/rocksdb/db/blob/blob_file_completion_callback.h +84 -0
- package/vendor/rocksdb/db/blob/blob_file_garbage.cc +134 -0
- package/vendor/rocksdb/db/blob/blob_file_garbage.h +57 -0
- package/vendor/rocksdb/db/blob/blob_file_garbage_test.cc +174 -0
- package/vendor/rocksdb/db/blob/blob_file_meta.cc +62 -0
- package/vendor/rocksdb/db/blob/blob_file_meta.h +170 -0
- package/vendor/rocksdb/db/blob/blob_file_reader.cc +624 -0
- package/vendor/rocksdb/db/blob/blob_file_reader.h +112 -0
- package/vendor/rocksdb/db/blob/blob_file_reader_test.cc +1023 -0
- package/vendor/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
- package/vendor/rocksdb/db/blob/blob_garbage_meter.h +102 -0
- package/vendor/rocksdb/db/blob/blob_garbage_meter_test.cc +197 -0
- package/vendor/rocksdb/db/blob/blob_index.h +187 -0
- package/vendor/rocksdb/db/blob/blob_log_format.cc +143 -0
- package/vendor/rocksdb/db/blob/blob_log_format.h +164 -0
- package/vendor/rocksdb/db/blob/blob_log_sequential_reader.cc +134 -0
- package/vendor/rocksdb/db/blob/blob_log_sequential_reader.h +83 -0
- package/vendor/rocksdb/db/blob/blob_log_writer.cc +178 -0
- package/vendor/rocksdb/db/blob/blob_log_writer.h +83 -0
- package/vendor/rocksdb/db/blob/blob_read_request.h +58 -0
- package/vendor/rocksdb/db/blob/blob_source.cc +459 -0
- package/vendor/rocksdb/db/blob/blob_source.h +161 -0
- package/vendor/rocksdb/db/blob/blob_source_test.cc +1611 -0
- package/vendor/rocksdb/db/blob/db_blob_basic_test.cc +2237 -0
- package/vendor/rocksdb/db/blob/db_blob_compaction_test.cc +899 -0
- package/vendor/rocksdb/db/blob/db_blob_corruption_test.cc +80 -0
- package/vendor/rocksdb/db/blob/db_blob_index_test.cc +596 -0
- package/vendor/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
- package/vendor/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
- package/vendor/rocksdb/db/builder.cc +447 -0
- package/vendor/rocksdb/db/builder.h +78 -0
- package/vendor/rocksdb/db/c.cc +6559 -0
- package/vendor/rocksdb/db/c_test.c +3609 -0
- package/vendor/rocksdb/db/column_family.cc +1708 -0
- package/vendor/rocksdb/db/column_family.h +851 -0
- package/vendor/rocksdb/db/column_family_test.cc +3382 -0
- package/vendor/rocksdb/db/compact_files_test.cc +492 -0
- package/vendor/rocksdb/db/compaction/clipping_iterator.h +281 -0
- package/vendor/rocksdb/db/compaction/clipping_iterator_test.cc +259 -0
- package/vendor/rocksdb/db/compaction/compaction.cc +857 -0
- package/vendor/rocksdb/db/compaction/compaction.h +565 -0
- package/vendor/rocksdb/db/compaction/compaction_iteration_stats.h +49 -0
- package/vendor/rocksdb/db/compaction/compaction_iterator.cc +1445 -0
- package/vendor/rocksdb/db/compaction/compaction_iterator.h +530 -0
- package/vendor/rocksdb/db/compaction/compaction_iterator_test.cc +1618 -0
- package/vendor/rocksdb/db/compaction/compaction_job.cc +2054 -0
- package/vendor/rocksdb/db/compaction/compaction_job.h +504 -0
- package/vendor/rocksdb/db/compaction/compaction_job_stats_test.cc +965 -0
- package/vendor/rocksdb/db/compaction/compaction_job_test.cc +2444 -0
- package/vendor/rocksdb/db/compaction/compaction_outputs.cc +784 -0
- package/vendor/rocksdb/db/compaction/compaction_outputs.h +403 -0
- package/vendor/rocksdb/db/compaction/compaction_picker.cc +1225 -0
- package/vendor/rocksdb/db/compaction/compaction_picker.h +318 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_fifo.cc +471 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_fifo.h +60 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_level.cc +888 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_level.h +33 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_test.cc +4074 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_universal.cc +1452 -0
- package/vendor/rocksdb/db/compaction/compaction_picker_universal.h +30 -0
- package/vendor/rocksdb/db/compaction/compaction_service_job.cc +833 -0
- package/vendor/rocksdb/db/compaction/compaction_service_test.cc +954 -0
- package/vendor/rocksdb/db/compaction/compaction_state.cc +46 -0
- package/vendor/rocksdb/db/compaction/compaction_state.h +42 -0
- package/vendor/rocksdb/db/compaction/file_pri.h +92 -0
- package/vendor/rocksdb/db/compaction/sst_partitioner.cc +83 -0
- package/vendor/rocksdb/db/compaction/subcompaction_state.cc +106 -0
- package/vendor/rocksdb/db/compaction/subcompaction_state.h +220 -0
- package/vendor/rocksdb/db/compaction/tiered_compaction_test.cc +2149 -0
- package/vendor/rocksdb/db/comparator_db_test.cc +678 -0
- package/vendor/rocksdb/db/convenience.cc +81 -0
- package/vendor/rocksdb/db/corruption_test.cc +1670 -0
- package/vendor/rocksdb/db/cuckoo_table_db_test.cc +351 -0
- package/vendor/rocksdb/db/db_basic_test.cc +4777 -0
- package/vendor/rocksdb/db/db_block_cache_test.cc +1972 -0
- package/vendor/rocksdb/db/db_bloom_filter_test.cc +3513 -0
- package/vendor/rocksdb/db/db_clip_test.cc +142 -0
- package/vendor/rocksdb/db/db_compaction_filter_test.cc +1030 -0
- package/vendor/rocksdb/db/db_compaction_test.cc +9424 -0
- package/vendor/rocksdb/db/db_dynamic_level_test.cc +499 -0
- package/vendor/rocksdb/db/db_encryption_test.cc +126 -0
- package/vendor/rocksdb/db/db_filesnapshot.cc +436 -0
- package/vendor/rocksdb/db/db_flush_test.cc +3202 -0
- package/vendor/rocksdb/db/db_impl/compacted_db_impl.cc +260 -0
- package/vendor/rocksdb/db/db_impl/compacted_db_impl.h +157 -0
- package/vendor/rocksdb/db/db_impl/db_impl.cc +6132 -0
- package/vendor/rocksdb/db/db_impl/db_impl.h +2841 -0
- package/vendor/rocksdb/db/db_impl/db_impl_compaction_flush.cc +3980 -0
- package/vendor/rocksdb/db/db_impl/db_impl_debug.cc +314 -0
- package/vendor/rocksdb/db/db_impl/db_impl_experimental.cc +159 -0
- package/vendor/rocksdb/db/db_impl/db_impl_files.cc +1014 -0
- package/vendor/rocksdb/db/db_impl/db_impl_open.cc +2202 -0
- package/vendor/rocksdb/db/db_impl/db_impl_readonly.cc +334 -0
- package/vendor/rocksdb/db/db_impl/db_impl_readonly.h +173 -0
- package/vendor/rocksdb/db/db_impl/db_impl_secondary.cc +964 -0
- package/vendor/rocksdb/db/db_impl/db_impl_secondary.h +406 -0
- package/vendor/rocksdb/db/db_impl/db_impl_write.cc +2487 -0
- package/vendor/rocksdb/db/db_info_dumper.cc +147 -0
- package/vendor/rocksdb/db/db_info_dumper.h +15 -0
- package/vendor/rocksdb/db/db_inplace_update_test.cc +262 -0
- package/vendor/rocksdb/db/db_io_failure_test.cc +589 -0
- package/vendor/rocksdb/db/db_iter.cc +1708 -0
- package/vendor/rocksdb/db/db_iter.h +411 -0
- package/vendor/rocksdb/db/db_iter_stress_test.cc +658 -0
- package/vendor/rocksdb/db/db_iter_test.cc +3195 -0
- package/vendor/rocksdb/db/db_iterator_test.cc +3304 -0
- package/vendor/rocksdb/db/db_kv_checksum_test.cc +885 -0
- package/vendor/rocksdb/db/db_log_iter_test.cc +297 -0
- package/vendor/rocksdb/db/db_logical_block_size_cache_test.cc +505 -0
- package/vendor/rocksdb/db/db_memtable_test.cc +344 -0
- package/vendor/rocksdb/db/db_merge_operand_test.cc +488 -0
- package/vendor/rocksdb/db/db_merge_operator_test.cc +866 -0
- package/vendor/rocksdb/db/db_options_test.cc +1330 -0
- package/vendor/rocksdb/db/db_properties_test.cc +2377 -0
- package/vendor/rocksdb/db/db_range_del_test.cc +3414 -0
- package/vendor/rocksdb/db/db_rate_limiter_test.cc +437 -0
- package/vendor/rocksdb/db/db_readonly_with_timestamp_test.cc +956 -0
- package/vendor/rocksdb/db/db_secondary_test.cc +1691 -0
- package/vendor/rocksdb/db/db_sst_test.cc +1865 -0
- package/vendor/rocksdb/db/db_statistics_test.cc +292 -0
- package/vendor/rocksdb/db/db_table_properties_test.cc +623 -0
- package/vendor/rocksdb/db/db_tailing_iter_test.cc +595 -0
- package/vendor/rocksdb/db/db_test.cc +7359 -0
- package/vendor/rocksdb/db/db_test2.cc +7679 -0
- package/vendor/rocksdb/db/db_test_util.cc +1759 -0
- package/vendor/rocksdb/db/db_test_util.h +1340 -0
- package/vendor/rocksdb/db/db_universal_compaction_test.cc +2227 -0
- package/vendor/rocksdb/db/db_wal_test.cc +2433 -0
- package/vendor/rocksdb/db/db_with_timestamp_basic_test.cc +4016 -0
- package/vendor/rocksdb/db/db_with_timestamp_compaction_test.cc +353 -0
- package/vendor/rocksdb/db/db_with_timestamp_test_util.cc +96 -0
- package/vendor/rocksdb/db/db_with_timestamp_test_util.h +126 -0
- package/vendor/rocksdb/db/db_write_buffer_manager_test.cc +927 -0
- package/vendor/rocksdb/db/db_write_test.cc +795 -0
- package/vendor/rocksdb/db/dbformat.cc +213 -0
- package/vendor/rocksdb/db/dbformat.h +869 -0
- package/vendor/rocksdb/db/dbformat_test.cc +214 -0
- package/vendor/rocksdb/db/deletefile_test.cc +603 -0
- package/vendor/rocksdb/db/error_handler.cc +792 -0
- package/vendor/rocksdb/db/error_handler.h +124 -0
- package/vendor/rocksdb/db/error_handler_fs_test.cc +2862 -0
- package/vendor/rocksdb/db/event_helpers.cc +323 -0
- package/vendor/rocksdb/db/event_helpers.h +78 -0
- package/vendor/rocksdb/db/experimental.cc +144 -0
- package/vendor/rocksdb/db/external_sst_file_basic_test.cc +2084 -0
- package/vendor/rocksdb/db/external_sst_file_ingestion_job.cc +1104 -0
- package/vendor/rocksdb/db/external_sst_file_ingestion_job.h +238 -0
- package/vendor/rocksdb/db/external_sst_file_test.cc +2859 -0
- package/vendor/rocksdb/db/fault_injection_test.cc +637 -0
- package/vendor/rocksdb/db/file_indexer.cc +218 -0
- package/vendor/rocksdb/db/file_indexer.h +140 -0
- package/vendor/rocksdb/db/file_indexer_test.cc +352 -0
- package/vendor/rocksdb/db/filename_test.cc +241 -0
- package/vendor/rocksdb/db/flush_job.cc +1097 -0
- package/vendor/rocksdb/db/flush_job.h +200 -0
- package/vendor/rocksdb/db/flush_job_test.cc +743 -0
- package/vendor/rocksdb/db/flush_scheduler.cc +86 -0
- package/vendor/rocksdb/db/flush_scheduler.h +55 -0
- package/vendor/rocksdb/db/forward_iterator.cc +1070 -0
- package/vendor/rocksdb/db/forward_iterator.h +166 -0
- package/vendor/rocksdb/db/forward_iterator_bench.cc +378 -0
- package/vendor/rocksdb/db/history_trimming_iterator.h +95 -0
- package/vendor/rocksdb/db/import_column_family_job.cc +364 -0
- package/vendor/rocksdb/db/import_column_family_job.h +82 -0
- package/vendor/rocksdb/db/import_column_family_test.cc +748 -0
- package/vendor/rocksdb/db/internal_stats.cc +2121 -0
- package/vendor/rocksdb/db/internal_stats.h +875 -0
- package/vendor/rocksdb/db/job_context.h +237 -0
- package/vendor/rocksdb/db/kv_checksum.h +484 -0
- package/vendor/rocksdb/db/listener_test.cc +1598 -0
- package/vendor/rocksdb/db/log_format.h +55 -0
- package/vendor/rocksdb/db/log_reader.cc +934 -0
- package/vendor/rocksdb/db/log_reader.h +241 -0
- package/vendor/rocksdb/db/log_test.cc +1216 -0
- package/vendor/rocksdb/db/log_writer.cc +279 -0
- package/vendor/rocksdb/db/log_writer.h +144 -0
- package/vendor/rocksdb/db/logs_with_prep_tracker.cc +67 -0
- package/vendor/rocksdb/db/logs_with_prep_tracker.h +62 -0
- package/vendor/rocksdb/db/lookup_key.h +68 -0
- package/vendor/rocksdb/db/malloc_stats.cc +53 -0
- package/vendor/rocksdb/db/malloc_stats.h +22 -0
- package/vendor/rocksdb/db/manual_compaction_test.cc +308 -0
- package/vendor/rocksdb/db/memtable.cc +1675 -0
- package/vendor/rocksdb/db/memtable.h +660 -0
- package/vendor/rocksdb/db/memtable_list.cc +987 -0
- package/vendor/rocksdb/db/memtable_list.h +471 -0
- package/vendor/rocksdb/db/memtable_list_test.cc +1037 -0
- package/vendor/rocksdb/db/merge_context.h +147 -0
- package/vendor/rocksdb/db/merge_helper.cc +606 -0
- package/vendor/rocksdb/db/merge_helper.h +224 -0
- package/vendor/rocksdb/db/merge_helper_test.cc +298 -0
- package/vendor/rocksdb/db/merge_operator.cc +85 -0
- package/vendor/rocksdb/db/merge_test.cc +621 -0
- package/vendor/rocksdb/db/obsolete_files_test.cc +317 -0
- package/vendor/rocksdb/db/options_file_test.cc +110 -0
- package/vendor/rocksdb/db/output_validator.cc +33 -0
- package/vendor/rocksdb/db/output_validator.h +48 -0
- package/vendor/rocksdb/db/perf_context_test.cc +1158 -0
- package/vendor/rocksdb/db/periodic_task_scheduler.cc +111 -0
- package/vendor/rocksdb/db/periodic_task_scheduler.h +108 -0
- package/vendor/rocksdb/db/periodic_task_scheduler_test.cc +229 -0
- package/vendor/rocksdb/db/pinned_iterators_manager.h +92 -0
- package/vendor/rocksdb/db/plain_table_db_test.cc +1348 -0
- package/vendor/rocksdb/db/post_memtable_callback.h +25 -0
- package/vendor/rocksdb/db/pre_release_callback.h +37 -0
- package/vendor/rocksdb/db/prefix_test.cc +894 -0
- package/vendor/rocksdb/db/range_del_aggregator.cc +555 -0
- package/vendor/rocksdb/db/range_del_aggregator.h +478 -0
- package/vendor/rocksdb/db/range_del_aggregator_bench.cc +280 -0
- package/vendor/rocksdb/db/range_del_aggregator_test.cc +713 -0
- package/vendor/rocksdb/db/range_tombstone_fragmenter.cc +502 -0
- package/vendor/rocksdb/db/range_tombstone_fragmenter.h +356 -0
- package/vendor/rocksdb/db/range_tombstone_fragmenter_test.cc +555 -0
- package/vendor/rocksdb/db/read_callback.h +54 -0
- package/vendor/rocksdb/db/repair.cc +839 -0
- package/vendor/rocksdb/db/repair_test.cc +484 -0
- package/vendor/rocksdb/db/seqno_time_test.cc +994 -0
- package/vendor/rocksdb/db/seqno_to_time_mapping.cc +341 -0
- package/vendor/rocksdb/db/seqno_to_time_mapping.h +189 -0
- package/vendor/rocksdb/db/snapshot_checker.h +58 -0
- package/vendor/rocksdb/db/snapshot_impl.cc +25 -0
- package/vendor/rocksdb/db/snapshot_impl.h +239 -0
- package/vendor/rocksdb/db/table_cache.cc +710 -0
- package/vendor/rocksdb/db/table_cache.h +283 -0
- package/vendor/rocksdb/db/table_cache_sync_and_async.h +130 -0
- package/vendor/rocksdb/db/table_properties_collector.cc +74 -0
- package/vendor/rocksdb/db/table_properties_collector.h +177 -0
- package/vendor/rocksdb/db/table_properties_collector_test.cc +512 -0
- package/vendor/rocksdb/db/transaction_log_impl.cc +296 -0
- package/vendor/rocksdb/db/transaction_log_impl.h +128 -0
- package/vendor/rocksdb/db/trim_history_scheduler.cc +54 -0
- package/vendor/rocksdb/db/trim_history_scheduler.h +46 -0
- package/vendor/rocksdb/db/version_builder.cc +1426 -0
- package/vendor/rocksdb/db/version_builder.h +93 -0
- package/vendor/rocksdb/db/version_builder_test.cc +1840 -0
- package/vendor/rocksdb/db/version_edit.cc +1059 -0
- package/vendor/rocksdb/db/version_edit.h +702 -0
- package/vendor/rocksdb/db/version_edit_handler.cc +1017 -0
- package/vendor/rocksdb/db/version_edit_handler.h +334 -0
- package/vendor/rocksdb/db/version_edit_test.cc +732 -0
- package/vendor/rocksdb/db/version_set.cc +7286 -0
- package/vendor/rocksdb/db/version_set.h +1714 -0
- package/vendor/rocksdb/db/version_set_sync_and_async.h +172 -0
- package/vendor/rocksdb/db/version_set_test.cc +3659 -0
- package/vendor/rocksdb/db/version_util.h +72 -0
- package/vendor/rocksdb/db/wal_edit.cc +211 -0
- package/vendor/rocksdb/db/wal_edit.h +177 -0
- package/vendor/rocksdb/db/wal_edit_test.cc +213 -0
- package/vendor/rocksdb/db/wal_manager.cc +527 -0
- package/vendor/rocksdb/db/wal_manager.h +136 -0
- package/vendor/rocksdb/db/wal_manager_test.cc +336 -0
- package/vendor/rocksdb/db/wide/db_wide_basic_test.cc +1042 -0
- package/vendor/rocksdb/db/wide/wide_column_serialization.cc +182 -0
- package/vendor/rocksdb/db/wide/wide_column_serialization.h +77 -0
- package/vendor/rocksdb/db/wide/wide_column_serialization_test.cc +338 -0
- package/vendor/rocksdb/db/wide/wide_columns.cc +22 -0
- package/vendor/rocksdb/db/write_batch.cc +3142 -0
- package/vendor/rocksdb/db/write_batch_base.cc +94 -0
- package/vendor/rocksdb/db/write_batch_internal.h +401 -0
- package/vendor/rocksdb/db/write_batch_test.cc +1112 -0
- package/vendor/rocksdb/db/write_callback.h +27 -0
- package/vendor/rocksdb/db/write_callback_test.cc +454 -0
- package/vendor/rocksdb/db/write_controller.cc +121 -0
- package/vendor/rocksdb/db/write_controller.h +148 -0
- package/vendor/rocksdb/db/write_controller_test.cc +248 -0
- package/vendor/rocksdb/db/write_stall_stats.cc +179 -0
- package/vendor/rocksdb/db/write_stall_stats.h +47 -0
- package/vendor/rocksdb/db/write_thread.cc +844 -0
- package/vendor/rocksdb/db/write_thread.h +464 -0
- package/vendor/rocksdb/db_stress_tool/CMakeLists.txt +18 -0
- package/vendor/rocksdb/db_stress_tool/batched_ops_stress.cc +593 -0
- package/vendor/rocksdb/db_stress_tool/cf_consistency_stress.cc +892 -0
- package/vendor/rocksdb/db_stress_tool/db_stress.cc +25 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_common.cc +491 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_common.h +674 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_compaction_filter.h +96 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_driver.cc +216 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_driver.h +18 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_env_wrapper.h +78 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_gflags.cc +1094 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_listener.cc +189 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_listener.h +269 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_shared_state.cc +17 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_shared_state.h +437 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_stat.cc +17 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_stat.h +219 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +65 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_test_base.cc +3294 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_test_base.h +327 -0
- package/vendor/rocksdb/db_stress_tool/db_stress_tool.cc +371 -0
- package/vendor/rocksdb/db_stress_tool/expected_state.cc +780 -0
- package/vendor/rocksdb/db_stress_tool/expected_state.h +329 -0
- package/vendor/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/vendor/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/vendor/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1761 -0
- package/vendor/rocksdb/db_stress_tool/multi_ops_txns_stress.h +446 -0
- package/vendor/rocksdb/db_stress_tool/no_batched_ops_stress.cc +1906 -0
- package/vendor/rocksdb/docs/CNAME +1 -0
- package/vendor/rocksdb/docs/CONTRIBUTING.md +115 -0
- package/vendor/rocksdb/docs/Gemfile +4 -0
- package/vendor/rocksdb/docs/LICENSE-DOCUMENTATION +385 -0
- package/vendor/rocksdb/docs/README.md +80 -0
- package/vendor/rocksdb/docs/TEMPLATE-INFORMATION.md +17 -0
- package/vendor/rocksdb/docs/_config.yml +85 -0
- package/vendor/rocksdb/docs/_data/authors.yml +81 -0
- package/vendor/rocksdb/docs/_data/features.yml +19 -0
- package/vendor/rocksdb/docs/_data/nav.yml +30 -0
- package/vendor/rocksdb/docs/_data/nav_docs.yml +3 -0
- package/vendor/rocksdb/docs/_data/powered_by.yml +1 -0
- package/vendor/rocksdb/docs/_data/powered_by_highlight.yml +1 -0
- package/vendor/rocksdb/docs/_data/promo.yml +6 -0
- package/vendor/rocksdb/docs/_docs/faq.md +48 -0
- package/vendor/rocksdb/docs/_docs/getting-started.md +78 -0
- package/vendor/rocksdb/docs/_includes/blog_pagination.html +28 -0
- package/vendor/rocksdb/docs/_includes/content/gridblocks.html +5 -0
- package/vendor/rocksdb/docs/_includes/content/items/gridblock.html +37 -0
- package/vendor/rocksdb/docs/_includes/doc.html +25 -0
- package/vendor/rocksdb/docs/_includes/doc_paging.html +0 -0
- package/vendor/rocksdb/docs/_includes/footer.html +34 -0
- package/vendor/rocksdb/docs/_includes/head.html +23 -0
- package/vendor/rocksdb/docs/_includes/header.html +19 -0
- package/vendor/rocksdb/docs/_includes/hero.html +0 -0
- package/vendor/rocksdb/docs/_includes/home_header.html +22 -0
- package/vendor/rocksdb/docs/_includes/katex_import.html +3 -0
- package/vendor/rocksdb/docs/_includes/katex_render.html +210 -0
- package/vendor/rocksdb/docs/_includes/nav/collection_nav.html +64 -0
- package/vendor/rocksdb/docs/_includes/nav/collection_nav_group.html +19 -0
- package/vendor/rocksdb/docs/_includes/nav/collection_nav_group_item.html +1 -0
- package/vendor/rocksdb/docs/_includes/nav/header_nav.html +30 -0
- package/vendor/rocksdb/docs/_includes/nav.html +37 -0
- package/vendor/rocksdb/docs/_includes/nav_search.html +15 -0
- package/vendor/rocksdb/docs/_includes/plugins/all_share.html +3 -0
- package/vendor/rocksdb/docs/_includes/plugins/ascii_cinema.html +2 -0
- package/vendor/rocksdb/docs/_includes/plugins/button.html +6 -0
- package/vendor/rocksdb/docs/_includes/plugins/github_star.html +4 -0
- package/vendor/rocksdb/docs/_includes/plugins/github_watch.html +4 -0
- package/vendor/rocksdb/docs/_includes/plugins/google_share.html +5 -0
- package/vendor/rocksdb/docs/_includes/plugins/iframe.html +6 -0
- package/vendor/rocksdb/docs/_includes/plugins/like_button.html +18 -0
- package/vendor/rocksdb/docs/_includes/plugins/plugin_row.html +5 -0
- package/vendor/rocksdb/docs/_includes/plugins/post_social_plugins.html +41 -0
- package/vendor/rocksdb/docs/_includes/plugins/slideshow.html +88 -0
- package/vendor/rocksdb/docs/_includes/plugins/twitter_follow.html +12 -0
- package/vendor/rocksdb/docs/_includes/plugins/twitter_share.html +11 -0
- package/vendor/rocksdb/docs/_includes/post.html +40 -0
- package/vendor/rocksdb/docs/_includes/powered_by.html +28 -0
- package/vendor/rocksdb/docs/_includes/social_plugins.html +31 -0
- package/vendor/rocksdb/docs/_includes/ui/button.html +1 -0
- package/vendor/rocksdb/docs/_layouts/basic.html +12 -0
- package/vendor/rocksdb/docs/_layouts/blog.html +11 -0
- package/vendor/rocksdb/docs/_layouts/blog_default.html +14 -0
- package/vendor/rocksdb/docs/_layouts/default.html +12 -0
- package/vendor/rocksdb/docs/_layouts/doc_default.html +14 -0
- package/vendor/rocksdb/docs/_layouts/doc_page.html +10 -0
- package/vendor/rocksdb/docs/_layouts/docs.html +5 -0
- package/vendor/rocksdb/docs/_layouts/home.html +26 -0
- package/vendor/rocksdb/docs/_layouts/page.html +3 -0
- package/vendor/rocksdb/docs/_layouts/plain.html +10 -0
- package/vendor/rocksdb/docs/_layouts/post.html +8 -0
- package/vendor/rocksdb/docs/_layouts/redirect.html +6 -0
- package/vendor/rocksdb/docs/_layouts/top-level.html +10 -0
- package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-backup-rocksdb.markdown +135 -0
- package/vendor/rocksdb/docs/_posts/2014-03-27-how-to-persist-in-memory-rocksdb-database.markdown +54 -0
- package/vendor/rocksdb/docs/_posts/2014-04-02-the-1st-rocksdb-local-meetup-held-on-march-27-2014.markdown +53 -0
- package/vendor/rocksdb/docs/_posts/2014-04-07-rocksdb-2-8-release.markdown +40 -0
- package/vendor/rocksdb/docs/_posts/2014-04-21-indexing-sst-files-for-better-lookup-performance.markdown +28 -0
- package/vendor/rocksdb/docs/_posts/2014-05-14-lock.markdown +88 -0
- package/vendor/rocksdb/docs/_posts/2014-05-19-rocksdb-3-0-release.markdown +24 -0
- package/vendor/rocksdb/docs/_posts/2014-05-22-rocksdb-3-1-release.markdown +20 -0
- package/vendor/rocksdb/docs/_posts/2014-06-23-plaintable-a-new-file-format.markdown +47 -0
- package/vendor/rocksdb/docs/_posts/2014-06-27-avoid-expensive-locks-in-get.markdown +89 -0
- package/vendor/rocksdb/docs/_posts/2014-06-27-rocksdb-3-2-release.markdown +30 -0
- package/vendor/rocksdb/docs/_posts/2014-07-29-rocksdb-3-3-release.markdown +34 -0
- package/vendor/rocksdb/docs/_posts/2014-09-12-cuckoo.markdown +74 -0
- package/vendor/rocksdb/docs/_posts/2014-09-12-new-bloom-filter-format.markdown +52 -0
- package/vendor/rocksdb/docs/_posts/2014-09-15-rocksdb-3-5-release.markdown +38 -0
- package/vendor/rocksdb/docs/_posts/2015-01-16-migrating-from-leveldb-to-rocksdb-2.markdown +112 -0
- package/vendor/rocksdb/docs/_posts/2015-02-24-reading-rocksdb-options-from-a-file.markdown +41 -0
- package/vendor/rocksdb/docs/_posts/2015-02-27-write-batch-with-index.markdown +20 -0
- package/vendor/rocksdb/docs/_posts/2015-04-22-integrating-rocksdb-with-mongodb-2.markdown +16 -0
- package/vendor/rocksdb/docs/_posts/2015-06-12-rocksdb-in-osquery.markdown +10 -0
- package/vendor/rocksdb/docs/_posts/2015-07-15-rocksdb-2015-h2-roadmap.markdown +92 -0
- package/vendor/rocksdb/docs/_posts/2015-07-17-spatial-indexing-in-rocksdb.markdown +78 -0
- package/vendor/rocksdb/docs/_posts/2015-07-22-rocksdb-is-now-available-in-windows-platform.markdown +30 -0
- package/vendor/rocksdb/docs/_posts/2015-07-23-dynamic-level.markdown +29 -0
- package/vendor/rocksdb/docs/_posts/2015-10-27-getthreadlist.markdown +193 -0
- package/vendor/rocksdb/docs/_posts/2015-11-10-use-checkpoints-for-efficient-snapshots.markdown +45 -0
- package/vendor/rocksdb/docs/_posts/2015-11-16-analysis-file-read-latency-by-level.markdown +244 -0
- package/vendor/rocksdb/docs/_posts/2016-01-29-compaction_pri.markdown +51 -0
- package/vendor/rocksdb/docs/_posts/2016-02-24-rocksdb-4-2-release.markdown +41 -0
- package/vendor/rocksdb/docs/_posts/2016-02-25-rocksdb-ama.markdown +20 -0
- package/vendor/rocksdb/docs/_posts/2016-03-07-rocksdb-options-file.markdown +24 -0
- package/vendor/rocksdb/docs/_posts/2016-04-26-rocksdb-4-5-1-released.markdown +60 -0
- package/vendor/rocksdb/docs/_posts/2016-07-26-rocksdb-4-8-released.markdown +48 -0
- package/vendor/rocksdb/docs/_posts/2016-09-28-rocksdb-4-11-2-released.markdown +49 -0
- package/vendor/rocksdb/docs/_posts/2017-01-06-rocksdb-5-0-1-released.markdown +26 -0
- package/vendor/rocksdb/docs/_posts/2017-02-07-rocksdb-5-1-2-released.markdown +15 -0
- package/vendor/rocksdb/docs/_posts/2017-02-17-bulkoad-ingest-sst-file.markdown +50 -0
- package/vendor/rocksdb/docs/_posts/2017-03-02-rocksdb-5-2-1-released.markdown +22 -0
- package/vendor/rocksdb/docs/_posts/2017-05-12-partitioned-index-filter.markdown +34 -0
- package/vendor/rocksdb/docs/_posts/2017-05-14-core-local-stats.markdown +106 -0
- package/vendor/rocksdb/docs/_posts/2017-05-26-rocksdb-5-4-5-released.markdown +39 -0
- package/vendor/rocksdb/docs/_posts/2017-06-26-17-level-based-changes.markdown +60 -0
- package/vendor/rocksdb/docs/_posts/2017-06-29-rocksdb-5-5-1-released.markdown +22 -0
- package/vendor/rocksdb/docs/_posts/2017-07-25-rocksdb-5-6-1-released.markdown +22 -0
- package/vendor/rocksdb/docs/_posts/2017-08-24-pinnableslice.markdown +37 -0
- package/vendor/rocksdb/docs/_posts/2017-08-25-flushwal.markdown +26 -0
- package/vendor/rocksdb/docs/_posts/2017-09-28-rocksdb-5-8-released.markdown +25 -0
- package/vendor/rocksdb/docs/_posts/2017-12-18-17-auto-tuned-rate-limiter.markdown +28 -0
- package/vendor/rocksdb/docs/_posts/2017-12-19-write-prepared-txn.markdown +41 -0
- package/vendor/rocksdb/docs/_posts/2018-02-05-rocksdb-5-10-2-released.markdown +22 -0
- package/vendor/rocksdb/docs/_posts/2018-08-01-rocksdb-tuning-advisor.markdown +58 -0
- package/vendor/rocksdb/docs/_posts/2018-08-23-data-block-hash-index.markdown +118 -0
- package/vendor/rocksdb/docs/_posts/2018-11-21-delete-range.markdown +292 -0
- package/vendor/rocksdb/docs/_posts/2019-03-08-format-version-4.markdown +36 -0
- package/vendor/rocksdb/docs/_posts/2019-08-15-unordered-write.markdown +56 -0
- package/vendor/rocksdb/docs/_posts/2021-04-12-universal-improvements.markdown +46 -0
- package/vendor/rocksdb/docs/_posts/2021-05-26-integrated-blob-db.markdown +101 -0
- package/vendor/rocksdb/docs/_posts/2021-05-26-online-validation.markdown +17 -0
- package/vendor/rocksdb/docs/_posts/2021-05-27-rocksdb-secondary-cache.markdown +195 -0
- package/vendor/rocksdb/docs/_posts/2021-05-31-dictionary-compression.markdown +157 -0
- package/vendor/rocksdb/docs/_posts/2021-12-29-ribbon-filter.markdown +281 -0
- package/vendor/rocksdb/docs/_posts/2022-07-18-per-key-value-checksum.markdown +142 -0
- package/vendor/rocksdb/docs/_posts/2022-10-05-lost-buffered-write-recovery.markdown +123 -0
- package/vendor/rocksdb/docs/_posts/2022-10-07-asynchronous-io-in-rocksdb.markdown +133 -0
- package/vendor/rocksdb/docs/_posts/2022-10-31-align-compaction-output-file.markdown +107 -0
- package/vendor/rocksdb/docs/_posts/2022-11-09-time-aware-tiered-storage.markdown +121 -0
- package/vendor/rocksdb/docs/_sass/_base.scss +492 -0
- package/vendor/rocksdb/docs/_sass/_blog.scss +47 -0
- package/vendor/rocksdb/docs/_sass/_buttons.scss +47 -0
- package/vendor/rocksdb/docs/_sass/_footer.scss +82 -0
- package/vendor/rocksdb/docs/_sass/_gridBlock.scss +115 -0
- package/vendor/rocksdb/docs/_sass/_header.scss +139 -0
- package/vendor/rocksdb/docs/_sass/_poweredby.scss +69 -0
- package/vendor/rocksdb/docs/_sass/_promo.scss +55 -0
- package/vendor/rocksdb/docs/_sass/_react_docs_nav.scss +332 -0
- package/vendor/rocksdb/docs/_sass/_react_header_nav.scss +141 -0
- package/vendor/rocksdb/docs/_sass/_reset.scss +43 -0
- package/vendor/rocksdb/docs/_sass/_search.scss +142 -0
- package/vendor/rocksdb/docs/_sass/_slideshow.scss +48 -0
- package/vendor/rocksdb/docs/_sass/_syntax-highlighting.scss +129 -0
- package/vendor/rocksdb/docs/_sass/_tables.scss +47 -0
- package/vendor/rocksdb/docs/_top-level/support.md +22 -0
- package/vendor/rocksdb/docs/blog/all.html +20 -0
- package/vendor/rocksdb/docs/blog/index.html +12 -0
- package/vendor/rocksdb/docs/css/main.scss +159 -0
- package/vendor/rocksdb/docs/doc-type-examples/2016-04-07-blog-post-example.md +21 -0
- package/vendor/rocksdb/docs/doc-type-examples/docs-hello-world.md +12 -0
- package/vendor/rocksdb/docs/doc-type-examples/top-level-example.md +8 -0
- package/vendor/rocksdb/docs/docs/index.html +6 -0
- package/vendor/rocksdb/docs/feed.xml +30 -0
- package/vendor/rocksdb/docs/index.md +9 -0
- package/vendor/rocksdb/docs/static/favicon.png +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Black.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-BlackItalic.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Italic.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Light.woff2 +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff +0 -0
- package/vendor/rocksdb/docs/static/fonts/LatoLatin-Regular.woff2 +0 -0
- package/vendor/rocksdb/docs/static/images/Resize-of-20140327_200754-300x225.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/compaction_output_file_size_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_align.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_normal.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_cut_trival_move.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/file_size_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/align-compaction-output/write_amp_compare.png +0 -0
- package/vendor/rocksdb/docs/static/images/asynchronous-io/mget_async.png +0 -0
- package/vendor/rocksdb/docs/static/images/asynchronous-io/scan_async.png +0 -0
- package/vendor/rocksdb/docs/static/images/binaryseek.png +0 -0
- package/vendor/rocksdb/docs/static/images/bloom_fp_vs_bpk.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/full-range.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/l0-l1-contend.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/l1-l2-contend.png +0 -0
- package/vendor/rocksdb/docs/static/images/compaction/part-range-old.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-binary-seek.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/block-format-hash-index.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/hash-index-data-structure.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-cache-miss.png +0 -0
- package/vendor/rocksdb/docs/static/images/data-block-hash-index/perf-throughput.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_collapsed.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_key_schema.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_sst_blocks.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_uncollapsed.png +0 -0
- package/vendor/rocksdb/docs/static/images/delrange/delrange_write_path.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_raw_sampled.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_sst_blocks.png +0 -0
- package/vendor/rocksdb/docs/static/images/dictcmp/dictcmp_zstd_trained.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Legacy_Vs_Integrated.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_RW_RO_Perf.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Amp.png +0 -0
- package/vendor/rocksdb/docs/static/images/integrated-blob-db/BlobDB_Benchmarks_Write_Perf.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-entry.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Memtable-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Memtable.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch-to-Memtable.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/ProtInfo-Writebatch.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-fragment.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-read.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/WAL-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Write-batch.png +0 -0
- package/vendor/rocksdb/docs/static/images/kv-checksum/Writebatch-write.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/angry-cat.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/basic-setup.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/happy-cat.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/replay-extension.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/test-fs-writable-file.png +0 -0
- package/vendor/rocksdb/docs/static/images/lost-buffered-write-recovery/trace-extension.png +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-blockindex.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-fileindex.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-filelayout.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-readiopath.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-tieredstorage.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/pcache-writeiopath.jpg +0 -0
- package/vendor/rocksdb/docs/static/images/promo-adapt.svg +8 -0
- package/vendor/rocksdb/docs/static/images/promo-flash.svg +28 -0
- package/vendor/rocksdb/docs/static/images/promo-operations.svg +6 -0
- package/vendor/rocksdb/docs/static/images/promo-performance.svg +134 -0
- package/vendor/rocksdb/docs/static/images/rate-limiter/auto-tuned-write-KBps-series.png +0 -0
- package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-cdf.png +0 -0
- package/vendor/rocksdb/docs/static/images/rate-limiter/write-KBps-series.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_hit_rate.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/Mixgraph_throughput.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/arch_diagram.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/insert_flow.png +0 -0
- package/vendor/rocksdb/docs/static/images/rocksdb-secondary-cache/lookup_flow.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/compaction_moving_up_conflict.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/per_key_placement_compaction.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_design.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_overview.png +0 -0
- package/vendor/rocksdb/docs/static/images/time-aware-tiered-storage/tiered_storage_problem.png +0 -0
- package/vendor/rocksdb/docs/static/images/tree_example1.png +0 -0
- package/vendor/rocksdb/docs/static/logo.svg +76 -0
- package/vendor/rocksdb/docs/static/og_image.png +0 -0
- package/vendor/rocksdb/env/composite_env.cc +534 -0
- package/vendor/rocksdb/env/composite_env_wrapper.h +378 -0
- package/vendor/rocksdb/env/emulated_clock.h +114 -0
- package/vendor/rocksdb/env/env.cc +1233 -0
- package/vendor/rocksdb/env/env_basic_test.cc +397 -0
- package/vendor/rocksdb/env/env_chroot.cc +148 -0
- package/vendor/rocksdb/env/env_chroot.h +55 -0
- package/vendor/rocksdb/env/env_encryption.cc +1346 -0
- package/vendor/rocksdb/env/env_encryption_ctr.h +114 -0
- package/vendor/rocksdb/env/env_posix.cc +524 -0
- package/vendor/rocksdb/env/env_test.cc +3577 -0
- package/vendor/rocksdb/env/file_system.cc +277 -0
- package/vendor/rocksdb/env/file_system_tracer.cc +564 -0
- package/vendor/rocksdb/env/file_system_tracer.h +461 -0
- package/vendor/rocksdb/env/fs_posix.cc +1284 -0
- package/vendor/rocksdb/env/fs_readonly.h +105 -0
- package/vendor/rocksdb/env/fs_remap.cc +341 -0
- package/vendor/rocksdb/env/fs_remap.h +137 -0
- package/vendor/rocksdb/env/io_posix.cc +1733 -0
- package/vendor/rocksdb/env/io_posix.h +523 -0
- package/vendor/rocksdb/env/io_posix_test.cc +141 -0
- package/vendor/rocksdb/env/mock_env.cc +1058 -0
- package/vendor/rocksdb/env/mock_env.h +144 -0
- package/vendor/rocksdb/env/mock_env_test.cc +84 -0
- package/vendor/rocksdb/env/unique_id_gen.cc +164 -0
- package/vendor/rocksdb/env/unique_id_gen.h +85 -0
- package/vendor/rocksdb/examples/CMakeLists.txt +45 -0
- package/vendor/rocksdb/examples/Makefile +58 -0
- package/vendor/rocksdb/examples/README.md +2 -0
- package/vendor/rocksdb/examples/c_simple_example.c +96 -0
- package/vendor/rocksdb/examples/column_families_example.cc +88 -0
- package/vendor/rocksdb/examples/compact_files_example.cc +177 -0
- package/vendor/rocksdb/examples/compaction_filter_example.cc +96 -0
- package/vendor/rocksdb/examples/multi_processes_example.cc +393 -0
- package/vendor/rocksdb/examples/optimistic_transaction_example.cc +190 -0
- package/vendor/rocksdb/examples/options_file_example.cc +132 -0
- package/vendor/rocksdb/examples/rocksdb_backup_restore_example.cc +99 -0
- package/vendor/rocksdb/examples/rocksdb_option_file_example.ini +142 -0
- package/vendor/rocksdb/examples/simple_example.cc +93 -0
- package/vendor/rocksdb/examples/transaction_example.cc +196 -0
- package/vendor/rocksdb/file/delete_scheduler.cc +409 -0
- package/vendor/rocksdb/file/delete_scheduler.h +147 -0
- package/vendor/rocksdb/file/delete_scheduler_test.cc +717 -0
- package/vendor/rocksdb/file/file_prefetch_buffer.cc +955 -0
- package/vendor/rocksdb/file/file_prefetch_buffer.h +471 -0
- package/vendor/rocksdb/file/file_util.cc +277 -0
- package/vendor/rocksdb/file/file_util.h +91 -0
- package/vendor/rocksdb/file/filename.cc +523 -0
- package/vendor/rocksdb/file/filename.h +188 -0
- package/vendor/rocksdb/file/line_file_reader.cc +73 -0
- package/vendor/rocksdb/file/line_file_reader.h +60 -0
- package/vendor/rocksdb/file/prefetch_test.cc +2374 -0
- package/vendor/rocksdb/file/random_access_file_reader.cc +599 -0
- package/vendor/rocksdb/file/random_access_file_reader.h +210 -0
- package/vendor/rocksdb/file/random_access_file_reader_test.cc +479 -0
- package/vendor/rocksdb/file/read_write_util.cc +33 -0
- package/vendor/rocksdb/file/read_write_util.h +31 -0
- package/vendor/rocksdb/file/readahead_file_info.h +33 -0
- package/vendor/rocksdb/file/readahead_raf.cc +169 -0
- package/vendor/rocksdb/file/readahead_raf.h +29 -0
- package/vendor/rocksdb/file/sequence_file_reader.cc +320 -0
- package/vendor/rocksdb/file/sequence_file_reader.h +119 -0
- package/vendor/rocksdb/file/sst_file_manager_impl.cc +507 -0
- package/vendor/rocksdb/file/sst_file_manager_impl.h +193 -0
- package/vendor/rocksdb/file/writable_file_writer.cc +989 -0
- package/vendor/rocksdb/file/writable_file_writer.h +320 -0
- package/vendor/rocksdb/fuzz/Makefile +67 -0
- package/vendor/rocksdb/fuzz/README.md +165 -0
- package/vendor/rocksdb/fuzz/db_fuzzer.cc +172 -0
- package/vendor/rocksdb/fuzz/db_map_fuzzer.cc +107 -0
- package/vendor/rocksdb/fuzz/proto/db_operation.proto +28 -0
- package/vendor/rocksdb/fuzz/sst_file_writer_fuzzer.cc +210 -0
- package/vendor/rocksdb/fuzz/util.h +29 -0
- package/vendor/rocksdb/include/rocksdb/advanced_cache.h +623 -0
- package/vendor/rocksdb/include/rocksdb/advanced_options.h +1177 -0
- package/vendor/rocksdb/include/rocksdb/block_cache_trace_writer.h +149 -0
- package/vendor/rocksdb/include/rocksdb/c.h +2864 -0
- package/vendor/rocksdb/include/rocksdb/cache.h +442 -0
- package/vendor/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
- package/vendor/rocksdb/include/rocksdb/cleanable.h +128 -0
- package/vendor/rocksdb/include/rocksdb/compaction_filter.h +363 -0
- package/vendor/rocksdb/include/rocksdb/compaction_job_stats.h +109 -0
- package/vendor/rocksdb/include/rocksdb/comparator.h +164 -0
- package/vendor/rocksdb/include/rocksdb/compression_type.h +40 -0
- package/vendor/rocksdb/include/rocksdb/concurrent_task_limiter.h +51 -0
- package/vendor/rocksdb/include/rocksdb/configurable.h +390 -0
- package/vendor/rocksdb/include/rocksdb/convenience.h +466 -0
- package/vendor/rocksdb/include/rocksdb/customizable.h +229 -0
- package/vendor/rocksdb/include/rocksdb/data_structure.h +186 -0
- package/vendor/rocksdb/include/rocksdb/db.h +1980 -0
- package/vendor/rocksdb/include/rocksdb/db_bench_tool.h +11 -0
- package/vendor/rocksdb/include/rocksdb/db_dump_tool.h +43 -0
- package/vendor/rocksdb/include/rocksdb/db_stress_tool.h +11 -0
- package/vendor/rocksdb/include/rocksdb/env.h +1882 -0
- package/vendor/rocksdb/include/rocksdb/env_encryption.h +463 -0
- package/vendor/rocksdb/include/rocksdb/experimental.h +56 -0
- package/vendor/rocksdb/include/rocksdb/file_checksum.h +146 -0
- package/vendor/rocksdb/include/rocksdb/file_system.h +1849 -0
- package/vendor/rocksdb/include/rocksdb/filter_policy.h +206 -0
- package/vendor/rocksdb/include/rocksdb/flush_block_policy.h +75 -0
- package/vendor/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
- package/vendor/rocksdb/include/rocksdb/io_status.h +244 -0
- package/vendor/rocksdb/include/rocksdb/iostats_context.h +98 -0
- package/vendor/rocksdb/include/rocksdb/iterator.h +144 -0
- package/vendor/rocksdb/include/rocksdb/ldb_tool.h +42 -0
- package/vendor/rocksdb/include/rocksdb/listener.h +840 -0
- package/vendor/rocksdb/include/rocksdb/memory_allocator.h +87 -0
- package/vendor/rocksdb/include/rocksdb/memtablerep.h +421 -0
- package/vendor/rocksdb/include/rocksdb/merge_operator.h +286 -0
- package/vendor/rocksdb/include/rocksdb/metadata.h +258 -0
- package/vendor/rocksdb/include/rocksdb/options.h +2083 -0
- package/vendor/rocksdb/include/rocksdb/perf_context.h +314 -0
- package/vendor/rocksdb/include/rocksdb/perf_level.h +36 -0
- package/vendor/rocksdb/include/rocksdb/persistent_cache.h +74 -0
- package/vendor/rocksdb/include/rocksdb/port_defs.h +22 -0
- package/vendor/rocksdb/include/rocksdb/rate_limiter.h +159 -0
- package/vendor/rocksdb/include/rocksdb/rocksdb_namespace.h +16 -0
- package/vendor/rocksdb/include/rocksdb/secondary_cache.h +139 -0
- package/vendor/rocksdb/include/rocksdb/slice.h +264 -0
- package/vendor/rocksdb/include/rocksdb/slice_transform.h +135 -0
- package/vendor/rocksdb/include/rocksdb/snapshot.h +53 -0
- package/vendor/rocksdb/include/rocksdb/sst_dump_tool.h +17 -0
- package/vendor/rocksdb/include/rocksdb/sst_file_manager.h +136 -0
- package/vendor/rocksdb/include/rocksdb/sst_file_reader.h +45 -0
- package/vendor/rocksdb/include/rocksdb/sst_file_writer.h +189 -0
- package/vendor/rocksdb/include/rocksdb/sst_partitioner.h +142 -0
- package/vendor/rocksdb/include/rocksdb/statistics.h +757 -0
- package/vendor/rocksdb/include/rocksdb/stats_history.h +70 -0
- package/vendor/rocksdb/include/rocksdb/status.h +574 -0
- package/vendor/rocksdb/include/rocksdb/system_clock.h +114 -0
- package/vendor/rocksdb/include/rocksdb/table.h +927 -0
- package/vendor/rocksdb/include/rocksdb/table_properties.h +332 -0
- package/vendor/rocksdb/include/rocksdb/table_reader_caller.h +41 -0
- package/vendor/rocksdb/include/rocksdb/thread_status.h +190 -0
- package/vendor/rocksdb/include/rocksdb/threadpool.h +67 -0
- package/vendor/rocksdb/include/rocksdb/trace_reader_writer.h +52 -0
- package/vendor/rocksdb/include/rocksdb/trace_record.h +248 -0
- package/vendor/rocksdb/include/rocksdb/trace_record_result.h +187 -0
- package/vendor/rocksdb/include/rocksdb/transaction_log.h +122 -0
- package/vendor/rocksdb/include/rocksdb/types.h +94 -0
- package/vendor/rocksdb/include/rocksdb/unique_id.h +55 -0
- package/vendor/rocksdb/include/rocksdb/universal_compaction.h +96 -0
- package/vendor/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
- package/vendor/rocksdb/include/rocksdb/utilities/backup_engine.h +689 -0
- package/vendor/rocksdb/include/rocksdb/utilities/cache_dump_load.h +140 -0
- package/vendor/rocksdb/include/rocksdb/utilities/checkpoint.h +63 -0
- package/vendor/rocksdb/include/rocksdb/utilities/convenience.h +10 -0
- package/vendor/rocksdb/include/rocksdb/utilities/customizable_util.h +322 -0
- package/vendor/rocksdb/include/rocksdb/utilities/db_ttl.h +70 -0
- package/vendor/rocksdb/include/rocksdb/utilities/debug.h +46 -0
- package/vendor/rocksdb/include/rocksdb/utilities/env_mirror.h +179 -0
- package/vendor/rocksdb/include/rocksdb/utilities/info_log_finder.h +19 -0
- package/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd.h +316 -0
- package/vendor/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +75 -0
- package/vendor/rocksdb/include/rocksdb/utilities/leveldb_options.h +145 -0
- package/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +43 -0
- package/vendor/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +55 -0
- package/vendor/rocksdb/include/rocksdb/utilities/memory_util.h +48 -0
- package/vendor/rocksdb/include/rocksdb/utilities/object_registry.h +583 -0
- package/vendor/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +98 -0
- package/vendor/rocksdb/include/rocksdb/utilities/option_change_migration.h +24 -0
- package/vendor/rocksdb/include/rocksdb/utilities/options_type.h +1221 -0
- package/vendor/rocksdb/include/rocksdb/utilities/options_util.h +105 -0
- package/vendor/rocksdb/include/rocksdb/utilities/replayer.h +85 -0
- package/vendor/rocksdb/include/rocksdb/utilities/sim_cache.h +93 -0
- package/vendor/rocksdb/include/rocksdb/utilities/stackable_db.h +587 -0
- package/vendor/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +88 -0
- package/vendor/rocksdb/include/rocksdb/utilities/transaction.h +683 -0
- package/vendor/rocksdb/include/rocksdb/utilities/transaction_db.h +506 -0
- package/vendor/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +89 -0
- package/vendor/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +307 -0
- package/vendor/rocksdb/include/rocksdb/version.h +43 -0
- package/vendor/rocksdb/include/rocksdb/wal_filter.h +111 -0
- package/vendor/rocksdb/include/rocksdb/wide_columns.h +210 -0
- package/vendor/rocksdb/include/rocksdb/write_batch.h +494 -0
- package/vendor/rocksdb/include/rocksdb/write_batch_base.h +144 -0
- package/vendor/rocksdb/include/rocksdb/write_buffer_manager.h +183 -0
- package/vendor/rocksdb/issue_template.md +7 -0
- package/vendor/rocksdb/java/CMakeLists.txt +549 -0
- package/vendor/rocksdb/java/GetBenchmarks.md +161 -0
- package/vendor/rocksdb/java/HISTORY-JAVA.md +86 -0
- package/vendor/rocksdb/java/Makefile +453 -0
- package/vendor/rocksdb/java/RELEASE.md +59 -0
- package/vendor/rocksdb/java/benchmark/src/main/java/org/rocksdb/benchmark/DbBenchmark.java +1640 -0
- package/vendor/rocksdb/java/crossbuild/Vagrantfile +51 -0
- package/vendor/rocksdb/java/crossbuild/build-linux-alpine.sh +70 -0
- package/vendor/rocksdb/java/crossbuild/build-linux-centos.sh +38 -0
- package/vendor/rocksdb/java/crossbuild/build-linux.sh +15 -0
- package/vendor/rocksdb/java/crossbuild/docker-build-linux-alpine.sh +17 -0
- package/vendor/rocksdb/java/crossbuild/docker-build-linux-centos.sh +38 -0
- package/vendor/rocksdb/java/jdb_bench.sh +13 -0
- package/vendor/rocksdb/java/jmh/LICENSE-HEADER.txt +5 -0
- package/vendor/rocksdb/java/jmh/README.md +24 -0
- package/vendor/rocksdb/java/jmh/pom.xml +138 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/ComparatorBenchmarks.java +139 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/GetBenchmarks.java +215 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/MultiGetBenchmarks.java +214 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/jmh/PutBenchmarks.java +112 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/FileUtils.java +59 -0
- package/vendor/rocksdb/java/jmh/src/main/java/org/rocksdb/util/KVUtils.java +72 -0
- package/vendor/rocksdb/java/pom.xml.template +178 -0
- package/vendor/rocksdb/java/rocksjni/backup_engine_options.cc +365 -0
- package/vendor/rocksdb/java/rocksjni/backupenginejni.cc +279 -0
- package/vendor/rocksdb/java/rocksjni/cache.cc +34 -0
- package/vendor/rocksdb/java/rocksjni/cassandra_compactionfilterjni.cc +25 -0
- package/vendor/rocksdb/java/rocksjni/cassandra_value_operator.cc +50 -0
- package/vendor/rocksdb/java/rocksjni/checkpoint.cc +71 -0
- package/vendor/rocksdb/java/rocksjni/clock_cache.cc +42 -0
- package/vendor/rocksdb/java/rocksjni/columnfamilyhandle.cc +72 -0
- package/vendor/rocksdb/java/rocksjni/compact_range_options.cc +222 -0
- package/vendor/rocksdb/java/rocksjni/compaction_filter.cc +29 -0
- package/vendor/rocksdb/java/rocksjni/compaction_filter_factory.cc +42 -0
- package/vendor/rocksdb/java/rocksjni/compaction_filter_factory_jnicallback.cc +79 -0
- package/vendor/rocksdb/java/rocksjni/compaction_filter_factory_jnicallback.h +37 -0
- package/vendor/rocksdb/java/rocksjni/compaction_job_info.cc +230 -0
- package/vendor/rocksdb/java/rocksjni/compaction_job_stats.cc +345 -0
- package/vendor/rocksdb/java/rocksjni/compaction_options.cc +112 -0
- package/vendor/rocksdb/java/rocksjni/compaction_options_fifo.cc +83 -0
- package/vendor/rocksdb/java/rocksjni/compaction_options_universal.cc +209 -0
- package/vendor/rocksdb/java/rocksjni/comparator.cc +60 -0
- package/vendor/rocksdb/java/rocksjni/comparatorjnicallback.cc +647 -0
- package/vendor/rocksdb/java/rocksjni/comparatorjnicallback.h +137 -0
- package/vendor/rocksdb/java/rocksjni/compression_options.cc +214 -0
- package/vendor/rocksdb/java/rocksjni/concurrent_task_limiter.cc +97 -0
- package/vendor/rocksdb/java/rocksjni/config_options.cc +103 -0
- package/vendor/rocksdb/java/rocksjni/cplusplus_to_java_convert.h +37 -0
- package/vendor/rocksdb/java/rocksjni/env.cc +205 -0
- package/vendor/rocksdb/java/rocksjni/env_options.cc +305 -0
- package/vendor/rocksdb/java/rocksjni/event_listener.cc +44 -0
- package/vendor/rocksdb/java/rocksjni/event_listener_jnicallback.cc +502 -0
- package/vendor/rocksdb/java/rocksjni/event_listener_jnicallback.h +122 -0
- package/vendor/rocksdb/java/rocksjni/filter.cc +46 -0
- package/vendor/rocksdb/java/rocksjni/ingest_external_file_options.cc +199 -0
- package/vendor/rocksdb/java/rocksjni/iterator.cc +340 -0
- package/vendor/rocksdb/java/rocksjni/jnicallback.cc +54 -0
- package/vendor/rocksdb/java/rocksjni/jnicallback.h +32 -0
- package/vendor/rocksdb/java/rocksjni/loggerjnicallback.cc +299 -0
- package/vendor/rocksdb/java/rocksjni/loggerjnicallback.h +51 -0
- package/vendor/rocksdb/java/rocksjni/lru_cache.cc +49 -0
- package/vendor/rocksdb/java/rocksjni/memory_util.cc +100 -0
- package/vendor/rocksdb/java/rocksjni/memtablejni.cc +94 -0
- package/vendor/rocksdb/java/rocksjni/merge_operator.cc +98 -0
- package/vendor/rocksdb/java/rocksjni/native_comparator_wrapper_test.cc +45 -0
- package/vendor/rocksdb/java/rocksjni/optimistic_transaction_db.cc +270 -0
- package/vendor/rocksdb/java/rocksjni/optimistic_transaction_options.cc +78 -0
- package/vendor/rocksdb/java/rocksjni/options.cc +8695 -0
- package/vendor/rocksdb/java/rocksjni/options_util.cc +139 -0
- package/vendor/rocksdb/java/rocksjni/persistent_cache.cc +60 -0
- package/vendor/rocksdb/java/rocksjni/portal.h +8706 -0
- package/vendor/rocksdb/java/rocksjni/ratelimiterjni.cc +128 -0
- package/vendor/rocksdb/java/rocksjni/remove_emptyvalue_compactionfilterjni.cc +24 -0
- package/vendor/rocksdb/java/rocksjni/restorejni.cc +42 -0
- package/vendor/rocksdb/java/rocksjni/rocks_callback_object.cc +30 -0
- package/vendor/rocksdb/java/rocksjni/rocksdb_exception_test.cc +81 -0
- package/vendor/rocksdb/java/rocksjni/rocksjni.cc +3957 -0
- package/vendor/rocksdb/java/rocksjni/slice.cc +374 -0
- package/vendor/rocksdb/java/rocksjni/snapshot.cc +27 -0
- package/vendor/rocksdb/java/rocksjni/sst_file_manager.cc +250 -0
- package/vendor/rocksdb/java/rocksjni/sst_file_reader_iterator.cc +373 -0
- package/vendor/rocksdb/java/rocksjni/sst_file_readerjni.cc +118 -0
- package/vendor/rocksdb/java/rocksjni/sst_file_writerjni.cc +310 -0
- package/vendor/rocksdb/java/rocksjni/sst_partitioner.cc +43 -0
- package/vendor/rocksdb/java/rocksjni/statistics.cc +268 -0
- package/vendor/rocksdb/java/rocksjni/statisticsjni.cc +31 -0
- package/vendor/rocksdb/java/rocksjni/statisticsjni.h +34 -0
- package/vendor/rocksdb/java/rocksjni/table.cc +145 -0
- package/vendor/rocksdb/java/rocksjni/table_filter.cc +27 -0
- package/vendor/rocksdb/java/rocksjni/table_filter_jnicallback.cc +66 -0
- package/vendor/rocksdb/java/rocksjni/table_filter_jnicallback.h +36 -0
- package/vendor/rocksdb/java/rocksjni/testable_event_listener.cc +219 -0
- package/vendor/rocksdb/java/rocksjni/thread_status.cc +125 -0
- package/vendor/rocksdb/java/rocksjni/trace_writer.cc +24 -0
- package/vendor/rocksdb/java/rocksjni/trace_writer_jnicallback.cc +118 -0
- package/vendor/rocksdb/java/rocksjni/trace_writer_jnicallback.h +36 -0
- package/vendor/rocksdb/java/rocksjni/transaction.cc +1655 -0
- package/vendor/rocksdb/java/rocksjni/transaction_db.cc +451 -0
- package/vendor/rocksdb/java/rocksjni/transaction_db_options.cc +169 -0
- package/vendor/rocksdb/java/rocksjni/transaction_log.cc +80 -0
- package/vendor/rocksdb/java/rocksjni/transaction_notifier.cc +44 -0
- package/vendor/rocksdb/java/rocksjni/transaction_notifier_jnicallback.cc +42 -0
- package/vendor/rocksdb/java/rocksjni/transaction_notifier_jnicallback.h +42 -0
- package/vendor/rocksdb/java/rocksjni/transaction_options.cc +191 -0
- package/vendor/rocksdb/java/rocksjni/ttl.cc +212 -0
- package/vendor/rocksdb/java/rocksjni/wal_filter.cc +24 -0
- package/vendor/rocksdb/java/rocksjni/wal_filter_jnicallback.cc +139 -0
- package/vendor/rocksdb/java/rocksjni/wal_filter_jnicallback.h +42 -0
- package/vendor/rocksdb/java/rocksjni/write_batch.cc +676 -0
- package/vendor/rocksdb/java/rocksjni/write_batch_test.cc +199 -0
- package/vendor/rocksdb/java/rocksjni/write_batch_with_index.cc +953 -0
- package/vendor/rocksdb/java/rocksjni/write_buffer_manager.cc +47 -0
- package/vendor/rocksdb/java/rocksjni/writebatchhandlerjnicallback.cc +519 -0
- package/vendor/rocksdb/java/rocksjni/writebatchhandlerjnicallback.h +92 -0
- package/vendor/rocksdb/java/samples/src/main/java/OptimisticTransactionSample.java +184 -0
- package/vendor/rocksdb/java/samples/src/main/java/RocksDBColumnFamilySample.java +78 -0
- package/vendor/rocksdb/java/samples/src/main/java/RocksDBSample.java +295 -0
- package/vendor/rocksdb/java/samples/src/main/java/TransactionSample.java +183 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilter.java +59 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractCompactionFilterFactory.java +77 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparator.java +124 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractComparatorJniBridge.java +119 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractEventListener.java +334 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractImmutableNativeReference.java +65 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractMutableOptions.java +368 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractNativeReference.java +49 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractRocksIterator.java +146 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractSlice.java +191 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTableFilter.java +20 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTraceWriter.java +70 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractTransactionNotifier.java +54 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWalFilter.java +49 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AbstractWriteBatch.java +203 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AccessHint.java +53 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedColumnFamilyOptionsInterface.java +463 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/AdvancedMutableColumnFamilyOptionsInterface.java +830 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackgroundErrorReason.java +46 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngine.java +259 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupEngineOptions.java +458 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BackupInfo.java +76 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BlockBasedTableConfig.java +951 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BloomFilter.java +73 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/BuiltinComparator.java +20 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ByteBufferGetStatus.java +50 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Cache.java +40 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraCompactionFilter.java +20 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CassandraValueMergeOperator.java +25 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Checkpoint.java +62 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ChecksumType.java +45 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ClockCache.java +59 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyDescriptor.java +84 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyHandle.java +151 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyMetaData.java +70 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptions.java +1543 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ColumnFamilyOptionsInterface.java +536 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactRangeOptions.java +245 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobInfo.java +161 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionJobStats.java +295 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptions.java +121 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsFIFO.java +87 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionOptionsUniversal.java +273 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionPriority.java +81 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionReason.java +141 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStopStyle.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompactionStyle.java +81 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorOptions.java +133 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ComparatorType.java +48 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionOptions.java +150 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/CompressionType.java +121 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiter.java +44 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConcurrentTaskLimiterImpl.java +48 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ConfigOptions.java +53 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptions.java +1496 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DBOptionsInterface.java +1756 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DataBlockIndexType.java +32 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DbPath.java +47 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/DirectSlice.java +136 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EncodingType.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Env.java +167 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EnvOptions.java +366 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/EventListener.java +335 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Experimental.java +23 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ExternalFileIngestionInfo.java +103 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FileOperationInfo.java +112 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Filter.java +36 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushJobInfo.java +186 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushOptions.java +90 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/FlushReason.java +53 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashLinkedListMemTableConfig.java +174 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HashSkipListMemTableConfig.java +106 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramData.java +75 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/HistogramType.java +214 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Holder.java +46 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexShorteningMode.java +60 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IndexType.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/InfoLogLevel.java +49 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/IngestExternalFileOptions.java +227 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/KeyMayExist.java +35 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LRUCache.java +106 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LevelMetaData.java +56 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LiveFileMetaData.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/LogFile.java +75 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Logger.java +121 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableConfig.java +29 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemTableInfo.java +103 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUsageType.java +72 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MemoryUtil.java +60 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MergeOperator.java +18 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptions.java +621 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableColumnFamilyOptionsInterface.java +156 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptions.java +292 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableDBOptionsInterface.java +440 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionKey.java +16 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/MutableOptionValue.java +368 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeComparatorWrapper.java +59 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/NativeLibraryLoader.java +172 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationStage.java +59 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OperationType.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionDB.java +224 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptimisticTransactionOptions.java +53 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionString.java +261 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Options.java +2574 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/OptionsUtil.java +101 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PersistentCache.java +26 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PlainTableConfig.java +251 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/PrepopulateBlobCache.java +117 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Priority.java +49 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Range.java +19 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiter.java +227 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RateLimiterMode.java +52 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadOptions.java +822 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReadTier.java +49 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RemoveEmptyValueCompactionFilter.java +18 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RestoreOptions.java +32 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ReusedSynchronisationType.java +65 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksCallbackObject.java +73 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDB.java +4688 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksDBException.java +44 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksEnv.java +31 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIterator.java +140 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksIteratorInterface.java +127 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMemEnv.java +31 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksMutableObject.java +87 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/RocksObject.java +45 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SanityLevel.java +47 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SizeApproximationFlag.java +31 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SkipListMemTableConfig.java +51 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Slice.java +135 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Snapshot.java +41 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileManager.java +249 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileMetaData.java +162 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReader.java +82 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileReaderIterator.java +140 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstFileWriter.java +237 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFactory.java +15 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/SstPartitionerFixedPrefixFactory.java +19 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StateType.java +53 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Statistics.java +153 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollector.java +102 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatisticsCollectorCallback.java +32 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsCollectorInput.java +35 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StatsLevel.java +65 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Status.java +155 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/StringAppendOperator.java +29 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationBriefInfo.java +107 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationInfo.java +86 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileCreationReason.java +46 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFileDeletionInfo.java +86 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFilter.java +21 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableFormatConfig.java +22 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TableProperties.java +426 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadStatus.java +224 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/ThreadType.java +65 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TickerType.java +802 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TimedEnv.java +30 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceOptions.java +32 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TraceWriter.java +36 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/Transaction.java +2162 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDB.java +401 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionDBOptions.java +216 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionLogIterator.java +112 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionOptions.java +189 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalDB.java +65 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TransactionalOptions.java +31 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TtlDB.java +242 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/TxnDBWritePolicy.java +62 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/UInt64AddOperator.java +19 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/VectorMemTableConfig.java +46 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WALRecoveryMode.java +82 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WBWIRocksIterator.java +203 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFileType.java +55 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalFilter.java +86 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WalProcessingOption.java +54 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatch.java +394 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchInterface.java +283 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBatchWithIndex.java +358 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteBufferManager.java +50 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteOptions.java +255 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallCondition.java +44 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/WriteStallInfo.java +75 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ByteUtil.java +52 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/BytewiseComparator.java +121 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/Environment.java +245 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/IntComparator.java +67 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/ReverseBytewiseComparator.java +88 -0
- package/vendor/rocksdb/java/src/main/java/org/rocksdb/util/SizeUnit.java +16 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/AbstractTransactionTest.java +979 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineOptionsTest.java +297 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BackupEngineTest.java +261 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlobOptionsTest.java +353 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BlockBasedTableConfigTest.java +415 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BuiltinComparatorTest.java +145 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ByteBufferUnsupportedOperationTest.java +132 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/BytewiseComparatorRegressionTest.java +132 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CheckPointTest.java +82 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ClockCacheTest.java +25 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyOptionsTest.java +712 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ColumnFamilyTest.java +562 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactRangeOptionsTest.java +102 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionFilterFactoryTest.java +61 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobInfoTest.java +114 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionJobStatsTest.java +196 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsFIFOTest.java +35 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsTest.java +52 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionOptionsUniversalTest.java +80 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionPriorityTest.java +31 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompactionStopStyleTest.java +31 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ComparatorOptionsTest.java +58 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionOptionsTest.java +71 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/CompressionTypesTest.java +25 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ConcurrentTaskLimiterTest.java +56 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DBOptionsTest.java +902 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DefaultEnvTest.java +113 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/DirectSliceTest.java +93 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/EnvOptionsTest.java +145 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/EventListenerTest.java +725 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FilterTest.java +39 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushOptionsTest.java +31 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/FlushTest.java +49 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/InfoLogLevelTest.java +109 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/IngestExternalFileOptionsTest.java +107 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/KeyMayExistTest.java +528 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/LRUCacheTest.java +32 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/LoggerTest.java +235 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemTableTest.java +108 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MemoryUtilTest.java +136 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MergeTest.java +465 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MixedOptionsTest.java +85 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiColumnRegressionTest.java +145 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetManyKeysTest.java +241 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MultiGetTest.java +530 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableColumnFamilyOptionsTest.java +167 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableDBOptionsTest.java +85 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/MutableOptionsGetSetTest.java +429 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeComparatorWrapperTest.java +90 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/NativeLibraryLoaderTest.java +41 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionDBTest.java +131 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionOptionsTest.java +38 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptimisticTransactionTest.java +446 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsTest.java +1488 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/OptionsUtilTest.java +129 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlainTableConfigTest.java +89 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PlatformRandomHelper.java +58 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/PutMultiplePartsTest.java +164 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RateLimiterTest.java +65 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOnlyTest.java +222 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/ReadOptionsTest.java +374 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBExceptionTest.java +115 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksDBTest.java +1692 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksIteratorTest.java +289 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksMemEnvTest.java +137 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/RocksNativeLibraryResource.java +18 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SecondaryDBTest.java +135 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SliceTest.java +80 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SnapshotTest.java +169 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileManagerTest.java +66 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileReaderTest.java +222 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstFileWriterTest.java +239 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/SstPartitionerTest.java +72 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsCollectorTest.java +55 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatisticsTest.java +168 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/StatsCallbackMock.java +19 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TableFilterTest.java +106 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TimedEnvTest.java +40 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBOptionsTest.java +64 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionDBTest.java +177 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionLogIteratorTest.java +139 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionOptionsTest.java +72 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TransactionTest.java +488 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/TtlDBTest.java +112 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/Types.java +43 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/VerifyChecksumsTest.java +213 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WALRecoveryModeTest.java +22 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WalFilterTest.java +165 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchHandlerTest.java +76 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchTest.java +528 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchThreadedTest.java +101 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteBatchWithIndexTest.java +1068 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/WriteOptionsTest.java +75 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RemoveEmptyValueCompactionFilterFactory.java +21 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/RocksJunitRunner.java +174 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/test/TestableEventListener.java +23 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ByteBufferAllocator.java +16 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorIntTest.java +267 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/BytewiseComparatorTest.java +531 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/CapturingWriteBatchHandler.java +190 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/DirectByteBufferAllocator.java +18 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/EnvironmentTest.java +304 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/HeapByteBufferAllocator.java +18 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/IntComparatorTest.java +266 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/JNIComparatorTest.java +180 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/ReverseBytewiseComparatorIntTest.java +270 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/SizeUnitTest.java +27 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/TestUtil.java +72 -0
- package/vendor/rocksdb/java/src/test/java/org/rocksdb/util/WriteBatchGetter.java +139 -0
- package/vendor/rocksdb/java/understanding_options.md +79 -0
- package/vendor/rocksdb/logging/auto_roll_logger.cc +368 -0
- package/vendor/rocksdb/logging/auto_roll_logger.h +166 -0
- package/vendor/rocksdb/logging/auto_roll_logger_test.cc +731 -0
- package/vendor/rocksdb/logging/env_logger.h +195 -0
- package/vendor/rocksdb/logging/env_logger_test.cc +163 -0
- package/vendor/rocksdb/logging/event_logger.cc +68 -0
- package/vendor/rocksdb/logging/event_logger.h +202 -0
- package/vendor/rocksdb/logging/event_logger_test.cc +45 -0
- package/vendor/rocksdb/logging/log_buffer.cc +91 -0
- package/vendor/rocksdb/logging/log_buffer.h +57 -0
- package/vendor/rocksdb/logging/logging.h +62 -0
- package/vendor/rocksdb/memory/allocator.h +58 -0
- package/vendor/rocksdb/memory/arena.cc +170 -0
- package/vendor/rocksdb/memory/arena.h +135 -0
- package/vendor/rocksdb/memory/arena_test.cc +295 -0
- package/vendor/rocksdb/memory/concurrent_arena.cc +45 -0
- package/vendor/rocksdb/memory/concurrent_arena.h +215 -0
- package/vendor/rocksdb/memory/jemalloc_nodump_allocator.cc +303 -0
- package/vendor/rocksdb/memory/jemalloc_nodump_allocator.h +99 -0
- package/vendor/rocksdb/memory/memkind_kmem_allocator.cc +44 -0
- package/vendor/rocksdb/memory/memkind_kmem_allocator.h +43 -0
- package/vendor/rocksdb/memory/memory_allocator.cc +80 -0
- package/vendor/rocksdb/memory/memory_allocator_impl.h +47 -0
- package/vendor/rocksdb/memory/memory_allocator_test.cc +236 -0
- package/vendor/rocksdb/memory/memory_usage.h +38 -0
- package/vendor/rocksdb/memtable/alloc_tracker.cc +63 -0
- package/vendor/rocksdb/memtable/hash_linklist_rep.cc +924 -0
- package/vendor/rocksdb/memtable/hash_skiplist_rep.cc +391 -0
- package/vendor/rocksdb/memtable/inlineskiplist.h +1051 -0
- package/vendor/rocksdb/memtable/inlineskiplist_test.cc +665 -0
- package/vendor/rocksdb/memtable/memtablerep_bench.cc +687 -0
- package/vendor/rocksdb/memtable/skiplist.h +498 -0
- package/vendor/rocksdb/memtable/skiplist_test.cc +388 -0
- package/vendor/rocksdb/memtable/skiplistrep.cc +368 -0
- package/vendor/rocksdb/memtable/stl_wrappers.h +33 -0
- package/vendor/rocksdb/memtable/vectorrep.cc +307 -0
- package/vendor/rocksdb/memtable/write_buffer_manager.cc +185 -0
- package/vendor/rocksdb/memtable/write_buffer_manager_test.cc +304 -0
- package/vendor/rocksdb/microbench/CMakeLists.txt +17 -0
- package/vendor/rocksdb/microbench/README.md +60 -0
- package/vendor/rocksdb/microbench/db_basic_bench.cc +1583 -0
- package/vendor/rocksdb/microbench/ribbon_bench.cc +155 -0
- package/vendor/rocksdb/monitoring/file_read_sample.h +23 -0
- package/vendor/rocksdb/monitoring/histogram.cc +270 -0
- package/vendor/rocksdb/monitoring/histogram.h +143 -0
- package/vendor/rocksdb/monitoring/histogram_test.cc +254 -0
- package/vendor/rocksdb/monitoring/histogram_windowing.cc +194 -0
- package/vendor/rocksdb/monitoring/histogram_windowing.h +84 -0
- package/vendor/rocksdb/monitoring/in_memory_stats_history.cc +50 -0
- package/vendor/rocksdb/monitoring/in_memory_stats_history.h +74 -0
- package/vendor/rocksdb/monitoring/instrumented_mutex.cc +90 -0
- package/vendor/rocksdb/monitoring/instrumented_mutex.h +126 -0
- package/vendor/rocksdb/monitoring/iostats_context.cc +78 -0
- package/vendor/rocksdb/monitoring/iostats_context_imp.h +62 -0
- package/vendor/rocksdb/monitoring/iostats_context_test.cc +31 -0
- package/vendor/rocksdb/monitoring/perf_context.cc +313 -0
- package/vendor/rocksdb/monitoring/perf_context_imp.h +96 -0
- package/vendor/rocksdb/monitoring/perf_level.cc +23 -0
- package/vendor/rocksdb/monitoring/perf_level_imp.h +14 -0
- package/vendor/rocksdb/monitoring/perf_step_timer.h +77 -0
- package/vendor/rocksdb/monitoring/persistent_stats_history.cc +170 -0
- package/vendor/rocksdb/monitoring/persistent_stats_history.h +83 -0
- package/vendor/rocksdb/monitoring/statistics.cc +534 -0
- package/vendor/rocksdb/monitoring/statistics_impl.h +144 -0
- package/vendor/rocksdb/monitoring/statistics_test.cc +88 -0
- package/vendor/rocksdb/monitoring/stats_history_test.cc +662 -0
- package/vendor/rocksdb/monitoring/thread_status_impl.cc +163 -0
- package/vendor/rocksdb/monitoring/thread_status_updater.cc +328 -0
- package/vendor/rocksdb/monitoring/thread_status_updater.h +226 -0
- package/vendor/rocksdb/monitoring/thread_status_updater_debug.cc +43 -0
- package/vendor/rocksdb/monitoring/thread_status_util.cc +208 -0
- package/vendor/rocksdb/monitoring/thread_status_util.h +139 -0
- package/vendor/rocksdb/monitoring/thread_status_util_debug.cc +46 -0
- package/vendor/rocksdb/options/cf_options.cc +1196 -0
- package/vendor/rocksdb/options/cf_options.h +347 -0
- package/vendor/rocksdb/options/configurable.cc +712 -0
- package/vendor/rocksdb/options/configurable_helper.h +185 -0
- package/vendor/rocksdb/options/configurable_test.cc +861 -0
- package/vendor/rocksdb/options/configurable_test.h +116 -0
- package/vendor/rocksdb/options/customizable.cc +133 -0
- package/vendor/rocksdb/options/customizable_test.cc +2116 -0
- package/vendor/rocksdb/options/db_options.cc +1079 -0
- package/vendor/rocksdb/options/db_options.h +152 -0
- package/vendor/rocksdb/options/options.cc +692 -0
- package/vendor/rocksdb/options/options_helper.cc +1424 -0
- package/vendor/rocksdb/options/options_helper.h +116 -0
- package/vendor/rocksdb/options/options_parser.cc +736 -0
- package/vendor/rocksdb/options/options_parser.h +149 -0
- package/vendor/rocksdb/options/options_settable_test.cc +655 -0
- package/vendor/rocksdb/options/options_test.cc +5060 -0
- package/vendor/rocksdb/plugin/README.md +43 -0
- package/vendor/rocksdb/port/README +10 -0
- package/vendor/rocksdb/port/jemalloc_helper.h +107 -0
- package/vendor/rocksdb/port/lang.h +97 -0
- package/vendor/rocksdb/port/likely.h +18 -0
- package/vendor/rocksdb/port/malloc.h +17 -0
- package/vendor/rocksdb/port/mmap.cc +98 -0
- package/vendor/rocksdb/port/mmap.h +70 -0
- package/vendor/rocksdb/port/port.h +21 -0
- package/vendor/rocksdb/port/port_dirent.h +44 -0
- package/vendor/rocksdb/port/port_example.h +101 -0
- package/vendor/rocksdb/port/port_posix.cc +300 -0
- package/vendor/rocksdb/port/port_posix.h +243 -0
- package/vendor/rocksdb/port/stack_trace.cc +336 -0
- package/vendor/rocksdb/port/stack_trace.h +31 -0
- package/vendor/rocksdb/port/sys_time.h +63 -0
- package/vendor/rocksdb/port/util_logger.h +18 -0
- package/vendor/rocksdb/port/win/env_default.cc +45 -0
- package/vendor/rocksdb/port/win/env_win.cc +1437 -0
- package/vendor/rocksdb/port/win/env_win.h +305 -0
- package/vendor/rocksdb/port/win/io_win.cc +1101 -0
- package/vendor/rocksdb/port/win/io_win.h +508 -0
- package/vendor/rocksdb/port/win/port_win.cc +303 -0
- package/vendor/rocksdb/port/win/port_win.h +379 -0
- package/vendor/rocksdb/port/win/win_jemalloc.cc +80 -0
- package/vendor/rocksdb/port/win/win_logger.cc +192 -0
- package/vendor/rocksdb/port/win/win_logger.h +64 -0
- package/vendor/rocksdb/port/win/win_thread.cc +170 -0
- package/vendor/rocksdb/port/win/win_thread.h +117 -0
- package/vendor/rocksdb/port/win/xpress_win.cc +210 -0
- package/vendor/rocksdb/port/win/xpress_win.h +26 -0
- package/vendor/rocksdb/port/xpress.h +17 -0
- package/vendor/rocksdb/rocksdb.pc.in +10 -0
- package/vendor/rocksdb/src.mk +713 -0
- package/vendor/rocksdb/table/adaptive/adaptive_table_factory.cc +125 -0
- package/vendor/rocksdb/table/adaptive/adaptive_table_factory.h +56 -0
- package/vendor/rocksdb/table/block_based/binary_search_index_reader.cc +73 -0
- package/vendor/rocksdb/table/block_based/binary_search_index_reader.h +48 -0
- package/vendor/rocksdb/table/block_based/block.cc +1291 -0
- package/vendor/rocksdb/table/block_based/block.h +921 -0
- package/vendor/rocksdb/table/block_based/block_based_table_builder.cc +2027 -0
- package/vendor/rocksdb/table/block_based/block_based_table_builder.h +209 -0
- package/vendor/rocksdb/table/block_based/block_based_table_factory.cc +962 -0
- package/vendor/rocksdb/table/block_based/block_based_table_factory.h +102 -0
- package/vendor/rocksdb/table/block_based/block_based_table_iterator.cc +500 -0
- package/vendor/rocksdb/table/block_based/block_based_table_iterator.h +310 -0
- package/vendor/rocksdb/table/block_based/block_based_table_reader.cc +3043 -0
- package/vendor/rocksdb/table/block_based/block_based_table_reader.h +745 -0
- package/vendor/rocksdb/table/block_based/block_based_table_reader_impl.h +203 -0
- package/vendor/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +758 -0
- package/vendor/rocksdb/table/block_based/block_based_table_reader_test.cc +567 -0
- package/vendor/rocksdb/table/block_based/block_builder.cc +234 -0
- package/vendor/rocksdb/table/block_based/block_builder.h +104 -0
- package/vendor/rocksdb/table/block_based/block_cache.cc +106 -0
- package/vendor/rocksdb/table/block_based/block_cache.h +140 -0
- package/vendor/rocksdb/table/block_based/block_prefetcher.cc +120 -0
- package/vendor/rocksdb/table/block_based/block_prefetcher.h +72 -0
- package/vendor/rocksdb/table/block_based/block_prefix_index.cc +226 -0
- package/vendor/rocksdb/table/block_based/block_prefix_index.h +70 -0
- package/vendor/rocksdb/table/block_based/block_test.cc +1543 -0
- package/vendor/rocksdb/table/block_based/block_type.h +34 -0
- package/vendor/rocksdb/table/block_based/cachable_entry.h +244 -0
- package/vendor/rocksdb/table/block_based/data_block_footer.cc +59 -0
- package/vendor/rocksdb/table/block_based/data_block_footer.h +25 -0
- package/vendor/rocksdb/table/block_based/data_block_hash_index.cc +94 -0
- package/vendor/rocksdb/table/block_based/data_block_hash_index.h +137 -0
- package/vendor/rocksdb/table/block_based/data_block_hash_index_test.cc +718 -0
- package/vendor/rocksdb/table/block_based/filter_block.h +183 -0
- package/vendor/rocksdb/table/block_based/filter_block_reader_common.cc +163 -0
- package/vendor/rocksdb/table/block_based/filter_block_reader_common.h +76 -0
- package/vendor/rocksdb/table/block_based/filter_policy.cc +1966 -0
- package/vendor/rocksdb/table/block_based/filter_policy_internal.h +340 -0
- package/vendor/rocksdb/table/block_based/flush_block_policy.cc +132 -0
- package/vendor/rocksdb/table/block_based/flush_block_policy_impl.h +40 -0
- package/vendor/rocksdb/table/block_based/full_filter_block.cc +290 -0
- package/vendor/rocksdb/table/block_based/full_filter_block.h +147 -0
- package/vendor/rocksdb/table/block_based/full_filter_block_test.cc +323 -0
- package/vendor/rocksdb/table/block_based/hash_index_reader.cc +147 -0
- package/vendor/rocksdb/table/block_based/hash_index_reader.h +49 -0
- package/vendor/rocksdb/table/block_based/index_builder.cc +282 -0
- package/vendor/rocksdb/table/block_based/index_builder.h +455 -0
- package/vendor/rocksdb/table/block_based/index_reader_common.cc +57 -0
- package/vendor/rocksdb/table/block_based/index_reader_common.h +85 -0
- package/vendor/rocksdb/table/block_based/mock_block_based_table.h +62 -0
- package/vendor/rocksdb/table/block_based/parsed_full_filter_block.cc +23 -0
- package/vendor/rocksdb/table/block_based/parsed_full_filter_block.h +47 -0
- package/vendor/rocksdb/table/block_based/partitioned_filter_block.cc +554 -0
- package/vendor/rocksdb/table/block_based/partitioned_filter_block.h +182 -0
- package/vendor/rocksdb/table/block_based/partitioned_filter_block_test.cc +436 -0
- package/vendor/rocksdb/table/block_based/partitioned_index_iterator.cc +163 -0
- package/vendor/rocksdb/table/block_based/partitioned_index_iterator.h +160 -0
- package/vendor/rocksdb/table/block_based/partitioned_index_reader.cc +224 -0
- package/vendor/rocksdb/table/block_based/partitioned_index_reader.h +56 -0
- package/vendor/rocksdb/table/block_based/reader_common.cc +52 -0
- package/vendor/rocksdb/table/block_based/reader_common.h +34 -0
- package/vendor/rocksdb/table/block_based/uncompression_dict_reader.cc +126 -0
- package/vendor/rocksdb/table/block_based/uncompression_dict_reader.h +61 -0
- package/vendor/rocksdb/table/block_fetcher.cc +405 -0
- package/vendor/rocksdb/table/block_fetcher.h +142 -0
- package/vendor/rocksdb/table/block_fetcher_test.cc +520 -0
- package/vendor/rocksdb/table/cleanable_test.cc +390 -0
- package/vendor/rocksdb/table/compaction_merging_iterator.cc +370 -0
- package/vendor/rocksdb/table/compaction_merging_iterator.h +44 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.cc +551 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder.h +136 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +631 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.cc +100 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_factory.h +80 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.cc +412 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader.h +100 -0
- package/vendor/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +574 -0
- package/vendor/rocksdb/table/format.cc +573 -0
- package/vendor/rocksdb/table/format.h +378 -0
- package/vendor/rocksdb/table/get_context.cc +616 -0
- package/vendor/rocksdb/table/get_context.h +245 -0
- package/vendor/rocksdb/table/internal_iterator.h +224 -0
- package/vendor/rocksdb/table/iter_heap.h +44 -0
- package/vendor/rocksdb/table/iterator.cc +130 -0
- package/vendor/rocksdb/table/iterator_wrapper.h +190 -0
- package/vendor/rocksdb/table/merger_test.cc +182 -0
- package/vendor/rocksdb/table/merging_iterator.cc +1725 -0
- package/vendor/rocksdb/table/merging_iterator.h +97 -0
- package/vendor/rocksdb/table/meta_blocks.cc +564 -0
- package/vendor/rocksdb/table/meta_blocks.h +172 -0
- package/vendor/rocksdb/table/mock_table.cc +346 -0
- package/vendor/rocksdb/table/mock_table.h +94 -0
- package/vendor/rocksdb/table/multiget_context.h +405 -0
- package/vendor/rocksdb/table/persistent_cache_helper.cc +111 -0
- package/vendor/rocksdb/table/persistent_cache_helper.h +46 -0
- package/vendor/rocksdb/table/persistent_cache_options.h +34 -0
- package/vendor/rocksdb/table/plain/plain_table_bloom.cc +78 -0
- package/vendor/rocksdb/table/plain/plain_table_bloom.h +132 -0
- package/vendor/rocksdb/table/plain/plain_table_builder.cc +335 -0
- package/vendor/rocksdb/table/plain/plain_table_builder.h +152 -0
- package/vendor/rocksdb/table/plain/plain_table_factory.cc +296 -0
- package/vendor/rocksdb/table/plain/plain_table_factory.h +180 -0
- package/vendor/rocksdb/table/plain/plain_table_index.cc +211 -0
- package/vendor/rocksdb/table/plain/plain_table_index.h +246 -0
- package/vendor/rocksdb/table/plain/plain_table_key_coding.cc +507 -0
- package/vendor/rocksdb/table/plain/plain_table_key_coding.h +199 -0
- package/vendor/rocksdb/table/plain/plain_table_reader.cc +771 -0
- package/vendor/rocksdb/table/plain/plain_table_reader.h +243 -0
- package/vendor/rocksdb/table/scoped_arena_iterator.h +57 -0
- package/vendor/rocksdb/table/sst_file_dumper.cc +520 -0
- package/vendor/rocksdb/table/sst_file_dumper.h +99 -0
- package/vendor/rocksdb/table/sst_file_reader.cc +101 -0
- package/vendor/rocksdb/table/sst_file_reader_test.cc +423 -0
- package/vendor/rocksdb/table/sst_file_writer.cc +436 -0
- package/vendor/rocksdb/table/sst_file_writer_collectors.h +95 -0
- package/vendor/rocksdb/table/table_builder.h +228 -0
- package/vendor/rocksdb/table/table_factory.cc +52 -0
- package/vendor/rocksdb/table/table_properties.cc +351 -0
- package/vendor/rocksdb/table/table_properties_internal.h +14 -0
- package/vendor/rocksdb/table/table_reader.h +187 -0
- package/vendor/rocksdb/table/table_reader_bench.cc +339 -0
- package/vendor/rocksdb/table/table_test.cc +5882 -0
- package/vendor/rocksdb/table/two_level_iterator.cc +220 -0
- package/vendor/rocksdb/table/two_level_iterator.h +43 -0
- package/vendor/rocksdb/table/unique_id.cc +223 -0
- package/vendor/rocksdb/table/unique_id_impl.h +93 -0
- package/vendor/rocksdb/test_util/mock_time_env.cc +38 -0
- package/vendor/rocksdb/test_util/mock_time_env.h +78 -0
- package/vendor/rocksdb/test_util/secondary_cache_test_util.cc +96 -0
- package/vendor/rocksdb/test_util/secondary_cache_test_util.h +119 -0
- package/vendor/rocksdb/test_util/sync_point.cc +82 -0
- package/vendor/rocksdb/test_util/sync_point.h +180 -0
- package/vendor/rocksdb/test_util/sync_point_impl.cc +152 -0
- package/vendor/rocksdb/test_util/sync_point_impl.h +96 -0
- package/vendor/rocksdb/test_util/testharness.cc +107 -0
- package/vendor/rocksdb/test_util/testharness.h +124 -0
- package/vendor/rocksdb/test_util/testutil.cc +722 -0
- package/vendor/rocksdb/test_util/testutil.h +860 -0
- package/vendor/rocksdb/test_util/testutil_test.cc +43 -0
- package/vendor/rocksdb/test_util/transaction_test_util.cc +400 -0
- package/vendor/rocksdb/test_util/transaction_test_util.h +147 -0
- package/vendor/rocksdb/third-party/gcc/ppc-asm.h +390 -0
- package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/CMakeLists.txt +4 -0
- package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest-all.cc +11394 -0
- package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest.h +22115 -0
- package/vendor/rocksdb/third-party/gtest-1.8.1/fused-src/gtest/gtest_main.cc +37 -0
- package/vendor/rocksdb/thirdparty.inc +268 -0
- package/vendor/rocksdb/tools/CMakeLists.txt +30 -0
- package/vendor/rocksdb/tools/Dockerfile +5 -0
- package/vendor/rocksdb/tools/advisor/README.md +96 -0
- package/vendor/rocksdb/tools/advisor/advisor/__init__.py +0 -0
- package/vendor/rocksdb/tools/advisor/advisor/bench_runner.py +39 -0
- package/vendor/rocksdb/tools/advisor/advisor/config_optimizer_example.py +140 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_bench_runner.py +237 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_config_optimizer.py +293 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_log_parser.py +134 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_options_parser.py +348 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_stats_fetcher.py +346 -0
- package/vendor/rocksdb/tools/advisor/advisor/db_timeseries_parser.py +203 -0
- package/vendor/rocksdb/tools/advisor/advisor/ini_parser.py +76 -0
- package/vendor/rocksdb/tools/advisor/advisor/rule_parser.py +510 -0
- package/vendor/rocksdb/tools/advisor/advisor/rule_parser_example.py +98 -0
- package/vendor/rocksdb/tools/advisor/advisor/rules.ini +214 -0
- package/vendor/rocksdb/tools/advisor/test/__init__.py +0 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/LOG-0 +30 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/LOG-1 +25 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/OPTIONS-000005 +49 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/log_stats_parser_keys_ts +3 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err1.ini +56 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err2.ini +15 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err3.ini +15 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/rules_err4.ini +15 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/test_rules.ini +47 -0
- package/vendor/rocksdb/tools/advisor/test/input_files/triggered_rules.ini +83 -0
- package/vendor/rocksdb/tools/advisor/test/test_db_bench_runner.py +141 -0
- package/vendor/rocksdb/tools/advisor/test/test_db_log_parser.py +96 -0
- package/vendor/rocksdb/tools/advisor/test/test_db_options_parser.py +214 -0
- package/vendor/rocksdb/tools/advisor/test/test_db_stats_fetcher.py +121 -0
- package/vendor/rocksdb/tools/advisor/test/test_rule_parser.py +226 -0
- package/vendor/rocksdb/tools/analyze_txn_stress_test.sh +77 -0
- package/vendor/rocksdb/tools/auto_sanity_test.sh +93 -0
- package/vendor/rocksdb/tools/backup_db.sh +15 -0
- package/vendor/rocksdb/tools/benchmark.sh +1173 -0
- package/vendor/rocksdb/tools/benchmark_ci.py +182 -0
- package/vendor/rocksdb/tools/benchmark_compare.sh +342 -0
- package/vendor/rocksdb/tools/benchmark_leveldb.sh +187 -0
- package/vendor/rocksdb/tools/blob_dump.cc +103 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/__init__.py +2 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +2000 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim.sh +156 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +734 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +2314 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +397 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +729 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +791 -0
- package/vendor/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +17 -0
- package/vendor/rocksdb/tools/check_all_python.py +22 -0
- package/vendor/rocksdb/tools/check_format_compatible.sh +379 -0
- package/vendor/rocksdb/tools/db_bench.cc +21 -0
- package/vendor/rocksdb/tools/db_bench_tool.cc +8604 -0
- package/vendor/rocksdb/tools/db_bench_tool_test.cc +342 -0
- package/vendor/rocksdb/tools/db_crashtest.py +1018 -0
- package/vendor/rocksdb/tools/db_repl_stress.cc +132 -0
- package/vendor/rocksdb/tools/db_sanity_test.cc +296 -0
- package/vendor/rocksdb/tools/dbench_monitor +102 -0
- package/vendor/rocksdb/tools/dump/db_dump_tool.cc +258 -0
- package/vendor/rocksdb/tools/dump/rocksdb_dump.cc +60 -0
- package/vendor/rocksdb/tools/dump/rocksdb_undump.cc +59 -0
- package/vendor/rocksdb/tools/generate_random_db.sh +31 -0
- package/vendor/rocksdb/tools/ingest_external_sst.sh +18 -0
- package/vendor/rocksdb/tools/io_tracer_parser.cc +17 -0
- package/vendor/rocksdb/tools/io_tracer_parser_test.cc +182 -0
- package/vendor/rocksdb/tools/io_tracer_parser_tool.cc +142 -0
- package/vendor/rocksdb/tools/io_tracer_parser_tool.h +38 -0
- package/vendor/rocksdb/tools/ldb.cc +13 -0
- package/vendor/rocksdb/tools/ldb_cmd.cc +4263 -0
- package/vendor/rocksdb/tools/ldb_cmd_impl.h +744 -0
- package/vendor/rocksdb/tools/ldb_cmd_test.cc +1216 -0
- package/vendor/rocksdb/tools/ldb_test.py +955 -0
- package/vendor/rocksdb/tools/ldb_tool.cc +182 -0
- package/vendor/rocksdb/tools/pflag +217 -0
- package/vendor/rocksdb/tools/reduce_levels_test.cc +212 -0
- package/vendor/rocksdb/tools/regression_test.sh +525 -0
- package/vendor/rocksdb/tools/restore_db.sh +15 -0
- package/vendor/rocksdb/tools/rocksdb_dump_test.sh +9 -0
- package/vendor/rocksdb/tools/run_blob_bench.sh +223 -0
- package/vendor/rocksdb/tools/run_flash_bench.sh +359 -0
- package/vendor/rocksdb/tools/run_leveldb.sh +175 -0
- package/vendor/rocksdb/tools/sample-dump.dmp +0 -0
- package/vendor/rocksdb/tools/simulated_hybrid_file_system.cc +243 -0
- package/vendor/rocksdb/tools/simulated_hybrid_file_system.h +124 -0
- package/vendor/rocksdb/tools/sst_dump.cc +12 -0
- package/vendor/rocksdb/tools/sst_dump_test.cc +471 -0
- package/vendor/rocksdb/tools/sst_dump_tool.cc +582 -0
- package/vendor/rocksdb/tools/trace_analyzer.cc +17 -0
- package/vendor/rocksdb/tools/trace_analyzer_test.cc +880 -0
- package/vendor/rocksdb/tools/trace_analyzer_tool.cc +1929 -0
- package/vendor/rocksdb/tools/trace_analyzer_tool.h +329 -0
- package/vendor/rocksdb/tools/verify_random_db.sh +41 -0
- package/vendor/rocksdb/tools/write_external_sst.sh +26 -0
- package/vendor/rocksdb/tools/write_stress.cc +305 -0
- package/vendor/rocksdb/tools/write_stress_runner.py +83 -0
- package/vendor/rocksdb/trace_replay/block_cache_tracer.cc +509 -0
- package/vendor/rocksdb/trace_replay/block_cache_tracer.h +239 -0
- package/vendor/rocksdb/trace_replay/block_cache_tracer_test.cc +421 -0
- package/vendor/rocksdb/trace_replay/io_tracer.cc +303 -0
- package/vendor/rocksdb/trace_replay/io_tracer.h +185 -0
- package/vendor/rocksdb/trace_replay/io_tracer_test.cc +353 -0
- package/vendor/rocksdb/trace_replay/trace_record.cc +206 -0
- package/vendor/rocksdb/trace_replay/trace_record_handler.cc +190 -0
- package/vendor/rocksdb/trace_replay/trace_record_handler.h +46 -0
- package/vendor/rocksdb/trace_replay/trace_record_result.cc +146 -0
- package/vendor/rocksdb/trace_replay/trace_replay.cc +622 -0
- package/vendor/rocksdb/trace_replay/trace_replay.h +183 -0
- package/vendor/rocksdb/util/aligned_buffer.h +235 -0
- package/vendor/rocksdb/util/async_file_reader.cc +81 -0
- package/vendor/rocksdb/util/async_file_reader.h +144 -0
- package/vendor/rocksdb/util/autovector.h +393 -0
- package/vendor/rocksdb/util/autovector_test.cc +324 -0
- package/vendor/rocksdb/util/bloom_impl.h +489 -0
- package/vendor/rocksdb/util/bloom_test.cc +1175 -0
- package/vendor/rocksdb/util/build_version.cc.in +79 -0
- package/vendor/rocksdb/util/cast_util.h +42 -0
- package/vendor/rocksdb/util/channel.h +69 -0
- package/vendor/rocksdb/util/cleanable.cc +181 -0
- package/vendor/rocksdb/util/coding.cc +90 -0
- package/vendor/rocksdb/util/coding.h +389 -0
- package/vendor/rocksdb/util/coding_lean.h +101 -0
- package/vendor/rocksdb/util/coding_test.cc +217 -0
- package/vendor/rocksdb/util/compaction_job_stats_impl.cc +92 -0
- package/vendor/rocksdb/util/comparator.cc +383 -0
- package/vendor/rocksdb/util/compression.cc +122 -0
- package/vendor/rocksdb/util/compression.h +1795 -0
- package/vendor/rocksdb/util/compression_context_cache.cc +106 -0
- package/vendor/rocksdb/util/compression_context_cache.h +47 -0
- package/vendor/rocksdb/util/concurrent_task_limiter_impl.cc +64 -0
- package/vendor/rocksdb/util/concurrent_task_limiter_impl.h +67 -0
- package/vendor/rocksdb/util/core_local.h +84 -0
- package/vendor/rocksdb/util/coro_utils.h +112 -0
- package/vendor/rocksdb/util/crc32c.cc +1292 -0
- package/vendor/rocksdb/util/crc32c.h +56 -0
- package/vendor/rocksdb/util/crc32c_arm64.cc +213 -0
- package/vendor/rocksdb/util/crc32c_arm64.h +52 -0
- package/vendor/rocksdb/util/crc32c_ppc.c +94 -0
- package/vendor/rocksdb/util/crc32c_ppc.h +22 -0
- package/vendor/rocksdb/util/crc32c_ppc_asm.S +756 -0
- package/vendor/rocksdb/util/crc32c_ppc_constants.h +900 -0
- package/vendor/rocksdb/util/crc32c_test.cc +213 -0
- package/vendor/rocksdb/util/data_structure.cc +18 -0
- package/vendor/rocksdb/util/defer.h +82 -0
- package/vendor/rocksdb/util/defer_test.cc +51 -0
- package/vendor/rocksdb/util/distributed_mutex.h +50 -0
- package/vendor/rocksdb/util/duplicate_detector.h +69 -0
- package/vendor/rocksdb/util/dynamic_bloom.cc +70 -0
- package/vendor/rocksdb/util/dynamic_bloom.h +214 -0
- package/vendor/rocksdb/util/dynamic_bloom_test.cc +325 -0
- package/vendor/rocksdb/util/fastrange.h +114 -0
- package/vendor/rocksdb/util/file_checksum_helper.cc +170 -0
- package/vendor/rocksdb/util/file_checksum_helper.h +101 -0
- package/vendor/rocksdb/util/file_reader_writer_test.cc +1058 -0
- package/vendor/rocksdb/util/filelock_test.cc +148 -0
- package/vendor/rocksdb/util/filter_bench.cc +840 -0
- package/vendor/rocksdb/util/gflags_compat.h +29 -0
- package/vendor/rocksdb/util/hash.cc +201 -0
- package/vendor/rocksdb/util/hash.h +137 -0
- package/vendor/rocksdb/util/hash128.h +26 -0
- package/vendor/rocksdb/util/hash_containers.h +51 -0
- package/vendor/rocksdb/util/hash_map.h +67 -0
- package/vendor/rocksdb/util/hash_test.cc +853 -0
- package/vendor/rocksdb/util/heap.h +174 -0
- package/vendor/rocksdb/util/heap_test.cc +131 -0
- package/vendor/rocksdb/util/kv_map.h +33 -0
- package/vendor/rocksdb/util/log_write_bench.cc +88 -0
- package/vendor/rocksdb/util/math.h +299 -0
- package/vendor/rocksdb/util/math128.h +316 -0
- package/vendor/rocksdb/util/murmurhash.cc +196 -0
- package/vendor/rocksdb/util/murmurhash.h +43 -0
- package/vendor/rocksdb/util/mutexlock.h +181 -0
- package/vendor/rocksdb/util/ppc-opcode.h +27 -0
- package/vendor/rocksdb/util/random.cc +63 -0
- package/vendor/rocksdb/util/random.h +190 -0
- package/vendor/rocksdb/util/random_test.cc +107 -0
- package/vendor/rocksdb/util/rate_limiter.cc +376 -0
- package/vendor/rocksdb/util/rate_limiter_impl.h +146 -0
- package/vendor/rocksdb/util/rate_limiter_test.cc +520 -0
- package/vendor/rocksdb/util/repeatable_thread.h +149 -0
- package/vendor/rocksdb/util/repeatable_thread_test.cc +111 -0
- package/vendor/rocksdb/util/ribbon_alg.h +1225 -0
- package/vendor/rocksdb/util/ribbon_config.cc +506 -0
- package/vendor/rocksdb/util/ribbon_config.h +182 -0
- package/vendor/rocksdb/util/ribbon_impl.h +1137 -0
- package/vendor/rocksdb/util/ribbon_test.cc +1308 -0
- package/vendor/rocksdb/util/set_comparator.h +24 -0
- package/vendor/rocksdb/util/single_thread_executor.h +56 -0
- package/vendor/rocksdb/util/slice.cc +367 -0
- package/vendor/rocksdb/util/slice_test.cc +252 -0
- package/vendor/rocksdb/util/slice_transform_test.cc +159 -0
- package/vendor/rocksdb/util/status.cc +162 -0
- package/vendor/rocksdb/util/stderr_logger.cc +30 -0
- package/vendor/rocksdb/util/stderr_logger.h +31 -0
- package/vendor/rocksdb/util/stop_watch.h +136 -0
- package/vendor/rocksdb/util/string_util.cc +502 -0
- package/vendor/rocksdb/util/string_util.h +175 -0
- package/vendor/rocksdb/util/thread_guard.h +41 -0
- package/vendor/rocksdb/util/thread_list_test.cc +362 -0
- package/vendor/rocksdb/util/thread_local.cc +521 -0
- package/vendor/rocksdb/util/thread_local.h +100 -0
- package/vendor/rocksdb/util/thread_local_test.cc +578 -0
- package/vendor/rocksdb/util/thread_operation.h +113 -0
- package/vendor/rocksdb/util/threadpool_imp.cc +551 -0
- package/vendor/rocksdb/util/threadpool_imp.h +120 -0
- package/vendor/rocksdb/util/timer.h +340 -0
- package/vendor/rocksdb/util/timer_queue.h +231 -0
- package/vendor/rocksdb/util/timer_queue_test.cc +73 -0
- package/vendor/rocksdb/util/timer_test.cc +402 -0
- package/vendor/rocksdb/util/udt_util.h +77 -0
- package/vendor/rocksdb/util/user_comparator_wrapper.h +64 -0
- package/vendor/rocksdb/util/vector_iterator.h +118 -0
- package/vendor/rocksdb/util/work_queue.h +150 -0
- package/vendor/rocksdb/util/work_queue_test.cc +272 -0
- package/vendor/rocksdb/util/xxhash.cc +48 -0
- package/vendor/rocksdb/util/xxhash.h +6360 -0
- package/vendor/rocksdb/util/xxph3.h +1764 -0
- package/vendor/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
- package/vendor/rocksdb/utilities/agg_merge/agg_merge_impl.h +49 -0
- package/vendor/rocksdb/utilities/agg_merge/agg_merge_test.cc +135 -0
- package/vendor/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
- package/vendor/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
- package/vendor/rocksdb/utilities/backup/backup_engine.cc +3355 -0
- package/vendor/rocksdb/utilities/backup/backup_engine_impl.h +34 -0
- package/vendor/rocksdb/utilities/backup/backup_engine_test.cc +4414 -0
- package/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.cc +488 -0
- package/vendor/rocksdb/utilities/blob_db/blob_compaction_filter.h +202 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db.cc +112 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db.h +264 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_gc_stats.h +54 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_impl.cc +2185 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_impl.h +501 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +111 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_iterator.h +148 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_listener.h +69 -0
- package/vendor/rocksdb/utilities/blob_db/blob_db_test.cc +2430 -0
- package/vendor/rocksdb/utilities/blob_db/blob_dump_tool.cc +280 -0
- package/vendor/rocksdb/utilities/blob_db/blob_dump_tool.h +56 -0
- package/vendor/rocksdb/utilities/blob_db/blob_file.cc +316 -0
- package/vendor/rocksdb/utilities/blob_db/blob_file.h +244 -0
- package/vendor/rocksdb/utilities/cache_dump_load.cc +67 -0
- package/vendor/rocksdb/utilities/cache_dump_load_impl.cc +369 -0
- package/vendor/rocksdb/utilities/cache_dump_load_impl.h +356 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +106 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +57 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_format_test.cc +377 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_functional_test.cc +444 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_options.h +41 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +98 -0
- package/vendor/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +164 -0
- package/vendor/rocksdb/utilities/cassandra/format.cc +367 -0
- package/vendor/rocksdb/utilities/cassandra/format.h +183 -0
- package/vendor/rocksdb/utilities/cassandra/merge_operator.cc +80 -0
- package/vendor/rocksdb/utilities/cassandra/merge_operator.h +44 -0
- package/vendor/rocksdb/utilities/cassandra/serialize.h +81 -0
- package/vendor/rocksdb/utilities/cassandra/test_utils.cc +69 -0
- package/vendor/rocksdb/utilities/cassandra/test_utils.h +42 -0
- package/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.cc +470 -0
- package/vendor/rocksdb/utilities/checkpoint/checkpoint_impl.h +64 -0
- package/vendor/rocksdb/utilities/checkpoint/checkpoint_test.cc +988 -0
- package/vendor/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +41 -0
- package/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +24 -0
- package/vendor/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +26 -0
- package/vendor/rocksdb/utilities/compaction_filters.cc +52 -0
- package/vendor/rocksdb/utilities/convenience/info_log_finder.cc +26 -0
- package/vendor/rocksdb/utilities/counted_fs.cc +379 -0
- package/vendor/rocksdb/utilities/counted_fs.h +158 -0
- package/vendor/rocksdb/utilities/debug.cc +118 -0
- package/vendor/rocksdb/utilities/env_mirror.cc +273 -0
- package/vendor/rocksdb/utilities/env_mirror_test.cc +216 -0
- package/vendor/rocksdb/utilities/env_timed.cc +181 -0
- package/vendor/rocksdb/utilities/env_timed.h +95 -0
- package/vendor/rocksdb/utilities/env_timed_test.cc +34 -0
- package/vendor/rocksdb/utilities/fault_injection_env.cc +555 -0
- package/vendor/rocksdb/utilities/fault_injection_env.h +258 -0
- package/vendor/rocksdb/utilities/fault_injection_fs.cc +1071 -0
- package/vendor/rocksdb/utilities/fault_injection_fs.h +593 -0
- package/vendor/rocksdb/utilities/fault_injection_secondary_cache.cc +136 -0
- package/vendor/rocksdb/utilities/fault_injection_secondary_cache.h +109 -0
- package/vendor/rocksdb/utilities/leveldb_options/leveldb_options.cc +57 -0
- package/vendor/rocksdb/utilities/memory/memory_test.cc +269 -0
- package/vendor/rocksdb/utilities/memory/memory_util.cc +50 -0
- package/vendor/rocksdb/utilities/memory_allocators.h +103 -0
- package/vendor/rocksdb/utilities/merge_operators/bytesxor.cc +57 -0
- package/vendor/rocksdb/utilities/merge_operators/bytesxor.h +40 -0
- package/vendor/rocksdb/utilities/merge_operators/max.cc +64 -0
- package/vendor/rocksdb/utilities/merge_operators/max_operator.h +35 -0
- package/vendor/rocksdb/utilities/merge_operators/put.cc +74 -0
- package/vendor/rocksdb/utilities/merge_operators/put_operator.h +56 -0
- package/vendor/rocksdb/utilities/merge_operators/sortlist.cc +95 -0
- package/vendor/rocksdb/utilities/merge_operators/sortlist.h +42 -0
- package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.cc +76 -0
- package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend.h +32 -0
- package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +130 -0
- package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend2.h +52 -0
- package/vendor/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +636 -0
- package/vendor/rocksdb/utilities/merge_operators/uint64add.cc +56 -0
- package/vendor/rocksdb/utilities/merge_operators/uint64add.h +35 -0
- package/vendor/rocksdb/utilities/merge_operators.cc +115 -0
- package/vendor/rocksdb/utilities/merge_operators.h +36 -0
- package/vendor/rocksdb/utilities/object_registry.cc +381 -0
- package/vendor/rocksdb/utilities/object_registry_test.cc +862 -0
- package/vendor/rocksdb/utilities/option_change_migration/option_change_migration.cc +176 -0
- package/vendor/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +548 -0
- package/vendor/rocksdb/utilities/options/options_util.cc +117 -0
- package/vendor/rocksdb/utilities/options/options_util_test.cc +782 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.cc +420 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier.h +154 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +608 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +291 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +127 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +84 -0
- package/vendor/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +122 -0
- package/vendor/rocksdb/utilities/persistent_cache/hash_table.h +237 -0
- package/vendor/rocksdb/utilities/persistent_cache/hash_table_bench.cc +310 -0
- package/vendor/rocksdb/utilities/persistent_cache/hash_table_evictable.h +166 -0
- package/vendor/rocksdb/utilities/persistent_cache/hash_table_test.cc +161 -0
- package/vendor/rocksdb/utilities/persistent_cache/lrulist.h +172 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +355 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +413 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_test.h +284 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +165 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +340 -0
- package/vendor/rocksdb/utilities/persistent_cache/persistent_cache_util.h +67 -0
- package/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +138 -0
- package/vendor/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +139 -0
- package/vendor/rocksdb/utilities/simulator_cache/cache_simulator.cc +287 -0
- package/vendor/rocksdb/utilities/simulator_cache/cache_simulator.h +231 -0
- package/vendor/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +497 -0
- package/vendor/rocksdb/utilities/simulator_cache/sim_cache.cc +372 -0
- package/vendor/rocksdb/utilities/simulator_cache/sim_cache_test.cc +226 -0
- package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +221 -0
- package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +68 -0
- package/vendor/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +238 -0
- package/vendor/rocksdb/utilities/trace/file_trace_reader_writer.cc +133 -0
- package/vendor/rocksdb/utilities/trace/file_trace_reader_writer.h +48 -0
- package/vendor/rocksdb/utilities/trace/replayer_impl.cc +314 -0
- package/vendor/rocksdb/utilities/trace/replayer_impl.h +84 -0
- package/vendor/rocksdb/utilities/transactions/lock/lock_manager.cc +27 -0
- package/vendor/rocksdb/utilities/transactions/lock/lock_manager.h +80 -0
- package/vendor/rocksdb/utilities/transactions/lock/lock_tracker.h +207 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +719 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +222 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +170 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +324 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +255 -0
- package/vendor/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +97 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +34 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +448 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.AGPLv3 +661 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.APACHEv2 +174 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.GPLv2 +339 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +13 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +76 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +138 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +102 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +137 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +174 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +220 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +141 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +525 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +255 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1021 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +580 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +525 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +263 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +178 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +518 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +302 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +118 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +92 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +211 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +124 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +215 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +39 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +130 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +83 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +286 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +87 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +520 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +179 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +197 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +27 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +130 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +151 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +98 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +144 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +199 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +141 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +794 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +1295 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +165 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +76 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +501 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +135 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +154 -0
- package/vendor/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +146 -0
- package/vendor/rocksdb/utilities/transactions/optimistic_transaction.cc +194 -0
- package/vendor/rocksdb/utilities/transactions/optimistic_transaction.h +99 -0
- package/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +109 -0
- package/vendor/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +86 -0
- package/vendor/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1479 -0
- package/vendor/rocksdb/utilities/transactions/pessimistic_transaction.cc +1177 -0
- package/vendor/rocksdb/utilities/transactions/pessimistic_transaction.h +311 -0
- package/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +780 -0
- package/vendor/rocksdb/utilities/transactions/pessimistic_transaction_db.h +316 -0
- package/vendor/rocksdb/utilities/transactions/snapshot_checker.cc +37 -0
- package/vendor/rocksdb/utilities/transactions/timestamped_snapshot_test.cc +457 -0
- package/vendor/rocksdb/utilities/transactions/transaction_base.cc +757 -0
- package/vendor/rocksdb/utilities/transactions/transaction_base.h +382 -0
- package/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +133 -0
- package/vendor/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +24 -0
- package/vendor/rocksdb/utilities/transactions/transaction_test.cc +6751 -0
- package/vendor/rocksdb/utilities/transactions/transaction_test.h +578 -0
- package/vendor/rocksdb/utilities/transactions/transaction_util.cc +204 -0
- package/vendor/rocksdb/utilities/transactions/transaction_util.h +83 -0
- package/vendor/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +578 -0
- package/vendor/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +4066 -0
- package/vendor/rocksdb/utilities/transactions/write_prepared_txn.cc +515 -0
- package/vendor/rocksdb/utilities/transactions/write_prepared_txn.h +117 -0
- package/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.cc +1038 -0
- package/vendor/rocksdb/utilities/transactions/write_prepared_txn_db.h +1123 -0
- package/vendor/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +779 -0
- package/vendor/rocksdb/utilities/transactions/write_unprepared_txn.cc +1056 -0
- package/vendor/rocksdb/utilities/transactions/write_unprepared_txn.h +339 -0
- package/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +476 -0
- package/vendor/rocksdb/utilities/transactions/write_unprepared_txn_db.h +106 -0
- package/vendor/rocksdb/utilities/ttl/db_ttl_impl.cc +617 -0
- package/vendor/rocksdb/utilities/ttl/db_ttl_impl.h +243 -0
- package/vendor/rocksdb/utilities/ttl/ttl_test.cc +913 -0
- package/vendor/rocksdb/utilities/util_merge_operators_test.cc +100 -0
- package/vendor/rocksdb/utilities/wal_filter.cc +22 -0
- package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +694 -0
- package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +742 -0
- package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +342 -0
- package/vendor/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +2409 -0
|
@@ -0,0 +1,2083 @@
|
|
|
1
|
+
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
+
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
+
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
+
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
+
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
6
|
+
// Use of this source code is governed by a BSD-style license that can be
|
|
7
|
+
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <stddef.h>
|
|
12
|
+
#include <stdint.h>
|
|
13
|
+
|
|
14
|
+
#include <limits>
|
|
15
|
+
#include <memory>
|
|
16
|
+
#include <string>
|
|
17
|
+
#include <unordered_map>
|
|
18
|
+
#include <vector>
|
|
19
|
+
|
|
20
|
+
#include "rocksdb/advanced_options.h"
|
|
21
|
+
#include "rocksdb/comparator.h"
|
|
22
|
+
#include "rocksdb/compression_type.h"
|
|
23
|
+
#include "rocksdb/customizable.h"
|
|
24
|
+
#include "rocksdb/data_structure.h"
|
|
25
|
+
#include "rocksdb/env.h"
|
|
26
|
+
#include "rocksdb/file_checksum.h"
|
|
27
|
+
#include "rocksdb/listener.h"
|
|
28
|
+
#include "rocksdb/sst_partitioner.h"
|
|
29
|
+
#include "rocksdb/types.h"
|
|
30
|
+
#include "rocksdb/universal_compaction.h"
|
|
31
|
+
#include "rocksdb/version.h"
|
|
32
|
+
#include "rocksdb/write_buffer_manager.h"
|
|
33
|
+
|
|
34
|
+
#ifdef max
|
|
35
|
+
#undef max
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
namespace ROCKSDB_NAMESPACE {
|
|
39
|
+
|
|
40
|
+
class Cache;
|
|
41
|
+
class CompactionFilter;
|
|
42
|
+
class CompactionFilterFactory;
|
|
43
|
+
class Comparator;
|
|
44
|
+
class ConcurrentTaskLimiter;
|
|
45
|
+
class Env;
|
|
46
|
+
enum InfoLogLevel : unsigned char;
|
|
47
|
+
class SstFileManager;
|
|
48
|
+
class FilterPolicy;
|
|
49
|
+
class Logger;
|
|
50
|
+
class MergeOperator;
|
|
51
|
+
class Snapshot;
|
|
52
|
+
class MemTableRepFactory;
|
|
53
|
+
class RateLimiter;
|
|
54
|
+
class Slice;
|
|
55
|
+
class Statistics;
|
|
56
|
+
class InternalKeyComparator;
|
|
57
|
+
class WalFilter;
|
|
58
|
+
class FileSystem;
|
|
59
|
+
|
|
60
|
+
struct Options;
|
|
61
|
+
struct DbPath;
|
|
62
|
+
|
|
63
|
+
using FileTypeSet = SmallEnumSet<FileType, FileType::kBlobFile>;
|
|
64
|
+
|
|
65
|
+
struct ColumnFamilyOptions : public AdvancedColumnFamilyOptions {
|
|
66
|
+
// The function recovers options to a previous version. Only 4.6 or later
|
|
67
|
+
// versions are supported.
|
|
68
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
69
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
70
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
71
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
72
|
+
ColumnFamilyOptions* OldDefaults(int rocksdb_major_version = 4,
|
|
73
|
+
int rocksdb_minor_version = 6);
|
|
74
|
+
|
|
75
|
+
// Some functions that make it easier to optimize RocksDB
|
|
76
|
+
// Use this if your DB is very small (like under 1GB) and you don't want to
|
|
77
|
+
// spend lots of memory for memtables.
|
|
78
|
+
// An optional cache object is passed in to be used as the block cache
|
|
79
|
+
ColumnFamilyOptions* OptimizeForSmallDb(
|
|
80
|
+
std::shared_ptr<Cache>* cache = nullptr);
|
|
81
|
+
|
|
82
|
+
// Use this if you don't need to keep the data sorted, i.e. you'll never use
|
|
83
|
+
// an iterator, only Put() and Get() API calls
|
|
84
|
+
//
|
|
85
|
+
ColumnFamilyOptions* OptimizeForPointLookup(uint64_t block_cache_size_mb);
|
|
86
|
+
|
|
87
|
+
// Default values for some parameters in ColumnFamilyOptions are not
|
|
88
|
+
// optimized for heavy workloads and big datasets, which means you might
|
|
89
|
+
// observe write stalls under some conditions. As a starting point for tuning
|
|
90
|
+
// RocksDB options, use the following two functions:
|
|
91
|
+
// * OptimizeLevelStyleCompaction -- optimizes level style compaction
|
|
92
|
+
// * OptimizeUniversalStyleCompaction -- optimizes universal style compaction
|
|
93
|
+
// Universal style compaction is focused on reducing Write Amplification
|
|
94
|
+
// Factor for big data sets, but increases Space Amplification. You can learn
|
|
95
|
+
// more about the different styles here:
|
|
96
|
+
// https://github.com/facebook/rocksdb/wiki/Rocksdb-Architecture-Guide
|
|
97
|
+
// Make sure to also call IncreaseParallelism(), which will provide the
|
|
98
|
+
// biggest performance gains.
|
|
99
|
+
// Note: we might use more memory than memtable_memory_budget during high
|
|
100
|
+
// write rate period
|
|
101
|
+
ColumnFamilyOptions* OptimizeLevelStyleCompaction(
|
|
102
|
+
uint64_t memtable_memory_budget = 512 * 1024 * 1024);
|
|
103
|
+
ColumnFamilyOptions* OptimizeUniversalStyleCompaction(
|
|
104
|
+
uint64_t memtable_memory_budget = 512 * 1024 * 1024);
|
|
105
|
+
|
|
106
|
+
// -------------------
|
|
107
|
+
// Parameters that affect behavior
|
|
108
|
+
|
|
109
|
+
// Comparator used to define the order of keys in the table.
|
|
110
|
+
// Default: a comparator that uses lexicographic byte-wise ordering
|
|
111
|
+
//
|
|
112
|
+
// REQUIRES: The client must ensure that the comparator supplied
|
|
113
|
+
// here has the same name and orders keys *exactly* the same as the
|
|
114
|
+
// comparator provided to previous open calls on the same DB.
|
|
115
|
+
const Comparator* comparator = BytewiseComparator();
|
|
116
|
+
|
|
117
|
+
// REQUIRES: The client must provide a merge operator if Merge operation
|
|
118
|
+
// needs to be accessed. Calling Merge on a DB without a merge operator
|
|
119
|
+
// would result in Status::NotSupported. The client must ensure that the
|
|
120
|
+
// merge operator supplied here has the same name and *exactly* the same
|
|
121
|
+
// semantics as the merge operator provided to previous open calls on
|
|
122
|
+
// the same DB. The only exception is reserved for upgrade, where a DB
|
|
123
|
+
// previously without a merge operator is introduced to Merge operation
|
|
124
|
+
// for the first time. It's necessary to specify a merge operator when
|
|
125
|
+
// opening the DB in this case.
|
|
126
|
+
// Default: nullptr
|
|
127
|
+
std::shared_ptr<MergeOperator> merge_operator = nullptr;
|
|
128
|
+
|
|
129
|
+
// A single CompactionFilter instance to call into during compaction.
|
|
130
|
+
// Allows an application to modify/delete a key-value during background
|
|
131
|
+
// compaction.
|
|
132
|
+
//
|
|
133
|
+
// If the client requires a new `CompactionFilter` to be used for different
|
|
134
|
+
// compaction runs and/or requires a `CompactionFilter` for table file
|
|
135
|
+
// creations outside of compaction, it can specify compaction_filter_factory
|
|
136
|
+
// instead of this option. The client should specify only one of the two.
|
|
137
|
+
// compaction_filter takes precedence over compaction_filter_factory if
|
|
138
|
+
// client specifies both.
|
|
139
|
+
//
|
|
140
|
+
// If multithreaded compaction is being used, the supplied CompactionFilter
|
|
141
|
+
// instance may be used from different threads concurrently and so should be
|
|
142
|
+
// thread-safe.
|
|
143
|
+
//
|
|
144
|
+
// Default: nullptr
|
|
145
|
+
const CompactionFilter* compaction_filter = nullptr;
|
|
146
|
+
|
|
147
|
+
// This is a factory that provides `CompactionFilter` objects which allow
|
|
148
|
+
// an application to modify/delete a key-value during table file creation.
|
|
149
|
+
//
|
|
150
|
+
// Unlike the `compaction_filter` option, which is used when compaction
|
|
151
|
+
// creates a table file, this factory allows using a `CompactionFilter` when a
|
|
152
|
+
// table file is created for various reasons. The factory can decide what
|
|
153
|
+
// `TableFileCreationReason`s use a `CompactionFilter`. For compatibility, by
|
|
154
|
+
// default the decision is to use a `CompactionFilter` for
|
|
155
|
+
// `TableFileCreationReason::kCompaction` only.
|
|
156
|
+
//
|
|
157
|
+
// Each thread of work involving creating table files will create a new
|
|
158
|
+
// `CompactionFilter` when it will be used according to the above
|
|
159
|
+
// `TableFileCreationReason`-based decision. This allows the application to
|
|
160
|
+
// know about the different ongoing threads of work and makes it unnecessary
|
|
161
|
+
// for `CompactionFilter` to provide thread-safety.
|
|
162
|
+
//
|
|
163
|
+
// Default: nullptr
|
|
164
|
+
std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
|
|
165
|
+
|
|
166
|
+
// -------------------
|
|
167
|
+
// Parameters that affect performance
|
|
168
|
+
|
|
169
|
+
// Amount of data to build up in memory (backed by an unsorted log
|
|
170
|
+
// on disk) before converting to a sorted on-disk file.
|
|
171
|
+
//
|
|
172
|
+
// Larger values increase performance, especially during bulk loads.
|
|
173
|
+
// Up to max_write_buffer_number write buffers may be held in memory
|
|
174
|
+
// at the same time,
|
|
175
|
+
// so you may wish to adjust this parameter to control memory usage.
|
|
176
|
+
// Also, a larger write buffer will result in a longer recovery time
|
|
177
|
+
// the next time the database is opened.
|
|
178
|
+
//
|
|
179
|
+
// Note that write_buffer_size is enforced per column family.
|
|
180
|
+
// See db_write_buffer_size for sharing memory across column families.
|
|
181
|
+
//
|
|
182
|
+
// Default: 64MB
|
|
183
|
+
//
|
|
184
|
+
// Dynamically changeable through SetOptions() API
|
|
185
|
+
size_t write_buffer_size = 64 << 20;
|
|
186
|
+
|
|
187
|
+
// Compress blocks using the specified compression algorithm.
|
|
188
|
+
//
|
|
189
|
+
// Default: kSnappyCompression, if it's supported. If snappy is not linked
|
|
190
|
+
// with the library, the default is kNoCompression.
|
|
191
|
+
//
|
|
192
|
+
// Typical speeds of kSnappyCompression on an Intel(R) Core(TM)2 2.4GHz:
|
|
193
|
+
// ~200-500MB/s compression
|
|
194
|
+
// ~400-800MB/s decompression
|
|
195
|
+
//
|
|
196
|
+
// Note that these speeds are significantly faster than most
|
|
197
|
+
// persistent storage speeds, and therefore it is typically never
|
|
198
|
+
// worth switching to kNoCompression. Even if the input data is
|
|
199
|
+
// incompressible, the kSnappyCompression implementation will
|
|
200
|
+
// efficiently detect that and will switch to uncompressed mode.
|
|
201
|
+
//
|
|
202
|
+
// If you do not set `compression_opts.level`, or set it to
|
|
203
|
+
// `CompressionOptions::kDefaultCompressionLevel`, we will attempt to pick the
|
|
204
|
+
// default corresponding to `compression` as follows:
|
|
205
|
+
//
|
|
206
|
+
// - kZSTD: 3
|
|
207
|
+
// - kZlibCompression: Z_DEFAULT_COMPRESSION (currently -1)
|
|
208
|
+
// - kLZ4HCCompression: 0
|
|
209
|
+
// - For all others, we do not specify a compression level
|
|
210
|
+
//
|
|
211
|
+
// Dynamically changeable through SetOptions() API
|
|
212
|
+
CompressionType compression;
|
|
213
|
+
|
|
214
|
+
// Compression algorithm that will be used for the bottommost level that
|
|
215
|
+
// contain files. The behavior for num_levels = 1 is not well defined.
|
|
216
|
+
// Right now, with num_levels = 1, all compaction outputs will use
|
|
217
|
+
// bottommost_compression and all flush outputs still use options.compression,
|
|
218
|
+
// but the behavior is subject to change.
|
|
219
|
+
//
|
|
220
|
+
// Default: kDisableCompressionOption (Disabled)
|
|
221
|
+
CompressionType bottommost_compression = kDisableCompressionOption;
|
|
222
|
+
|
|
223
|
+
// different options for compression algorithms used by bottommost_compression
|
|
224
|
+
// if it is enabled. To enable it, please see the definition of
|
|
225
|
+
// CompressionOptions. Behavior for num_levels = 1 is the same as
|
|
226
|
+
// options.bottommost_compression.
|
|
227
|
+
CompressionOptions bottommost_compression_opts;
|
|
228
|
+
|
|
229
|
+
// different options for compression algorithms
|
|
230
|
+
CompressionOptions compression_opts;
|
|
231
|
+
|
|
232
|
+
// Number of files to trigger level-0 compaction. A value <0 means that
|
|
233
|
+
// level-0 compaction will not be triggered by number of files at all.
|
|
234
|
+
//
|
|
235
|
+
// Default: 4
|
|
236
|
+
//
|
|
237
|
+
// Dynamically changeable through SetOptions() API
|
|
238
|
+
int level0_file_num_compaction_trigger = 4;
|
|
239
|
+
|
|
240
|
+
// If non-nullptr, use the specified function to put keys in contiguous
|
|
241
|
+
// groups called "prefixes". These prefixes are used to place one
|
|
242
|
+
// representative entry for the group into the Bloom filter
|
|
243
|
+
// rather than an entry for each key (see whole_key_filtering).
|
|
244
|
+
// Under certain conditions, this enables optimizing some range queries
|
|
245
|
+
// (Iterators) in addition to some point lookups (Get/MultiGet).
|
|
246
|
+
//
|
|
247
|
+
// Together `prefix_extractor` and `comparator` must satisfy one essential
|
|
248
|
+
// property for valid prefix filtering of range queries:
|
|
249
|
+
// If Compare(k1, k2) <= 0 and Compare(k2, k3) <= 0 and
|
|
250
|
+
// InDomain(k1) and InDomain(k3) and prefix(k1) == prefix(k3),
|
|
251
|
+
// Then InDomain(k2) and prefix(k2) == prefix(k1)
|
|
252
|
+
//
|
|
253
|
+
// In other words, all keys with the same prefix must be in a contiguous
|
|
254
|
+
// group by comparator order, and cannot be interrupted by keys with no
|
|
255
|
+
// prefix ("out of domain"). (This makes it valid to conclude that no
|
|
256
|
+
// entries within some bounds are present if the upper and lower bounds
|
|
257
|
+
// have a common prefix and no entries with that same prefix are present.)
|
|
258
|
+
//
|
|
259
|
+
// Some other properties are recommended but not strictly required. Under
|
|
260
|
+
// most sensible comparators, the following will need to hold true to
|
|
261
|
+
// satisfy the essential property above:
|
|
262
|
+
// * "Prefix is a prefix": key.starts_with(prefix(key))
|
|
263
|
+
// * "Prefixes preserve ordering": If Compare(k1, k2) <= 0, then
|
|
264
|
+
// Compare(prefix(k1), prefix(k2)) <= 0
|
|
265
|
+
//
|
|
266
|
+
// The next two properties ensure that seeking to a prefix allows
|
|
267
|
+
// enumerating all entries with that prefix:
|
|
268
|
+
// * "Prefix starts the group": Compare(prefix(key), key) <= 0
|
|
269
|
+
// * "Prefix idempotent": prefix(prefix(key)) == prefix(key)
|
|
270
|
+
//
|
|
271
|
+
// Default: nullptr
|
|
272
|
+
std::shared_ptr<const SliceTransform> prefix_extractor = nullptr;
|
|
273
|
+
|
|
274
|
+
// Control maximum total data size for a level.
|
|
275
|
+
// max_bytes_for_level_base is the max total for level-1.
|
|
276
|
+
// Maximum number of bytes for level L can be calculated as
|
|
277
|
+
// (max_bytes_for_level_base) * (max_bytes_for_level_multiplier ^ (L-1))
|
|
278
|
+
// For example, if max_bytes_for_level_base is 200MB, and if
|
|
279
|
+
// max_bytes_for_level_multiplier is 10, total data size for level-1
|
|
280
|
+
// will be 200MB, total file size for level-2 will be 2GB,
|
|
281
|
+
// and total file size for level-3 will be 20GB.
|
|
282
|
+
//
|
|
283
|
+
// Default: 256MB.
|
|
284
|
+
//
|
|
285
|
+
// Dynamically changeable through SetOptions() API
|
|
286
|
+
uint64_t max_bytes_for_level_base = 256 * 1048576;
|
|
287
|
+
|
|
288
|
+
// Deprecated.
|
|
289
|
+
uint64_t snap_refresh_nanos = 0;
|
|
290
|
+
|
|
291
|
+
// Disable automatic compactions. Manual compactions can still
|
|
292
|
+
// be issued on this column family
|
|
293
|
+
//
|
|
294
|
+
// Dynamically changeable through SetOptions() API
|
|
295
|
+
bool disable_auto_compactions = false;
|
|
296
|
+
|
|
297
|
+
// This is a factory that provides TableFactory objects.
|
|
298
|
+
// Default: a block-based table factory that provides a default
|
|
299
|
+
// implementation of TableBuilder and TableReader with default
|
|
300
|
+
// BlockBasedTableOptions.
|
|
301
|
+
std::shared_ptr<TableFactory> table_factory;
|
|
302
|
+
|
|
303
|
+
// A list of paths where SST files for this column family
|
|
304
|
+
// can be put into, with its target size. Similar to db_paths,
|
|
305
|
+
// newer data is placed into paths specified earlier in the
|
|
306
|
+
// vector while older data gradually moves to paths specified
|
|
307
|
+
// later in the vector.
|
|
308
|
+
// Note that, if a path is supplied to multiple column
|
|
309
|
+
// families, it would have files and total size from all
|
|
310
|
+
// the column families combined. User should provision for the
|
|
311
|
+
// total size(from all the column families) in such cases.
|
|
312
|
+
//
|
|
313
|
+
// If left empty, db_paths will be used.
|
|
314
|
+
// Default: empty
|
|
315
|
+
std::vector<DbPath> cf_paths;
|
|
316
|
+
|
|
317
|
+
// Compaction concurrent thread limiter for the column family.
|
|
318
|
+
// If non-nullptr, use given concurrent thread limiter to control
|
|
319
|
+
// the max outstanding compaction tasks. Limiter can be shared with
|
|
320
|
+
// multiple column families across db instances.
|
|
321
|
+
//
|
|
322
|
+
// Default: nullptr
|
|
323
|
+
std::shared_ptr<ConcurrentTaskLimiter> compaction_thread_limiter = nullptr;
|
|
324
|
+
|
|
325
|
+
// If non-nullptr, use the specified factory for a function to determine the
|
|
326
|
+
// partitioning of sst files. This helps compaction to split the files
|
|
327
|
+
// on interesting boundaries (key prefixes) to make propagation of sst
|
|
328
|
+
// files less write amplifying (covering the whole key space).
|
|
329
|
+
// THE FEATURE IS STILL EXPERIMENTAL
|
|
330
|
+
//
|
|
331
|
+
// Default: nullptr
|
|
332
|
+
std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory = nullptr;
|
|
333
|
+
|
|
334
|
+
// Create ColumnFamilyOptions with default values for all fields
|
|
335
|
+
ColumnFamilyOptions();
|
|
336
|
+
// Create ColumnFamilyOptions from Options
|
|
337
|
+
explicit ColumnFamilyOptions(const Options& options);
|
|
338
|
+
|
|
339
|
+
void Dump(Logger* log) const;
|
|
340
|
+
};
|
|
341
|
+
|
|
342
|
+
enum class WALRecoveryMode : char {
|
|
343
|
+
// Original levelDB recovery
|
|
344
|
+
//
|
|
345
|
+
// We tolerate the last record in any log to be incomplete due to a crash
|
|
346
|
+
// while writing it. Zeroed bytes from preallocation are also tolerated in the
|
|
347
|
+
// trailing data of any log.
|
|
348
|
+
//
|
|
349
|
+
// Use case: Applications for which updates, once applied, must not be rolled
|
|
350
|
+
// back even after a crash-recovery. In this recovery mode, RocksDB guarantees
|
|
351
|
+
// this as long as `WritableFile::Append()` writes are durable. In case the
|
|
352
|
+
// user needs the guarantee in more situations (e.g., when
|
|
353
|
+
// `WritableFile::Append()` writes to page cache, but the user desires this
|
|
354
|
+
// guarantee in face of power-loss crash-recovery), RocksDB offers various
|
|
355
|
+
// mechanisms to additionally invoke `WritableFile::Sync()` in order to
|
|
356
|
+
// strengthen the guarantee.
|
|
357
|
+
//
|
|
358
|
+
// This differs from `kPointInTimeRecovery` in that, in case a corruption is
|
|
359
|
+
// detected during recovery, this mode will refuse to open the DB. Whereas,
|
|
360
|
+
// `kPointInTimeRecovery` will stop recovery just before the corruption since
|
|
361
|
+
// that is a valid point-in-time to which to recover.
|
|
362
|
+
kTolerateCorruptedTailRecords = 0x00,
|
|
363
|
+
// Recover from clean shutdown
|
|
364
|
+
// We don't expect to find any corruption in the WAL
|
|
365
|
+
// Use case : This is ideal for unit tests and rare applications that
|
|
366
|
+
// can require high consistency guarantee
|
|
367
|
+
kAbsoluteConsistency = 0x01,
|
|
368
|
+
// Recover to point-in-time consistency (default)
|
|
369
|
+
// We stop the WAL playback on discovering WAL inconsistency
|
|
370
|
+
// Use case : Ideal for systems that have disk controller cache like
|
|
371
|
+
// hard disk, SSD without super capacitor that store related data
|
|
372
|
+
kPointInTimeRecovery = 0x02,
|
|
373
|
+
// Recovery after a disaster
|
|
374
|
+
// We ignore any corruption in the WAL and try to salvage as much data as
|
|
375
|
+
// possible
|
|
376
|
+
// Use case : Ideal for last ditch effort to recover data or systems that
|
|
377
|
+
// operate with low grade unrelated data
|
|
378
|
+
kSkipAnyCorruptedRecords = 0x03,
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
struct DbPath {
|
|
382
|
+
std::string path;
|
|
383
|
+
uint64_t target_size; // Target size of total files under the path, in byte.
|
|
384
|
+
|
|
385
|
+
DbPath() : target_size(0) {}
|
|
386
|
+
DbPath(const std::string& p, uint64_t t) : path(p), target_size(t) {}
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
extern const char* kHostnameForDbHostId;
|
|
390
|
+
|
|
391
|
+
enum class CompactionServiceJobStatus : char {
|
|
392
|
+
kSuccess,
|
|
393
|
+
kFailure,
|
|
394
|
+
kUseLocal,
|
|
395
|
+
};
|
|
396
|
+
|
|
397
|
+
struct CompactionServiceJobInfo {
|
|
398
|
+
std::string db_name;
|
|
399
|
+
std::string db_id;
|
|
400
|
+
std::string db_session_id;
|
|
401
|
+
uint64_t job_id; // job_id is only unique within the current DB and session,
|
|
402
|
+
// restart DB will reset the job_id. `db_id` and
|
|
403
|
+
// `db_session_id` could help you build unique id across
|
|
404
|
+
// different DBs and sessions.
|
|
405
|
+
|
|
406
|
+
Env::Priority priority;
|
|
407
|
+
|
|
408
|
+
CompactionServiceJobInfo(std::string db_name_, std::string db_id_,
|
|
409
|
+
std::string db_session_id_, uint64_t job_id_,
|
|
410
|
+
Env::Priority priority_)
|
|
411
|
+
: db_name(std::move(db_name_)),
|
|
412
|
+
db_id(std::move(db_id_)),
|
|
413
|
+
db_session_id(std::move(db_session_id_)),
|
|
414
|
+
job_id(job_id_),
|
|
415
|
+
priority(priority_) {}
|
|
416
|
+
};
|
|
417
|
+
|
|
418
|
+
// Exceptions MUST NOT propagate out of overridden functions into RocksDB,
|
|
419
|
+
// because RocksDB is not exception-safe. This could cause undefined behavior
|
|
420
|
+
// including data loss, unreported corruption, deadlocks, and more.
|
|
421
|
+
class CompactionService : public Customizable {
|
|
422
|
+
public:
|
|
423
|
+
static const char* Type() { return "CompactionService"; }
|
|
424
|
+
|
|
425
|
+
// Returns the name of this compaction service.
|
|
426
|
+
const char* Name() const override = 0;
|
|
427
|
+
|
|
428
|
+
// Start the remote compaction with `compaction_service_input`, which can be
|
|
429
|
+
// passed to `DB::OpenAndCompact()` on the remote side. `info` provides the
|
|
430
|
+
// information the user might want to know, which includes `job_id`.
|
|
431
|
+
virtual CompactionServiceJobStatus StartV2(
|
|
432
|
+
const CompactionServiceJobInfo& /*info*/,
|
|
433
|
+
const std::string& /*compaction_service_input*/) {
|
|
434
|
+
return CompactionServiceJobStatus::kUseLocal;
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
// Wait for remote compaction to finish.
|
|
438
|
+
virtual CompactionServiceJobStatus WaitForCompleteV2(
|
|
439
|
+
const CompactionServiceJobInfo& /*info*/,
|
|
440
|
+
std::string* /*compaction_service_result*/) {
|
|
441
|
+
return CompactionServiceJobStatus::kUseLocal;
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
~CompactionService() override = default;
|
|
445
|
+
};
|
|
446
|
+
|
|
447
|
+
struct DBOptions {
|
|
448
|
+
// The function recovers options to the option as in version 4.6.
|
|
449
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
450
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
451
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
452
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
453
|
+
DBOptions* OldDefaults(int rocksdb_major_version = 4,
|
|
454
|
+
int rocksdb_minor_version = 6);
|
|
455
|
+
|
|
456
|
+
// Some functions that make it easier to optimize RocksDB
|
|
457
|
+
|
|
458
|
+
// Use this if your DB is very small (like under 1GB) and you don't want to
|
|
459
|
+
// spend lots of memory for memtables.
|
|
460
|
+
// An optional cache object is passed in for the memory of the
|
|
461
|
+
// memtable to cost to
|
|
462
|
+
DBOptions* OptimizeForSmallDb(std::shared_ptr<Cache>* cache = nullptr);
|
|
463
|
+
|
|
464
|
+
// By default, RocksDB uses only one background thread for flush and
|
|
465
|
+
// compaction. Calling this function will set it up such that total of
|
|
466
|
+
// `total_threads` is used. Good value for `total_threads` is the number of
|
|
467
|
+
// cores. You almost definitely want to call this function if your system is
|
|
468
|
+
// bottlenecked by RocksDB.
|
|
469
|
+
DBOptions* IncreaseParallelism(int total_threads = 16);
|
|
470
|
+
|
|
471
|
+
// If true, the database will be created if it is missing.
|
|
472
|
+
// Default: false
|
|
473
|
+
bool create_if_missing = false;
|
|
474
|
+
|
|
475
|
+
// If true, missing column families will be automatically created.
|
|
476
|
+
// Default: false
|
|
477
|
+
bool create_missing_column_families = false;
|
|
478
|
+
|
|
479
|
+
// If true, an error is raised if the database already exists.
|
|
480
|
+
// Default: false
|
|
481
|
+
bool error_if_exists = false;
|
|
482
|
+
|
|
483
|
+
// If true, RocksDB will aggressively check consistency of the data.
|
|
484
|
+
// Also, if any of the writes to the database fails (Put, Delete, Merge,
|
|
485
|
+
// Write), the database will switch to read-only mode and fail all other
|
|
486
|
+
// Write operations.
|
|
487
|
+
// In most cases you want this to be set to true.
|
|
488
|
+
// Default: true
|
|
489
|
+
bool paranoid_checks = true;
|
|
490
|
+
|
|
491
|
+
// If true, during memtable flush, RocksDB will validate total entries
|
|
492
|
+
// read in flush, and compare with counter inserted into it.
|
|
493
|
+
// The option is here to turn the feature off in case this new validation
|
|
494
|
+
// feature has a bug.
|
|
495
|
+
// Default: true
|
|
496
|
+
bool flush_verify_memtable_count = true;
|
|
497
|
+
|
|
498
|
+
// If true, the log numbers and sizes of the synced WALs are tracked
|
|
499
|
+
// in MANIFEST. During DB recovery, if a synced WAL is missing
|
|
500
|
+
// from disk, or the WAL's size does not match the recorded size in
|
|
501
|
+
// MANIFEST, an error will be reported and the recovery will be aborted.
|
|
502
|
+
//
|
|
503
|
+
// This is one additional protection against WAL corruption besides the
|
|
504
|
+
// per-WAL-entry checksum.
|
|
505
|
+
//
|
|
506
|
+
// Note that this option does not work with secondary instance.
|
|
507
|
+
// Currently, only syncing closed WALs are tracked. Calling `DB::SyncWAL()`,
|
|
508
|
+
// etc. or writing with `WriteOptions::sync=true` to sync the live WAL is not
|
|
509
|
+
// tracked for performance/efficiency reasons.
|
|
510
|
+
//
|
|
511
|
+
// Default: false
|
|
512
|
+
bool track_and_verify_wals_in_manifest = false;
|
|
513
|
+
|
|
514
|
+
// If true, verifies the SST unique id between MANIFEST and actual file
|
|
515
|
+
// each time an SST file is opened. This check ensures an SST file is not
|
|
516
|
+
// overwritten or misplaced. A corruption error will be reported if mismatch
|
|
517
|
+
// detected, but only when MANIFEST tracks the unique id, which starts from
|
|
518
|
+
// RocksDB version 7.3. Although the tracked internal unique id is related
|
|
519
|
+
// to the one returned by GetUniqueIdFromTableProperties, that is subject to
|
|
520
|
+
// change.
|
|
521
|
+
// NOTE: verification is currently only done on SST files using block-based
|
|
522
|
+
// table format.
|
|
523
|
+
//
|
|
524
|
+
// Setting to false should only be needed in case of unexpected problems.
|
|
525
|
+
//
|
|
526
|
+
// Although an early version of this option opened all SST files for
|
|
527
|
+
// verification on DB::Open, that is no longer guaranteed. However, as
|
|
528
|
+
// documented in an above option, if max_open_files is -1, DB will open all
|
|
529
|
+
// files on DB::Open().
|
|
530
|
+
//
|
|
531
|
+
// Default: true
|
|
532
|
+
bool verify_sst_unique_id_in_manifest = true;
|
|
533
|
+
|
|
534
|
+
// Use the specified object to interact with the environment,
|
|
535
|
+
// e.g. to read/write files, schedule background work, etc. In the near
|
|
536
|
+
// future, support for doing storage operations such as read/write files
|
|
537
|
+
// through env will be deprecated in favor of file_system (see below)
|
|
538
|
+
// Default: Env::Default()
|
|
539
|
+
Env* env = Env::Default();
|
|
540
|
+
|
|
541
|
+
// Limits internal file read/write bandwidth:
|
|
542
|
+
//
|
|
543
|
+
// - Flush requests write bandwidth at `Env::IOPriority::IO_HIGH`
|
|
544
|
+
// - Compaction requests read and write bandwidth at
|
|
545
|
+
// `Env::IOPriority::IO_LOW`
|
|
546
|
+
// - Reads associated with a `ReadOptions` can be charged at
|
|
547
|
+
// `ReadOptions::rate_limiter_priority` (see that option's API doc for usage
|
|
548
|
+
// and limitations).
|
|
549
|
+
// - Writes associated with a `WriteOptions` can be charged at
|
|
550
|
+
// `WriteOptions::rate_limiter_priority` (see that option's API doc for
|
|
551
|
+
// usage and limitations).
|
|
552
|
+
//
|
|
553
|
+
// Rate limiting is disabled if nullptr. If rate limiter is enabled,
|
|
554
|
+
// bytes_per_sync is set to 1MB by default.
|
|
555
|
+
//
|
|
556
|
+
// Default: nullptr
|
|
557
|
+
std::shared_ptr<RateLimiter> rate_limiter = nullptr;
|
|
558
|
+
|
|
559
|
+
// Use to track SST files and control their file deletion rate.
|
|
560
|
+
//
|
|
561
|
+
// Features:
|
|
562
|
+
// - Throttle the deletion rate of the SST files.
|
|
563
|
+
// - Keep track the total size of all SST files.
|
|
564
|
+
// - Set a maximum allowed space limit for SST files that when reached
|
|
565
|
+
// the DB wont do any further flushes or compactions and will set the
|
|
566
|
+
// background error.
|
|
567
|
+
// - Can be shared between multiple dbs.
|
|
568
|
+
// Limitations:
|
|
569
|
+
// - Only track and throttle deletes of SST files in
|
|
570
|
+
// first db_path (db_name if db_paths is empty).
|
|
571
|
+
//
|
|
572
|
+
// Default: nullptr
|
|
573
|
+
std::shared_ptr<SstFileManager> sst_file_manager = nullptr;
|
|
574
|
+
|
|
575
|
+
// Any internal progress/error information generated by the db will
|
|
576
|
+
// be written to info_log if it is non-nullptr, or to a file stored
|
|
577
|
+
// in the same directory as the DB contents if info_log is nullptr.
|
|
578
|
+
// Default: nullptr
|
|
579
|
+
std::shared_ptr<Logger> info_log = nullptr;
|
|
580
|
+
|
|
581
|
+
#ifdef NDEBUG
|
|
582
|
+
InfoLogLevel info_log_level = INFO_LEVEL;
|
|
583
|
+
#else
|
|
584
|
+
InfoLogLevel info_log_level = DEBUG_LEVEL;
|
|
585
|
+
#endif // NDEBUG
|
|
586
|
+
|
|
587
|
+
// Number of open files that can be used by the DB. You may need to
|
|
588
|
+
// increase this if your database has a large working set. Value -1 means
|
|
589
|
+
// files opened are always kept open. You can estimate number of files based
|
|
590
|
+
// on target_file_size_base and target_file_size_multiplier for level-based
|
|
591
|
+
// compaction. For universal-style compaction, you can usually set it to -1.
|
|
592
|
+
//
|
|
593
|
+
// A high value or -1 for this option can cause high memory usage.
|
|
594
|
+
// See BlockBasedTableOptions::cache_usage_options to constrain
|
|
595
|
+
// memory usage in case of block based table format.
|
|
596
|
+
//
|
|
597
|
+
// Default: -1
|
|
598
|
+
//
|
|
599
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
600
|
+
int max_open_files = -1;
|
|
601
|
+
|
|
602
|
+
// If max_open_files is -1, DB will open all files on DB::Open(). You can
|
|
603
|
+
// use this option to increase the number of threads used to open the files.
|
|
604
|
+
// Default: 16
|
|
605
|
+
int max_file_opening_threads = 16;
|
|
606
|
+
|
|
607
|
+
// Once write-ahead logs exceed this size, we will start forcing the flush of
|
|
608
|
+
// column families whose memtables are backed by the oldest live WAL file
|
|
609
|
+
// (i.e. the ones that are causing all the space amplification). If set to 0
|
|
610
|
+
// (default), we will dynamically choose the WAL size limit to be
|
|
611
|
+
// [sum of all write_buffer_size * max_write_buffer_number] * 4
|
|
612
|
+
//
|
|
613
|
+
// For example, with 15 column families, each with
|
|
614
|
+
// write_buffer_size = 128 MB
|
|
615
|
+
// max_write_buffer_number = 6
|
|
616
|
+
// max_total_wal_size will be calculated to be [15 * 128MB * 6] * 4 = 45GB
|
|
617
|
+
//
|
|
618
|
+
// The RocksDB wiki has some discussion about how the WAL interacts
|
|
619
|
+
// with memtables and flushing of column families.
|
|
620
|
+
// https://github.com/facebook/rocksdb/wiki/Column-Families
|
|
621
|
+
//
|
|
622
|
+
// This option takes effect only when there are more than one column
|
|
623
|
+
// family as otherwise the wal size is dictated by the write_buffer_size.
|
|
624
|
+
//
|
|
625
|
+
// Default: 0
|
|
626
|
+
//
|
|
627
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
628
|
+
uint64_t max_total_wal_size = 0;
|
|
629
|
+
|
|
630
|
+
// If non-null, then we should collect metrics about database operations
|
|
631
|
+
std::shared_ptr<Statistics> statistics = nullptr;
|
|
632
|
+
|
|
633
|
+
// By default, writes to stable storage use fdatasync (on platforms
|
|
634
|
+
// where this function is available). If this option is true,
|
|
635
|
+
// fsync is used instead.
|
|
636
|
+
//
|
|
637
|
+
// fsync and fdatasync are equally safe for our purposes and fdatasync is
|
|
638
|
+
// faster, so it is rarely necessary to set this option. It is provided
|
|
639
|
+
// as a workaround for kernel/filesystem bugs, such as one that affected
|
|
640
|
+
// fdatasync with ext4 in kernel versions prior to 3.7.
|
|
641
|
+
bool use_fsync = false;
|
|
642
|
+
|
|
643
|
+
// A list of paths where SST files can be put into, with its target size.
|
|
644
|
+
// Newer data is placed into paths specified earlier in the vector while
|
|
645
|
+
// older data gradually moves to paths specified later in the vector.
|
|
646
|
+
//
|
|
647
|
+
// For example, you have a flash device with 10GB allocated for the DB,
|
|
648
|
+
// as well as a hard drive of 2TB, you should config it to be:
|
|
649
|
+
// [{"/flash_path", 10GB}, {"/hard_drive", 2TB}]
|
|
650
|
+
//
|
|
651
|
+
// The system will try to guarantee data under each path is close to but
|
|
652
|
+
// not larger than the target size. But current and future file sizes used
|
|
653
|
+
// by determining where to place a file are based on best-effort estimation,
|
|
654
|
+
// which means there is a chance that the actual size under the directory
|
|
655
|
+
// is slightly more than target size under some workloads. User should give
|
|
656
|
+
// some buffer room for those cases.
|
|
657
|
+
//
|
|
658
|
+
// If none of the paths has sufficient room to place a file, the file will
|
|
659
|
+
// be placed to the last path anyway, despite to the target size.
|
|
660
|
+
//
|
|
661
|
+
// Placing newer data to earlier paths is also best-efforts. User should
|
|
662
|
+
// expect user files to be placed in higher levels in some extreme cases.
|
|
663
|
+
//
|
|
664
|
+
// If left empty, only one path will be used, which is db_name passed when
|
|
665
|
+
// opening the DB.
|
|
666
|
+
// Default: empty
|
|
667
|
+
std::vector<DbPath> db_paths;
|
|
668
|
+
|
|
669
|
+
// This specifies the info LOG dir.
|
|
670
|
+
// If it is empty, the log files will be in the same dir as data.
|
|
671
|
+
// If it is non empty, the log files will be in the specified dir,
|
|
672
|
+
// and the db data dir's absolute path will be used as the log file
|
|
673
|
+
// name's prefix.
|
|
674
|
+
std::string db_log_dir = "";
|
|
675
|
+
|
|
676
|
+
// This specifies the absolute dir path for write-ahead logs (WAL).
|
|
677
|
+
// If it is empty, the log files will be in the same dir as data,
|
|
678
|
+
// dbname is used as the data dir by default
|
|
679
|
+
// If it is non empty, the log files will be in kept the specified dir.
|
|
680
|
+
// When destroying the db,
|
|
681
|
+
// all log files in wal_dir and the dir itself is deleted
|
|
682
|
+
std::string wal_dir = "";
|
|
683
|
+
|
|
684
|
+
// The periodicity when obsolete files get deleted. The default
|
|
685
|
+
// value is 6 hours. The files that get out of scope by compaction
|
|
686
|
+
// process will still get automatically delete on every compaction,
|
|
687
|
+
// regardless of this setting
|
|
688
|
+
//
|
|
689
|
+
// Default: 6 hours
|
|
690
|
+
//
|
|
691
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
692
|
+
uint64_t delete_obsolete_files_period_micros = 6ULL * 60 * 60 * 1000000;
|
|
693
|
+
|
|
694
|
+
// Maximum number of concurrent background jobs (compactions and flushes).
|
|
695
|
+
//
|
|
696
|
+
// Default: 2
|
|
697
|
+
//
|
|
698
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
699
|
+
int max_background_jobs = 2;
|
|
700
|
+
|
|
701
|
+
// DEPRECATED: RocksDB automatically decides this based on the
|
|
702
|
+
// value of max_background_jobs. For backwards compatibility we will set
|
|
703
|
+
// `max_background_jobs = max_background_compactions + max_background_flushes`
|
|
704
|
+
// in the case where user sets at least one of `max_background_compactions` or
|
|
705
|
+
// `max_background_flushes` (we replace -1 by 1 in case one option is unset).
|
|
706
|
+
//
|
|
707
|
+
// Maximum number of concurrent background compaction jobs, submitted to
|
|
708
|
+
// the default LOW priority thread pool.
|
|
709
|
+
//
|
|
710
|
+
// If you're increasing this, also consider increasing number of threads in
|
|
711
|
+
// LOW priority thread pool. For more information, see
|
|
712
|
+
// Env::SetBackgroundThreads
|
|
713
|
+
//
|
|
714
|
+
// Default: -1
|
|
715
|
+
//
|
|
716
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
717
|
+
int max_background_compactions = -1;
|
|
718
|
+
|
|
719
|
+
// This value represents the maximum number of threads that will
|
|
720
|
+
// concurrently perform a compaction job by breaking it into multiple,
|
|
721
|
+
// smaller ones that are run simultaneously.
|
|
722
|
+
// Default: 1 (i.e. no subcompactions)
|
|
723
|
+
//
|
|
724
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
725
|
+
uint32_t max_subcompactions = 1;
|
|
726
|
+
|
|
727
|
+
// DEPRECATED: RocksDB automatically decides this based on the
|
|
728
|
+
// value of max_background_jobs. For backwards compatibility we will set
|
|
729
|
+
// `max_background_jobs = max_background_compactions + max_background_flushes`
|
|
730
|
+
// in the case where user sets at least one of `max_background_compactions` or
|
|
731
|
+
// `max_background_flushes`.
|
|
732
|
+
//
|
|
733
|
+
// Maximum number of concurrent background memtable flush jobs, submitted by
|
|
734
|
+
// default to the HIGH priority thread pool. If the HIGH priority thread pool
|
|
735
|
+
// is configured to have zero threads, flush jobs will share the LOW priority
|
|
736
|
+
// thread pool with compaction jobs.
|
|
737
|
+
//
|
|
738
|
+
// It is important to use both thread pools when the same Env is shared by
|
|
739
|
+
// multiple db instances. Without a separate pool, long running compaction
|
|
740
|
+
// jobs could potentially block memtable flush jobs of other db instances,
|
|
741
|
+
// leading to unnecessary Put stalls.
|
|
742
|
+
//
|
|
743
|
+
// If you're increasing this, also consider increasing number of threads in
|
|
744
|
+
// HIGH priority thread pool. For more information, see
|
|
745
|
+
// Env::SetBackgroundThreads
|
|
746
|
+
// Default: -1
|
|
747
|
+
int max_background_flushes = -1;
|
|
748
|
+
|
|
749
|
+
// Specify the maximal size of the info log file. If the log file
|
|
750
|
+
// is larger than `max_log_file_size`, a new info log file will
|
|
751
|
+
// be created.
|
|
752
|
+
// If max_log_file_size == 0, all logs will be written to one
|
|
753
|
+
// log file.
|
|
754
|
+
size_t max_log_file_size = 0;
|
|
755
|
+
|
|
756
|
+
// Time for the info log file to roll (in seconds).
|
|
757
|
+
// If specified with non-zero value, log file will be rolled
|
|
758
|
+
// if it has been active longer than `log_file_time_to_roll`.
|
|
759
|
+
// Default: 0 (disabled)
|
|
760
|
+
size_t log_file_time_to_roll = 0;
|
|
761
|
+
|
|
762
|
+
// Maximal info log files to be kept.
|
|
763
|
+
// Default: 1000
|
|
764
|
+
size_t keep_log_file_num = 1000;
|
|
765
|
+
|
|
766
|
+
// Recycle log files.
|
|
767
|
+
// If non-zero, we will reuse previously written log files for new
|
|
768
|
+
// logs, overwriting the old data. The value indicates how many
|
|
769
|
+
// such files we will keep around at any point in time for later
|
|
770
|
+
// use. This is more efficient because the blocks are already
|
|
771
|
+
// allocated and fdatasync does not need to update the inode after
|
|
772
|
+
// each write.
|
|
773
|
+
// Default: 0
|
|
774
|
+
size_t recycle_log_file_num = 0;
|
|
775
|
+
|
|
776
|
+
// manifest file is rolled over on reaching this limit.
|
|
777
|
+
// The older manifest file be deleted.
|
|
778
|
+
// The default value is 1GB so that the manifest file can grow, but not
|
|
779
|
+
// reach the limit of storage capacity.
|
|
780
|
+
uint64_t max_manifest_file_size = 1024 * 1024 * 1024;
|
|
781
|
+
|
|
782
|
+
// Number of shards used for table cache.
|
|
783
|
+
int table_cache_numshardbits = 6;
|
|
784
|
+
|
|
785
|
+
// The following two fields affect how archived logs will be deleted.
|
|
786
|
+
// 1. If both set to 0, logs will be deleted asap and will not get into
|
|
787
|
+
// the archive.
|
|
788
|
+
// 2. If WAL_ttl_seconds is 0 and WAL_size_limit_MB is not 0,
|
|
789
|
+
// WAL files will be checked every 10 min and if total size is greater
|
|
790
|
+
// then WAL_size_limit_MB, they will be deleted starting with the
|
|
791
|
+
// earliest until size_limit is met. All empty files will be deleted.
|
|
792
|
+
// 3. If WAL_ttl_seconds is not 0 and WAL_size_limit_MB is 0, then
|
|
793
|
+
// WAL files will be checked every WAL_ttl_seconds / 2 and those that
|
|
794
|
+
// are older than WAL_ttl_seconds will be deleted.
|
|
795
|
+
// 4. If both are not 0, WAL files will be checked every 10 min and both
|
|
796
|
+
// checks will be performed with ttl being first.
|
|
797
|
+
uint64_t WAL_ttl_seconds = 0;
|
|
798
|
+
uint64_t WAL_size_limit_MB = 0;
|
|
799
|
+
|
|
800
|
+
// Number of bytes to preallocate (via fallocate) the manifest
|
|
801
|
+
// files. Default is 4mb, which is reasonable to reduce random IO
|
|
802
|
+
// as well as prevent overallocation for mounts that preallocate
|
|
803
|
+
// large amounts of data (such as xfs's allocsize option).
|
|
804
|
+
size_t manifest_preallocation_size = 4 * 1024 * 1024;
|
|
805
|
+
|
|
806
|
+
// Allow the OS to mmap file for reading sst tables.
|
|
807
|
+
// Not recommended for 32-bit OS.
|
|
808
|
+
// When the option is set to true and compression is disabled, the blocks
|
|
809
|
+
// will not be copied and will be read directly from the mmap-ed memory
|
|
810
|
+
// area, and the block will not be inserted into the block cache. However,
|
|
811
|
+
// checksums will still be checked if ReadOptions.verify_checksums is set
|
|
812
|
+
// to be true. It means a checksum check every time a block is read, more
|
|
813
|
+
// than the setup where the option is set to false and the block cache is
|
|
814
|
+
// used. The common use of the options is to run RocksDB on ramfs, where
|
|
815
|
+
// checksum verification is usually not needed.
|
|
816
|
+
// Default: false
|
|
817
|
+
bool allow_mmap_reads = false;
|
|
818
|
+
|
|
819
|
+
// Allow the OS to mmap file for writing.
|
|
820
|
+
// DB::SyncWAL() only works if this is set to false.
|
|
821
|
+
// Default: false
|
|
822
|
+
bool allow_mmap_writes = false;
|
|
823
|
+
|
|
824
|
+
// Enable direct I/O mode for read/write
|
|
825
|
+
// they may or may not improve performance depending on the use case
|
|
826
|
+
//
|
|
827
|
+
// Files will be opened in "direct I/O" mode
|
|
828
|
+
// which means that data r/w from the disk will not be cached or
|
|
829
|
+
// buffered. The hardware buffer of the devices may however still
|
|
830
|
+
// be used. Memory mapped files are not impacted by these parameters.
|
|
831
|
+
|
|
832
|
+
// Use O_DIRECT for user and compaction reads.
|
|
833
|
+
// Default: false
|
|
834
|
+
bool use_direct_reads = false;
|
|
835
|
+
|
|
836
|
+
// Use O_DIRECT for writes in background flush and compactions.
|
|
837
|
+
// Default: false
|
|
838
|
+
bool use_direct_io_for_flush_and_compaction = false;
|
|
839
|
+
|
|
840
|
+
// If false, fallocate() calls are bypassed, which disables file
|
|
841
|
+
// preallocation. The file space preallocation is used to increase the file
|
|
842
|
+
// write/append performance. By default, RocksDB preallocates space for WAL,
|
|
843
|
+
// SST, Manifest files, the extra space is truncated when the file is written.
|
|
844
|
+
// Warning: if you're using btrfs, we would recommend setting
|
|
845
|
+
// `allow_fallocate=false` to disable preallocation. As on btrfs, the extra
|
|
846
|
+
// allocated space cannot be freed, which could be significant if you have
|
|
847
|
+
// lots of files. More details about this limitation:
|
|
848
|
+
// https://github.com/btrfs/btrfs-dev-docs/blob/471c5699336e043114d4bca02adcd57d9dab9c44/data-extent-reference-counts.md
|
|
849
|
+
bool allow_fallocate = true;
|
|
850
|
+
|
|
851
|
+
// Disable child process inherit open files. Default: true
|
|
852
|
+
bool is_fd_close_on_exec = true;
|
|
853
|
+
|
|
854
|
+
// if not zero, dump rocksdb.stats to LOG every stats_dump_period_sec
|
|
855
|
+
//
|
|
856
|
+
// Default: 600 (10 min)
|
|
857
|
+
//
|
|
858
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
859
|
+
unsigned int stats_dump_period_sec = 600;
|
|
860
|
+
|
|
861
|
+
// if not zero, dump rocksdb.stats to RocksDB every stats_persist_period_sec
|
|
862
|
+
// Default: 600
|
|
863
|
+
unsigned int stats_persist_period_sec = 600;
|
|
864
|
+
|
|
865
|
+
// If true, automatically persist stats to a hidden column family (column
|
|
866
|
+
// family name: ___rocksdb_stats_history___) every
|
|
867
|
+
// stats_persist_period_sec seconds; otherwise, write to an in-memory
|
|
868
|
+
// struct. User can query through `GetStatsHistory` API.
|
|
869
|
+
// If user attempts to create a column family with the same name on a DB
|
|
870
|
+
// which have previously set persist_stats_to_disk to true, the column family
|
|
871
|
+
// creation will fail, but the hidden column family will survive, as well as
|
|
872
|
+
// the previously persisted statistics.
|
|
873
|
+
// When peristing stats to disk, the stat name will be limited at 100 bytes.
|
|
874
|
+
// Default: false
|
|
875
|
+
bool persist_stats_to_disk = false;
|
|
876
|
+
|
|
877
|
+
// if not zero, periodically take stats snapshots and store in memory, the
|
|
878
|
+
// memory size for stats snapshots is capped at stats_history_buffer_size
|
|
879
|
+
// Default: 1MB
|
|
880
|
+
size_t stats_history_buffer_size = 1024 * 1024;
|
|
881
|
+
|
|
882
|
+
// If set true, will hint the underlying file system that the file
|
|
883
|
+
// access pattern is random, when a sst file is opened.
|
|
884
|
+
// Default: true
|
|
885
|
+
bool advise_random_on_open = true;
|
|
886
|
+
|
|
887
|
+
// Amount of data to build up in memtables across all column
|
|
888
|
+
// families before writing to disk.
|
|
889
|
+
//
|
|
890
|
+
// This is distinct from write_buffer_size, which enforces a limit
|
|
891
|
+
// for a single memtable.
|
|
892
|
+
//
|
|
893
|
+
// This feature is disabled by default. Specify a non-zero value
|
|
894
|
+
// to enable it.
|
|
895
|
+
//
|
|
896
|
+
// Default: 0 (disabled)
|
|
897
|
+
size_t db_write_buffer_size = 0;
|
|
898
|
+
|
|
899
|
+
// The memory usage of memtable will report to this object. The same object
|
|
900
|
+
// can be passed into multiple DBs and it will track the sum of size of all
|
|
901
|
+
// the DBs. If the total size of all live memtables of all the DBs exceeds
|
|
902
|
+
// a limit, a flush will be triggered in the next DB to which the next write
|
|
903
|
+
// is issued, as long as there is one or more column family not already
|
|
904
|
+
// flushing.
|
|
905
|
+
//
|
|
906
|
+
// If the object is only passed to one DB, the behavior is the same as
|
|
907
|
+
// db_write_buffer_size. When write_buffer_manager is set, the value set will
|
|
908
|
+
// override db_write_buffer_size.
|
|
909
|
+
//
|
|
910
|
+
// This feature is disabled by default. Specify a non-zero value
|
|
911
|
+
// to enable it.
|
|
912
|
+
//
|
|
913
|
+
// Default: null
|
|
914
|
+
std::shared_ptr<WriteBufferManager> write_buffer_manager = nullptr;
|
|
915
|
+
|
|
916
|
+
// Specify the file access pattern once a compaction is started.
|
|
917
|
+
// It will be applied to all input files of a compaction.
|
|
918
|
+
// Default: NORMAL
|
|
919
|
+
enum AccessHint { NONE, NORMAL, SEQUENTIAL, WILLNEED };
|
|
920
|
+
AccessHint access_hint_on_compaction_start = NORMAL;
|
|
921
|
+
|
|
922
|
+
// If non-zero, we perform bigger reads when doing compaction. If you're
|
|
923
|
+
// running RocksDB on spinning disks, you should set this to at least 2MB.
|
|
924
|
+
// That way RocksDB's compaction is doing sequential instead of random reads.
|
|
925
|
+
//
|
|
926
|
+
// Default: 0
|
|
927
|
+
//
|
|
928
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
929
|
+
size_t compaction_readahead_size = 0;
|
|
930
|
+
|
|
931
|
+
// This is a maximum buffer size that is used by WinMmapReadableFile in
|
|
932
|
+
// unbuffered disk I/O mode. We need to maintain an aligned buffer for
|
|
933
|
+
// reads. We allow the buffer to grow until the specified value and then
|
|
934
|
+
// for bigger requests allocate one shot buffers. In unbuffered mode we
|
|
935
|
+
// always bypass read-ahead buffer at ReadaheadRandomAccessFile
|
|
936
|
+
// When read-ahead is required we then make use of compaction_readahead_size
|
|
937
|
+
// value and always try to read ahead. With read-ahead we always
|
|
938
|
+
// pre-allocate buffer to the size instead of growing it up to a limit.
|
|
939
|
+
//
|
|
940
|
+
// This option is currently honored only on Windows
|
|
941
|
+
//
|
|
942
|
+
// Default: 1 Mb
|
|
943
|
+
//
|
|
944
|
+
// Special value: 0 - means do not maintain per instance buffer. Allocate
|
|
945
|
+
// per request buffer and avoid locking.
|
|
946
|
+
size_t random_access_max_buffer_size = 1024 * 1024;
|
|
947
|
+
|
|
948
|
+
// This is the maximum buffer size that is used by WritableFileWriter.
|
|
949
|
+
// With direct IO, we need to maintain an aligned buffer for writes.
|
|
950
|
+
// We allow the buffer to grow until it's size hits the limit in buffered
|
|
951
|
+
// IO and fix the buffer size when using direct IO to ensure alignment of
|
|
952
|
+
// write requests if the logical sector size is unusual
|
|
953
|
+
//
|
|
954
|
+
// Default: 1024 * 1024 (1 MB)
|
|
955
|
+
//
|
|
956
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
957
|
+
size_t writable_file_max_buffer_size = 1024 * 1024;
|
|
958
|
+
|
|
959
|
+
// Use adaptive mutex, which spins in the user space before resorting
|
|
960
|
+
// to kernel. This could reduce context switch when the mutex is not
|
|
961
|
+
// heavily contended. However, if the mutex is hot, we could end up
|
|
962
|
+
// wasting spin time.
|
|
963
|
+
// Default: false
|
|
964
|
+
bool use_adaptive_mutex = false;
|
|
965
|
+
|
|
966
|
+
// Create DBOptions with default values for all fields
|
|
967
|
+
DBOptions();
|
|
968
|
+
// Create DBOptions from Options
|
|
969
|
+
explicit DBOptions(const Options& options);
|
|
970
|
+
|
|
971
|
+
void Dump(Logger* log) const;
|
|
972
|
+
|
|
973
|
+
// Allows OS to incrementally sync files to disk while they are being
|
|
974
|
+
// written, asynchronously, in the background. This operation can be used
|
|
975
|
+
// to smooth out write I/Os over time. Users shouldn't rely on it for
|
|
976
|
+
// persistence guarantee.
|
|
977
|
+
// Issue one request for every bytes_per_sync written. 0 turns it off.
|
|
978
|
+
//
|
|
979
|
+
// You may consider using rate_limiter to regulate write rate to device.
|
|
980
|
+
// When rate limiter is enabled, it automatically enables bytes_per_sync
|
|
981
|
+
// to 1MB.
|
|
982
|
+
//
|
|
983
|
+
// This option applies to table files
|
|
984
|
+
//
|
|
985
|
+
// Default: 0, turned off
|
|
986
|
+
//
|
|
987
|
+
// Note: DOES NOT apply to WAL files. See wal_bytes_per_sync instead
|
|
988
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
989
|
+
uint64_t bytes_per_sync = 0;
|
|
990
|
+
|
|
991
|
+
// Same as bytes_per_sync, but applies to WAL files
|
|
992
|
+
//
|
|
993
|
+
// Default: 0, turned off
|
|
994
|
+
//
|
|
995
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
996
|
+
uint64_t wal_bytes_per_sync = 0;
|
|
997
|
+
|
|
998
|
+
// When true, guarantees WAL files have at most `wal_bytes_per_sync`
|
|
999
|
+
// bytes submitted for writeback at any given time, and SST files have at most
|
|
1000
|
+
// `bytes_per_sync` bytes pending writeback at any given time. This can be
|
|
1001
|
+
// used to handle cases where processing speed exceeds I/O speed during file
|
|
1002
|
+
// generation, which can lead to a huge sync when the file is finished, even
|
|
1003
|
+
// with `bytes_per_sync` / `wal_bytes_per_sync` properly configured.
|
|
1004
|
+
//
|
|
1005
|
+
// - If `sync_file_range` is supported it achieves this by waiting for any
|
|
1006
|
+
// prior `sync_file_range`s to finish before proceeding. In this way,
|
|
1007
|
+
// processing (compression, etc.) can proceed uninhibited in the gap
|
|
1008
|
+
// between `sync_file_range`s, and we block only when I/O falls behind.
|
|
1009
|
+
// - Otherwise the `WritableFile::Sync` method is used. Note this mechanism
|
|
1010
|
+
// always blocks, thus preventing the interleaving of I/O and processing.
|
|
1011
|
+
//
|
|
1012
|
+
// Note: Enabling this option does not provide any additional persistence
|
|
1013
|
+
// guarantees, as it may use `sync_file_range`, which does not write out
|
|
1014
|
+
// metadata.
|
|
1015
|
+
//
|
|
1016
|
+
// Default: false
|
|
1017
|
+
bool strict_bytes_per_sync = false;
|
|
1018
|
+
|
|
1019
|
+
// A vector of EventListeners whose callback functions will be called
|
|
1020
|
+
// when specific RocksDB event happens.
|
|
1021
|
+
std::vector<std::shared_ptr<EventListener>> listeners;
|
|
1022
|
+
|
|
1023
|
+
// If true, then the status of the threads involved in this DB will
|
|
1024
|
+
// be tracked and available via GetThreadList() API.
|
|
1025
|
+
//
|
|
1026
|
+
// Default: false
|
|
1027
|
+
bool enable_thread_tracking = false;
|
|
1028
|
+
|
|
1029
|
+
// The limited write rate to DB if soft_pending_compaction_bytes_limit or
|
|
1030
|
+
// level0_slowdown_writes_trigger is triggered, or we are writing to the
|
|
1031
|
+
// last mem table allowed and we allow more than 3 mem tables. It is
|
|
1032
|
+
// calculated using size of user write requests before compression.
|
|
1033
|
+
// RocksDB may decide to slow down more if the compaction still
|
|
1034
|
+
// gets behind further.
|
|
1035
|
+
// If the value is 0, we will infer a value from `rater_limiter` value
|
|
1036
|
+
// if it is not empty, or 16MB if `rater_limiter` is empty. Note that
|
|
1037
|
+
// if users change the rate in `rate_limiter` after DB is opened,
|
|
1038
|
+
// `delayed_write_rate` won't be adjusted.
|
|
1039
|
+
//
|
|
1040
|
+
// Unit: byte per second.
|
|
1041
|
+
//
|
|
1042
|
+
// Default: 0
|
|
1043
|
+
//
|
|
1044
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
1045
|
+
uint64_t delayed_write_rate = 0;
|
|
1046
|
+
|
|
1047
|
+
// By default, a single write thread queue is maintained. The thread gets
|
|
1048
|
+
// to the head of the queue becomes write batch group leader and responsible
|
|
1049
|
+
// for writing to WAL and memtable for the batch group.
|
|
1050
|
+
//
|
|
1051
|
+
// If enable_pipelined_write is true, separate write thread queue is
|
|
1052
|
+
// maintained for WAL write and memtable write. A write thread first enter WAL
|
|
1053
|
+
// writer queue and then memtable writer queue. Pending thread on the WAL
|
|
1054
|
+
// writer queue thus only have to wait for previous writers to finish their
|
|
1055
|
+
// WAL writing but not the memtable writing. Enabling the feature may improve
|
|
1056
|
+
// write throughput and reduce latency of the prepare phase of two-phase
|
|
1057
|
+
// commit.
|
|
1058
|
+
//
|
|
1059
|
+
// Default: false
|
|
1060
|
+
bool enable_pipelined_write = false;
|
|
1061
|
+
|
|
1062
|
+
// Setting unordered_write to true trades higher write throughput with
|
|
1063
|
+
// relaxing the immutability guarantee of snapshots. This violates the
|
|
1064
|
+
// repeatability one expects from ::Get from a snapshot, as well as
|
|
1065
|
+
// ::MultiGet and Iterator's consistent-point-in-time view property.
|
|
1066
|
+
// If the application cannot tolerate the relaxed guarantees, it can implement
|
|
1067
|
+
// its own mechanisms to work around that and yet benefit from the higher
|
|
1068
|
+
// throughput. Using TransactionDB with WRITE_PREPARED write policy and
|
|
1069
|
+
// two_write_queues=true is one way to achieve immutable snapshots despite
|
|
1070
|
+
// unordered_write.
|
|
1071
|
+
//
|
|
1072
|
+
// By default, i.e., when it is false, rocksdb does not advance the sequence
|
|
1073
|
+
// number for new snapshots unless all the writes with lower sequence numbers
|
|
1074
|
+
// are already finished. This provides the immutability that we except from
|
|
1075
|
+
// snapshots. Moreover, since Iterator and MultiGet internally depend on
|
|
1076
|
+
// snapshots, the snapshot immutability results into Iterator and MultiGet
|
|
1077
|
+
// offering consistent-point-in-time view. If set to true, although
|
|
1078
|
+
// Read-Your-Own-Write property is still provided, the snapshot immutability
|
|
1079
|
+
// property is relaxed: the writes issued after the snapshot is obtained (with
|
|
1080
|
+
// larger sequence numbers) will be still not visible to the reads from that
|
|
1081
|
+
// snapshot, however, there still might be pending writes (with lower sequence
|
|
1082
|
+
// number) that will change the state visible to the snapshot after they are
|
|
1083
|
+
// landed to the memtable.
|
|
1084
|
+
//
|
|
1085
|
+
// Default: false
|
|
1086
|
+
bool unordered_write = false;
|
|
1087
|
+
|
|
1088
|
+
// If true, allow multi-writers to update mem tables in parallel.
|
|
1089
|
+
// Only some memtable_factory-s support concurrent writes; currently it
|
|
1090
|
+
// is implemented only for SkipListFactory. Concurrent memtable writes
|
|
1091
|
+
// are not compatible with inplace_update_support or filter_deletes.
|
|
1092
|
+
// It is strongly recommended to set enable_write_thread_adaptive_yield
|
|
1093
|
+
// if you are going to use this feature.
|
|
1094
|
+
//
|
|
1095
|
+
// Default: true
|
|
1096
|
+
bool allow_concurrent_memtable_write = true;
|
|
1097
|
+
|
|
1098
|
+
// If true, threads synchronizing with the write batch group leader will
|
|
1099
|
+
// wait for up to write_thread_max_yield_usec before blocking on a mutex.
|
|
1100
|
+
// This can substantially improve throughput for concurrent workloads,
|
|
1101
|
+
// regardless of whether allow_concurrent_memtable_write is enabled.
|
|
1102
|
+
//
|
|
1103
|
+
// Default: true
|
|
1104
|
+
bool enable_write_thread_adaptive_yield = true;
|
|
1105
|
+
|
|
1106
|
+
// The maximum limit of number of bytes that are written in a single batch
|
|
1107
|
+
// of WAL or memtable write. It is followed when the leader write size
|
|
1108
|
+
// is larger than 1/8 of this limit.
|
|
1109
|
+
//
|
|
1110
|
+
// Default: 1 MB
|
|
1111
|
+
uint64_t max_write_batch_group_size_bytes = 1 << 20;
|
|
1112
|
+
|
|
1113
|
+
// The maximum number of microseconds that a write operation will use
|
|
1114
|
+
// a yielding spin loop to coordinate with other write threads before
|
|
1115
|
+
// blocking on a mutex. (Assuming write_thread_slow_yield_usec is
|
|
1116
|
+
// set properly) increasing this value is likely to increase RocksDB
|
|
1117
|
+
// throughput at the expense of increased CPU usage.
|
|
1118
|
+
//
|
|
1119
|
+
// Default: 100
|
|
1120
|
+
uint64_t write_thread_max_yield_usec = 100;
|
|
1121
|
+
|
|
1122
|
+
// The latency in microseconds after which a std::this_thread::yield
|
|
1123
|
+
// call (sched_yield on Linux) is considered to be a signal that
|
|
1124
|
+
// other processes or threads would like to use the current core.
|
|
1125
|
+
// Increasing this makes writer threads more likely to take CPU
|
|
1126
|
+
// by spinning, which will show up as an increase in the number of
|
|
1127
|
+
// involuntary context switches.
|
|
1128
|
+
//
|
|
1129
|
+
// Default: 3
|
|
1130
|
+
uint64_t write_thread_slow_yield_usec = 3;
|
|
1131
|
+
|
|
1132
|
+
// If true, then DB::Open() will not update the statistics used to optimize
|
|
1133
|
+
// compaction decision by loading table properties from many files.
|
|
1134
|
+
// Turning off this feature will improve DBOpen time especially in
|
|
1135
|
+
// disk environment.
|
|
1136
|
+
//
|
|
1137
|
+
// Default: false
|
|
1138
|
+
bool skip_stats_update_on_db_open = false;
|
|
1139
|
+
|
|
1140
|
+
// If true, then DB::Open() will not fetch and check sizes of all sst files.
|
|
1141
|
+
// This may significantly speed up startup if there are many sst files,
|
|
1142
|
+
// especially when using non-default Env with expensive GetFileSize().
|
|
1143
|
+
// We'll still check that all required sst files exist.
|
|
1144
|
+
// If paranoid_checks is false, this option is ignored, and sst files are
|
|
1145
|
+
// not checked at all.
|
|
1146
|
+
//
|
|
1147
|
+
// Default: false
|
|
1148
|
+
bool skip_checking_sst_file_sizes_on_db_open = false;
|
|
1149
|
+
|
|
1150
|
+
// Recovery mode to control the consistency while replaying WAL
|
|
1151
|
+
// Default: kPointInTimeRecovery
|
|
1152
|
+
WALRecoveryMode wal_recovery_mode = WALRecoveryMode::kPointInTimeRecovery;
|
|
1153
|
+
|
|
1154
|
+
// if set to false then recovery will fail when a prepared
|
|
1155
|
+
// transaction is encountered in the WAL
|
|
1156
|
+
bool allow_2pc = false;
|
|
1157
|
+
|
|
1158
|
+
// A global cache for table-level rows.
|
|
1159
|
+
// Default: nullptr (disabled)
|
|
1160
|
+
std::shared_ptr<GeneralCache> row_cache = nullptr;
|
|
1161
|
+
|
|
1162
|
+
// A filter object supplied to be invoked while processing write-ahead-logs
|
|
1163
|
+
// (WALs) during recovery. The filter provides a way to inspect log
|
|
1164
|
+
// records, ignoring a particular record or skipping replay.
|
|
1165
|
+
// The filter is invoked at startup and is invoked from a single-thread
|
|
1166
|
+
// currently.
|
|
1167
|
+
WalFilter* wal_filter = nullptr;
|
|
1168
|
+
|
|
1169
|
+
// If true, then DB::Open / CreateColumnFamily / DropColumnFamily
|
|
1170
|
+
// SetOptions will fail if options file is not properly persisted.
|
|
1171
|
+
//
|
|
1172
|
+
// DEFAULT: false
|
|
1173
|
+
bool fail_if_options_file_error = false;
|
|
1174
|
+
|
|
1175
|
+
// If true, then print malloc stats together with rocksdb.stats
|
|
1176
|
+
// when printing to LOG.
|
|
1177
|
+
// DEFAULT: false
|
|
1178
|
+
bool dump_malloc_stats = false;
|
|
1179
|
+
|
|
1180
|
+
// By default RocksDB replay WAL logs and flush them on DB open, which may
|
|
1181
|
+
// create very small SST files. If this option is enabled, RocksDB will try
|
|
1182
|
+
// to avoid (but not guarantee not to) flush during recovery. Also, existing
|
|
1183
|
+
// WAL logs will be kept, so that if crash happened before flush, we still
|
|
1184
|
+
// have logs to recover from.
|
|
1185
|
+
//
|
|
1186
|
+
// DEFAULT: false
|
|
1187
|
+
bool avoid_flush_during_recovery = false;
|
|
1188
|
+
|
|
1189
|
+
// By default RocksDB will flush all memtables on DB close if there are
|
|
1190
|
+
// unpersisted data (i.e. with WAL disabled) The flush can be skip to speedup
|
|
1191
|
+
// DB close. Unpersisted data WILL BE LOST.
|
|
1192
|
+
//
|
|
1193
|
+
// DEFAULT: false
|
|
1194
|
+
//
|
|
1195
|
+
// Dynamically changeable through SetDBOptions() API.
|
|
1196
|
+
bool avoid_flush_during_shutdown = false;
|
|
1197
|
+
|
|
1198
|
+
// Set this option to true during creation of database if you want
|
|
1199
|
+
// to be able to ingest behind (call IngestExternalFile() skipping keys
|
|
1200
|
+
// that already exist, rather than overwriting matching keys).
|
|
1201
|
+
// Setting this option to true will affect 2 things:
|
|
1202
|
+
// 1) Disable some internal optimizations around SST file compression
|
|
1203
|
+
// 2) Reserve bottom-most level for ingested files only.
|
|
1204
|
+
// Note that only universal compaction supports reserving last level
|
|
1205
|
+
// for file ingestion only.
|
|
1206
|
+
// `num_levels` should be >= 3 if this option is turned on.
|
|
1207
|
+
//
|
|
1208
|
+
//
|
|
1209
|
+
// DEFAULT: false
|
|
1210
|
+
// Immutable.
|
|
1211
|
+
bool allow_ingest_behind = false;
|
|
1212
|
+
|
|
1213
|
+
// If enabled it uses two queues for writes, one for the ones with
|
|
1214
|
+
// disable_memtable and one for the ones that also write to memtable. This
|
|
1215
|
+
// allows the memtable writes not to lag behind other writes. It can be used
|
|
1216
|
+
// to optimize MySQL 2PC in which only the commits, which are serial, write to
|
|
1217
|
+
// memtable.
|
|
1218
|
+
bool two_write_queues = false;
|
|
1219
|
+
|
|
1220
|
+
// If true WAL is not flushed automatically after each write. Instead it
|
|
1221
|
+
// relies on manual invocation of FlushWAL to write the WAL buffer to its
|
|
1222
|
+
// file.
|
|
1223
|
+
bool manual_wal_flush = false;
|
|
1224
|
+
|
|
1225
|
+
// This feature is WORK IN PROGRESS
|
|
1226
|
+
// If enabled WAL records will be compressed before they are written.
|
|
1227
|
+
// Only zstd is supported. Compressed WAL records will be read in supported
|
|
1228
|
+
// versions regardless of the wal_compression settings.
|
|
1229
|
+
CompressionType wal_compression = kNoCompression;
|
|
1230
|
+
|
|
1231
|
+
// If true, RocksDB supports flushing multiple column families and committing
|
|
1232
|
+
// their results atomically to MANIFEST. Note that it is not
|
|
1233
|
+
// necessary to set atomic_flush to true if WAL is always enabled since WAL
|
|
1234
|
+
// allows the database to be restored to the last persistent state in WAL.
|
|
1235
|
+
// This option is useful when there are column families with writes NOT
|
|
1236
|
+
// protected by WAL.
|
|
1237
|
+
// For manual flush, application has to specify which column families to
|
|
1238
|
+
// flush atomically in DB::Flush.
|
|
1239
|
+
// For auto-triggered flush, RocksDB atomically flushes ALL column families.
|
|
1240
|
+
//
|
|
1241
|
+
// Currently, any WAL-enabled writes after atomic flush may be replayed
|
|
1242
|
+
// independently if the process crashes later and tries to recover.
|
|
1243
|
+
bool atomic_flush = false;
|
|
1244
|
+
|
|
1245
|
+
// If true, working thread may avoid doing unnecessary and long-latency
|
|
1246
|
+
// operation (such as deleting obsolete files directly or deleting memtable)
|
|
1247
|
+
// and will instead schedule a background job to do it.
|
|
1248
|
+
// Use it if you're latency-sensitive.
|
|
1249
|
+
// If set to true, takes precedence over
|
|
1250
|
+
// ReadOptions::background_purge_on_iterator_cleanup.
|
|
1251
|
+
bool avoid_unnecessary_blocking_io = false;
|
|
1252
|
+
|
|
1253
|
+
// Historically DB ID has always been stored in Identity File in DB folder.
|
|
1254
|
+
// If this flag is true, the DB ID is written to Manifest file in addition
|
|
1255
|
+
// to the Identity file. By doing this 2 problems are solved
|
|
1256
|
+
// 1. We don't checksum the Identity file where as Manifest file is.
|
|
1257
|
+
// 2. Since the source of truth for DB is Manifest file DB ID will sit with
|
|
1258
|
+
// the source of truth. Previously the Identity file could be copied
|
|
1259
|
+
// independent of Manifest and that can result in wrong DB ID.
|
|
1260
|
+
// We recommend setting this flag to true.
|
|
1261
|
+
// Default: false
|
|
1262
|
+
bool write_dbid_to_manifest = false;
|
|
1263
|
+
|
|
1264
|
+
// The number of bytes to prefetch when reading the log. This is mostly useful
|
|
1265
|
+
// for reading a remotely located log, as it can save the number of
|
|
1266
|
+
// round-trips. If 0, then the prefetching is disabled.
|
|
1267
|
+
//
|
|
1268
|
+
// Default: 0
|
|
1269
|
+
size_t log_readahead_size = 0;
|
|
1270
|
+
|
|
1271
|
+
// If user does NOT provide the checksum generator factory, the file checksum
|
|
1272
|
+
// will NOT be used. A new file checksum generator object will be created
|
|
1273
|
+
// when a SST file is created. Therefore, each created FileChecksumGenerator
|
|
1274
|
+
// will only be used from a single thread and so does not need to be
|
|
1275
|
+
// thread-safe.
|
|
1276
|
+
//
|
|
1277
|
+
// Default: nullptr
|
|
1278
|
+
std::shared_ptr<FileChecksumGenFactory> file_checksum_gen_factory = nullptr;
|
|
1279
|
+
|
|
1280
|
+
// By default, RocksDB will attempt to detect any data losses or corruptions
|
|
1281
|
+
// in DB files and return an error to the user, either at DB::Open time or
|
|
1282
|
+
// later during DB operation. The exception to this policy is the WAL file,
|
|
1283
|
+
// whose recovery is controlled by the wal_recovery_mode option.
|
|
1284
|
+
//
|
|
1285
|
+
// Best-efforts recovery (this option set to true) signals a preference for
|
|
1286
|
+
// opening the DB to any point-in-time valid state for each column family,
|
|
1287
|
+
// including the empty/new state, versus the default of returning non-WAL
|
|
1288
|
+
// data losses to the user as errors. In terms of RocksDB user data, this
|
|
1289
|
+
// is like applying WALRecoveryMode::kPointInTimeRecovery to each column
|
|
1290
|
+
// family rather than just the WAL.
|
|
1291
|
+
//
|
|
1292
|
+
// Best-efforts recovery (BER) is specifically designed to recover a DB with
|
|
1293
|
+
// files that are missing or truncated to some smaller size, such as the
|
|
1294
|
+
// result of an incomplete DB "physical" (FileSystem) copy. BER can also
|
|
1295
|
+
// detect when an SST file has been replaced with a different one of the
|
|
1296
|
+
// same size (assuming SST unique IDs are tracked in DB manifest).
|
|
1297
|
+
// BER is not yet designed to produce a usable DB from other corruptions to
|
|
1298
|
+
// DB files (which should generally be detectable by DB::VerifyChecksum()),
|
|
1299
|
+
// and BER does not yet attempt to recover any WAL files.
|
|
1300
|
+
//
|
|
1301
|
+
// For example, if an SST or blob file referenced by the MANIFEST is missing,
|
|
1302
|
+
// BER might be able to find a set of files corresponding to an old "point in
|
|
1303
|
+
// time" version of the column family, possibly from an older MANIFEST
|
|
1304
|
+
// file. Some other kinds of DB files (e.g. CURRENT, LOCK, IDENTITY) are
|
|
1305
|
+
// either ignored or replaced with BER, or quietly fixed regardless of BER
|
|
1306
|
+
// setting. BER does require at least one valid MANIFEST to recover to a
|
|
1307
|
+
// non-trivial DB state, unlike `ldb repair`.
|
|
1308
|
+
//
|
|
1309
|
+
// Currently, best_efforts_recovery=true is not compatible with atomic flush.
|
|
1310
|
+
//
|
|
1311
|
+
// Default: false
|
|
1312
|
+
bool best_efforts_recovery = false;
|
|
1313
|
+
|
|
1314
|
+
// It defines how many times DB::Resume() is called by a separate thread when
|
|
1315
|
+
// background retryable IO Error happens. When background retryable IO
|
|
1316
|
+
// Error happens, SetBGError is called to deal with the error. If the error
|
|
1317
|
+
// can be auto-recovered (e.g., retryable IO Error during Flush or WAL write),
|
|
1318
|
+
// then db resume is called in background to recover from the error. If this
|
|
1319
|
+
// value is 0 or negative, DB::Resume() will not be called automatically.
|
|
1320
|
+
//
|
|
1321
|
+
// Default: INT_MAX
|
|
1322
|
+
int max_bgerror_resume_count = INT_MAX;
|
|
1323
|
+
|
|
1324
|
+
// If max_bgerror_resume_count is >= 2, db resume is called multiple times.
|
|
1325
|
+
// This option decides how long to wait to retry the next resume if the
|
|
1326
|
+
// previous resume fails and satisfy redo resume conditions.
|
|
1327
|
+
//
|
|
1328
|
+
// Default: 1000000 (microseconds).
|
|
1329
|
+
uint64_t bgerror_resume_retry_interval = 1000000;
|
|
1330
|
+
|
|
1331
|
+
// It allows user to opt-in to get error messages containing corrupted
|
|
1332
|
+
// keys/values. Corrupt keys, values will be logged in the
|
|
1333
|
+
// messages/logs/status that will help users with the useful information
|
|
1334
|
+
// regarding affected data. By default value is set false to prevent users
|
|
1335
|
+
// data to be exposed in the logs/messages etc.
|
|
1336
|
+
//
|
|
1337
|
+
// Default: false
|
|
1338
|
+
bool allow_data_in_errors = false;
|
|
1339
|
+
|
|
1340
|
+
// A string identifying the machine hosting the DB. This
|
|
1341
|
+
// will be written as a property in every SST file written by the DB (or
|
|
1342
|
+
// by offline writers such as SstFileWriter and RepairDB). It can be useful
|
|
1343
|
+
// for troubleshooting in memory corruption caused by a failing host when
|
|
1344
|
+
// writing a file, by tracing back to the writing host. These corruptions
|
|
1345
|
+
// may not be caught by the checksum since they happen before checksumming.
|
|
1346
|
+
// If left as default, the table writer will substitute it with the actual
|
|
1347
|
+
// hostname when writing the SST file. If set to an empty string, the
|
|
1348
|
+
// property will not be written to the SST file.
|
|
1349
|
+
//
|
|
1350
|
+
// Default: hostname
|
|
1351
|
+
std::string db_host_id = kHostnameForDbHostId;
|
|
1352
|
+
|
|
1353
|
+
// Use this if your DB want to enable checksum handoff for specific file
|
|
1354
|
+
// types writes. Make sure that the File_system you use support the
|
|
1355
|
+
// crc32c checksum verification
|
|
1356
|
+
// Currently supported file tyes: kWALFile, kTableFile, kDescriptorFile.
|
|
1357
|
+
// NOTE: currently RocksDB only generates crc32c based checksum for the
|
|
1358
|
+
// handoff. If the storage layer has different checksum support, user
|
|
1359
|
+
// should enble this set as empty. Otherwise,it may cause unexpected
|
|
1360
|
+
// write failures.
|
|
1361
|
+
FileTypeSet checksum_handoff_file_types;
|
|
1362
|
+
|
|
1363
|
+
// EXPERIMENTAL
|
|
1364
|
+
// CompactionService is a feature allows the user to run compactions on a
|
|
1365
|
+
// different host or process, which offloads the background load from the
|
|
1366
|
+
// primary host.
|
|
1367
|
+
// It's an experimental feature, the interface will be changed without
|
|
1368
|
+
// backward/forward compatibility support for now. Some known issues are still
|
|
1369
|
+
// under development.
|
|
1370
|
+
std::shared_ptr<CompactionService> compaction_service = nullptr;
|
|
1371
|
+
|
|
1372
|
+
// It indicates, which lowest cache tier we want to
|
|
1373
|
+
// use for a certain DB. Currently we support volatile_tier and
|
|
1374
|
+
// non_volatile_tier. They are layered. By setting it to kVolatileTier, only
|
|
1375
|
+
// the block cache (current implemented volatile_tier) is used. So
|
|
1376
|
+
// cache entries will not spill to secondary cache (current
|
|
1377
|
+
// implemented non_volatile_tier), and block cache lookup misses will not
|
|
1378
|
+
// lookup in the secondary cache. When kNonVolatileBlockTier is used, we use
|
|
1379
|
+
// both block cache and secondary cache.
|
|
1380
|
+
//
|
|
1381
|
+
// Default: kNonVolatileBlockTier
|
|
1382
|
+
CacheTier lowest_used_cache_tier = CacheTier::kNonVolatileBlockTier;
|
|
1383
|
+
|
|
1384
|
+
// If set to false, when compaction or flush sees a SingleDelete followed by
|
|
1385
|
+
// a Delete for the same user key, compaction job will not fail.
|
|
1386
|
+
// Otherwise, compaction job will fail.
|
|
1387
|
+
// This is a temporary option to help existing use cases migrate, and
|
|
1388
|
+
// will be removed in a future release.
|
|
1389
|
+
// Warning: do not set to false unless you are trying to migrate existing
|
|
1390
|
+
// data in which the contract of single delete
|
|
1391
|
+
// (https://github.com/facebook/rocksdb/wiki/Single-Delete) is not enforced,
|
|
1392
|
+
// thus has Delete mixed with SingleDelete for the same user key. Violation
|
|
1393
|
+
// of the contract leads to undefined behaviors with high possibility of data
|
|
1394
|
+
// inconsistency, e.g. deleted old data become visible again, etc.
|
|
1395
|
+
bool enforce_single_del_contracts = true;
|
|
1396
|
+
};
|
|
1397
|
+
|
|
1398
|
+
// Options to control the behavior of a database (passed to DB::Open)
|
|
1399
|
+
struct Options : public DBOptions, public ColumnFamilyOptions {
|
|
1400
|
+
// Create an Options object with default values for all fields.
|
|
1401
|
+
Options() : DBOptions(), ColumnFamilyOptions() {}
|
|
1402
|
+
|
|
1403
|
+
Options(const DBOptions& db_options,
|
|
1404
|
+
const ColumnFamilyOptions& column_family_options)
|
|
1405
|
+
: DBOptions(db_options), ColumnFamilyOptions(column_family_options) {}
|
|
1406
|
+
|
|
1407
|
+
// Change to some default settings from an older version.
|
|
1408
|
+
// NOT MAINTAINED: This function has not been and is not maintained.
|
|
1409
|
+
// DEPRECATED: This function might be removed in a future release.
|
|
1410
|
+
// In general, defaults are changed to suit broad interests. Opting
|
|
1411
|
+
// out of a change on upgrade should be deliberate and considered.
|
|
1412
|
+
Options* OldDefaults(int rocksdb_major_version = 4,
|
|
1413
|
+
int rocksdb_minor_version = 6);
|
|
1414
|
+
|
|
1415
|
+
void Dump(Logger* log) const;
|
|
1416
|
+
|
|
1417
|
+
void DumpCFOptions(Logger* log) const;
|
|
1418
|
+
|
|
1419
|
+
// Some functions that make it easier to optimize RocksDB
|
|
1420
|
+
|
|
1421
|
+
// Set appropriate parameters for bulk loading.
|
|
1422
|
+
// The reason that this is a function that returns "this" instead of a
|
|
1423
|
+
// constructor is to enable chaining of multiple similar calls in the future.
|
|
1424
|
+
//
|
|
1425
|
+
|
|
1426
|
+
// All data will be in level 0 without any automatic compaction.
|
|
1427
|
+
// It's recommended to manually call CompactRange(NULL, NULL) before reading
|
|
1428
|
+
// from the database, because otherwise the read can be very slow.
|
|
1429
|
+
Options* PrepareForBulkLoad();
|
|
1430
|
+
|
|
1431
|
+
// Use this if your DB is very small (like under 1GB) and you don't want to
|
|
1432
|
+
// spend lots of memory for memtables.
|
|
1433
|
+
Options* OptimizeForSmallDb();
|
|
1434
|
+
|
|
1435
|
+
// Disable some checks that should not be necessary in the absence of
|
|
1436
|
+
// software logic errors or CPU+memory hardware errors. This can improve
|
|
1437
|
+
// write speeds but is only recommended for temporary use. Does not
|
|
1438
|
+
// change protection against corrupt storage (e.g. verify_checksums).
|
|
1439
|
+
Options* DisableExtraChecks();
|
|
1440
|
+
};
|
|
1441
|
+
|
|
1442
|
+
// An application can issue a read request (via Get/Iterators) and specify
|
|
1443
|
+
// if that read should process data that ALREADY resides on a specified cache
|
|
1444
|
+
// level. For example, if an application specifies kBlockCacheTier then the
|
|
1445
|
+
// Get call will process data that is already processed in the memtable or
|
|
1446
|
+
// the block cache. It will not page in data from the OS cache or data that
|
|
1447
|
+
// resides in storage.
|
|
1448
|
+
enum ReadTier {
|
|
1449
|
+
kReadAllTier = 0x0, // data in memtable, block cache, OS cache or storage
|
|
1450
|
+
kBlockCacheTier = 0x1, // data in memtable or block cache
|
|
1451
|
+
kPersistedTier = 0x2, // persisted data. When WAL is disabled, this option
|
|
1452
|
+
// will skip data in memtable.
|
|
1453
|
+
// Note that this ReadTier currently only supports
|
|
1454
|
+
// Get and MultiGet and does not support iterators.
|
|
1455
|
+
kMemtableTier = 0x3 // data in memtable. used for memtable-only iterators.
|
|
1456
|
+
};
|
|
1457
|
+
|
|
1458
|
+
// Options that control read operations
|
|
1459
|
+
struct ReadOptions {
|
|
1460
|
+
// *** BEGIN options relevant to point lookups as well as scans ***
|
|
1461
|
+
|
|
1462
|
+
// If "snapshot" is non-nullptr, read as of the supplied snapshot
|
|
1463
|
+
// (which must belong to the DB that is being read and which must
|
|
1464
|
+
// not have been released). If "snapshot" is nullptr, use an implicit
|
|
1465
|
+
// snapshot of the state at the beginning of this read operation.
|
|
1466
|
+
const Snapshot* snapshot = nullptr;
|
|
1467
|
+
|
|
1468
|
+
// Timestamp of operation. Read should return the latest data visible to the
|
|
1469
|
+
// specified timestamp. All timestamps of the same database must be of the
|
|
1470
|
+
// same length and format. The user is responsible for providing a customized
|
|
1471
|
+
// compare function via Comparator to order <key, timestamp> tuples.
|
|
1472
|
+
// For iterator, iter_start_ts is the lower bound (older) and timestamp
|
|
1473
|
+
// serves as the upper bound. Versions of the same record that fall in
|
|
1474
|
+
// the timestamp range will be returned. If iter_start_ts is nullptr,
|
|
1475
|
+
// only the most recent version visible to timestamp is returned.
|
|
1476
|
+
// The user-specified timestamp feature is still under active development,
|
|
1477
|
+
// and the API is subject to change.
|
|
1478
|
+
const Slice* timestamp = nullptr;
|
|
1479
|
+
const Slice* iter_start_ts = nullptr;
|
|
1480
|
+
|
|
1481
|
+
// Deadline for completing an API call (Get/MultiGet/Seek/Next for now)
|
|
1482
|
+
// in microseconds.
|
|
1483
|
+
// It should be set to microseconds since epoch, i.e, gettimeofday or
|
|
1484
|
+
// equivalent plus allowed duration in microseconds. The best way is to use
|
|
1485
|
+
// env->NowMicros() + some timeout.
|
|
1486
|
+
// This is best efforts. The call may exceed the deadline if there is IO
|
|
1487
|
+
// involved and the file system doesn't support deadlines, or due to
|
|
1488
|
+
// checking for deadline periodically rather than for every key if
|
|
1489
|
+
// processing a batch
|
|
1490
|
+
std::chrono::microseconds deadline = std::chrono::microseconds::zero();
|
|
1491
|
+
|
|
1492
|
+
// A timeout in microseconds to be passed to the underlying FileSystem for
|
|
1493
|
+
// reads. As opposed to deadline, this determines the timeout for each
|
|
1494
|
+
// individual file read request. If a MultiGet/Get/Seek/Next etc call
|
|
1495
|
+
// results in multiple reads, each read can last up to io_timeout us.
|
|
1496
|
+
std::chrono::microseconds io_timeout = std::chrono::microseconds::zero();
|
|
1497
|
+
|
|
1498
|
+
// Specify if this read request should process data that ALREADY
|
|
1499
|
+
// resides on a particular cache. If the required data is not
|
|
1500
|
+
// found at the specified cache, then Status::Incomplete is returned.
|
|
1501
|
+
ReadTier read_tier = kReadAllTier;
|
|
1502
|
+
|
|
1503
|
+
// For file reads associated with this option, charge the internal rate
|
|
1504
|
+
// limiter (see `DBOptions::rate_limiter`) at the specified priority. The
|
|
1505
|
+
// special value `Env::IO_TOTAL` disables charging the rate limiter.
|
|
1506
|
+
//
|
|
1507
|
+
// The rate limiting is bypassed no matter this option's value for file reads
|
|
1508
|
+
// on plain tables (these can exist when `ColumnFamilyOptions::table_factory`
|
|
1509
|
+
// is a `PlainTableFactory`) and cuckoo tables (these can exist when
|
|
1510
|
+
// `ColumnFamilyOptions::table_factory` is a `CuckooTableFactory`).
|
|
1511
|
+
//
|
|
1512
|
+
// The bytes charged to rate limiter may not exactly match the file read bytes
|
|
1513
|
+
// since there are some seemingly insignificant reads, like for file
|
|
1514
|
+
// headers/footers, that we currently do not charge to rate limiter.
|
|
1515
|
+
Env::IOPriority rate_limiter_priority = Env::IO_TOTAL;
|
|
1516
|
+
|
|
1517
|
+
// It limits the maximum cumulative value size of the keys in batch while
|
|
1518
|
+
// reading through MultiGet. Once the cumulative value size exceeds this
|
|
1519
|
+
// soft limit then all the remaining keys are returned with status Aborted.
|
|
1520
|
+
uint64_t value_size_soft_limit = std::numeric_limits<uint64_t>::max();
|
|
1521
|
+
|
|
1522
|
+
// If true, all data read from underlying storage will be
|
|
1523
|
+
// verified against corresponding checksums.
|
|
1524
|
+
bool verify_checksums = true;
|
|
1525
|
+
|
|
1526
|
+
// Should the "data block"/"index block" read for this iteration be placed in
|
|
1527
|
+
// block cache?
|
|
1528
|
+
// Callers may wish to set this field to false for bulk scans.
|
|
1529
|
+
// This would help not to the change eviction order of existing items in the
|
|
1530
|
+
// block cache.
|
|
1531
|
+
bool fill_cache = true;
|
|
1532
|
+
|
|
1533
|
+
// If true, range tombstones handling will be skipped in key lookup paths.
|
|
1534
|
+
// For DB instances that don't use DeleteRange() calls, this setting can
|
|
1535
|
+
// be used to optimize the read performance.
|
|
1536
|
+
// Note that, if this assumption (of no previous DeleteRange() calls) is
|
|
1537
|
+
// broken, stale keys could be served in read paths.
|
|
1538
|
+
bool ignore_range_deletions = false;
|
|
1539
|
+
|
|
1540
|
+
// Experimental
|
|
1541
|
+
//
|
|
1542
|
+
// If async_io is enabled, RocksDB will prefetch some of data asynchronously.
|
|
1543
|
+
// RocksDB apply it if reads are sequential and its internal automatic
|
|
1544
|
+
// prefetching.
|
|
1545
|
+
bool async_io = false;
|
|
1546
|
+
|
|
1547
|
+
// Experimental
|
|
1548
|
+
//
|
|
1549
|
+
// If async_io is set, then this flag controls whether we read SST files
|
|
1550
|
+
// in multiple levels asynchronously. Enabling this flag can help reduce
|
|
1551
|
+
// MultiGet latency by maximizing the number of SST files read in
|
|
1552
|
+
// parallel if the keys in the MultiGet batch are in different levels. It
|
|
1553
|
+
// comes at the expense of slightly higher CPU overhead.
|
|
1554
|
+
bool optimize_multiget_for_io = true;
|
|
1555
|
+
|
|
1556
|
+
// *** END options relevant to point lookups (as well as scans) ***
|
|
1557
|
+
// *** BEGIN options only relevant to iterators or scans ***
|
|
1558
|
+
|
|
1559
|
+
// RocksDB does auto-readahead for iterators on noticing more than two reads
|
|
1560
|
+
// for a table file. The readahead starts at 8KB and doubles on every
|
|
1561
|
+
// additional read up to 256KB.
|
|
1562
|
+
// This option can help if most of the range scans are large, and if it is
|
|
1563
|
+
// determined that a larger readahead than that enabled by auto-readahead is
|
|
1564
|
+
// needed.
|
|
1565
|
+
// Using a large readahead size (> 2MB) can typically improve the performance
|
|
1566
|
+
// of forward iteration on spinning disks.
|
|
1567
|
+
size_t readahead_size = 0;
|
|
1568
|
+
|
|
1569
|
+
// A threshold for the number of keys that can be skipped before failing an
|
|
1570
|
+
// iterator seek as incomplete. The default value of 0 should be used to
|
|
1571
|
+
// never fail a request as incomplete, even on skipping too many keys.
|
|
1572
|
+
uint64_t max_skippable_internal_keys = 0;
|
|
1573
|
+
|
|
1574
|
+
// `iterate_lower_bound` defines the smallest key at which the backward
|
|
1575
|
+
// iterator can return an entry. Once the bound is passed, Valid() will be
|
|
1576
|
+
// false. `iterate_lower_bound` is inclusive ie the bound value is a valid
|
|
1577
|
+
// entry.
|
|
1578
|
+
//
|
|
1579
|
+
// If prefix_extractor is not null, the Seek target and `iterate_lower_bound`
|
|
1580
|
+
// need to have the same prefix. This is because ordering is not guaranteed
|
|
1581
|
+
// outside of prefix domain.
|
|
1582
|
+
//
|
|
1583
|
+
// In case of user_defined timestamp, if enabled, iterate_lower_bound should
|
|
1584
|
+
// point to key without timestamp part.
|
|
1585
|
+
const Slice* iterate_lower_bound = nullptr;
|
|
1586
|
+
|
|
1587
|
+
// "iterate_upper_bound" defines the extent up to which the forward iterator
|
|
1588
|
+
// can return entries. Once the bound is reached, Valid() will be false.
|
|
1589
|
+
// "iterate_upper_bound" is exclusive ie the bound value is
|
|
1590
|
+
// not a valid entry. If prefix_extractor is not null:
|
|
1591
|
+
// 1. If options.auto_prefix_mode = true, iterate_upper_bound will be used
|
|
1592
|
+
// to infer whether prefix iterating (e.g. applying prefix bloom filter)
|
|
1593
|
+
// can be used within RocksDB. This is done by comparing
|
|
1594
|
+
// iterate_upper_bound with the seek key.
|
|
1595
|
+
// 2. If options.auto_prefix_mode = false, iterate_upper_bound only takes
|
|
1596
|
+
// effect if it shares the same prefix as the seek key. If
|
|
1597
|
+
// iterate_upper_bound is outside the prefix of the seek key, then keys
|
|
1598
|
+
// returned outside the prefix range will be undefined, just as if
|
|
1599
|
+
// iterate_upper_bound = null.
|
|
1600
|
+
// If iterate_upper_bound is not null, SeekToLast() will position the iterator
|
|
1601
|
+
// at the first key smaller than iterate_upper_bound.
|
|
1602
|
+
//
|
|
1603
|
+
// In case of user_defined timestamp, if enabled, iterate_upper_bound should
|
|
1604
|
+
// point to key without timestamp part.
|
|
1605
|
+
const Slice* iterate_upper_bound = nullptr;
|
|
1606
|
+
|
|
1607
|
+
// Specify to create a tailing iterator -- a special iterator that has a
|
|
1608
|
+
// view of the complete database (i.e. it can also be used to read newly
|
|
1609
|
+
// added data) and is optimized for sequential reads. It will return records
|
|
1610
|
+
// that were inserted into the database after the creation of the iterator.
|
|
1611
|
+
bool tailing = false;
|
|
1612
|
+
|
|
1613
|
+
// This options is not used anymore. It was to turn on a functionality that
|
|
1614
|
+
// has been removed. DEPRECATED
|
|
1615
|
+
bool managed = false;
|
|
1616
|
+
|
|
1617
|
+
// Enable a total order seek regardless of index format (e.g. hash index)
|
|
1618
|
+
// used in the table. Some table format (e.g. plain table) may not support
|
|
1619
|
+
// this option.
|
|
1620
|
+
// If true when calling Get(), we also skip prefix bloom when reading from
|
|
1621
|
+
// block based table, which only affects Get() performance.
|
|
1622
|
+
bool total_order_seek = false;
|
|
1623
|
+
|
|
1624
|
+
// When true, by default use total_order_seek = true, and RocksDB can
|
|
1625
|
+
// selectively enable prefix seek mode if won't generate a different result
|
|
1626
|
+
// from total_order_seek, based on seek key, and iterator upper bound.
|
|
1627
|
+
// BUG: Using Comparator::IsSameLengthImmediateSuccessor and
|
|
1628
|
+
// SliceTransform::FullLengthEnabled to enable prefix mode in cases where
|
|
1629
|
+
// prefix of upper bound differs from prefix of seek key has a flaw.
|
|
1630
|
+
// If present in the DB, "short keys" (shorter than "full length" prefix)
|
|
1631
|
+
// can be omitted from auto_prefix_mode iteration when they would be present
|
|
1632
|
+
// in total_order_seek iteration, regardless of whether the short keys are
|
|
1633
|
+
// "in domain" of the prefix extractor. This is not an issue if no short
|
|
1634
|
+
// keys are added to DB or are not expected to be returned by such
|
|
1635
|
+
// iterators. (We are also assuming the new condition on
|
|
1636
|
+
// IsSameLengthImmediateSuccessor is satisfied; see its BUG section).
|
|
1637
|
+
// A bug example is in DBTest2::AutoPrefixMode1, search for "BUG".
|
|
1638
|
+
bool auto_prefix_mode = false;
|
|
1639
|
+
|
|
1640
|
+
// Enforce that the iterator only iterates over the same prefix as the seek.
|
|
1641
|
+
// This option is effective only for prefix seeks, i.e. prefix_extractor is
|
|
1642
|
+
// non-null for the column family and total_order_seek is false. Unlike
|
|
1643
|
+
// iterate_upper_bound, prefix_same_as_start only works within a prefix
|
|
1644
|
+
// but in both directions.
|
|
1645
|
+
bool prefix_same_as_start = false;
|
|
1646
|
+
|
|
1647
|
+
// Keep the blocks loaded by the iterator pinned in memory as long as the
|
|
1648
|
+
// iterator is not deleted, If used when reading from tables created with
|
|
1649
|
+
// BlockBasedTableOptions::use_delta_encoding = false,
|
|
1650
|
+
// Iterator's property "rocksdb.iterator.is-key-pinned" is guaranteed to
|
|
1651
|
+
// return 1.
|
|
1652
|
+
bool pin_data = false;
|
|
1653
|
+
|
|
1654
|
+
// For iterators, RocksDB does auto-readahead on noticing more than two
|
|
1655
|
+
// sequential reads for a table file if user doesn't provide readahead_size.
|
|
1656
|
+
// The readahead starts at 8KB and doubles on every additional read upto
|
|
1657
|
+
// max_auto_readahead_size only when reads are sequential. However at each
|
|
1658
|
+
// level, if iterator moves over next file, readahead_size starts again from
|
|
1659
|
+
// 8KB.
|
|
1660
|
+
//
|
|
1661
|
+
// By enabling this option, RocksDB will do some enhancements for
|
|
1662
|
+
// prefetching the data.
|
|
1663
|
+
bool adaptive_readahead = false;
|
|
1664
|
+
|
|
1665
|
+
// If true, when PurgeObsoleteFile is called in CleanupIteratorState, we
|
|
1666
|
+
// schedule a background job in the flush job queue and delete obsolete files
|
|
1667
|
+
// in background.
|
|
1668
|
+
bool background_purge_on_iterator_cleanup = false;
|
|
1669
|
+
|
|
1670
|
+
// A callback to determine whether relevant keys for this scan exist in a
|
|
1671
|
+
// given table based on the table's properties. The callback is passed the
|
|
1672
|
+
// properties of each table during iteration. If the callback returns false,
|
|
1673
|
+
// the table will not be scanned. This option only affects Iterators and has
|
|
1674
|
+
// no impact on point lookups.
|
|
1675
|
+
// Default: empty (every table will be scanned)
|
|
1676
|
+
std::function<bool(const TableProperties&)> table_filter;
|
|
1677
|
+
|
|
1678
|
+
// *** END options only relevant to iterators or scans ***
|
|
1679
|
+
|
|
1680
|
+
// ** For RocksDB internal use only **
|
|
1681
|
+
Env::IOActivity io_activity = Env::IOActivity::kUnknown;
|
|
1682
|
+
|
|
1683
|
+
ReadOptions() {}
|
|
1684
|
+
ReadOptions(bool _verify_checksums, bool _fill_cache);
|
|
1685
|
+
explicit ReadOptions(Env::IOActivity _io_activity);
|
|
1686
|
+
};
|
|
1687
|
+
|
|
1688
|
+
// Options that control write operations
|
|
1689
|
+
struct WriteOptions {
|
|
1690
|
+
// If true, the write will be flushed from the operating system
|
|
1691
|
+
// buffer cache (by calling WritableFile::Sync()) before the write
|
|
1692
|
+
// is considered complete. If this flag is true, writes will be
|
|
1693
|
+
// slower.
|
|
1694
|
+
//
|
|
1695
|
+
// If this flag is false, and the machine crashes, some recent
|
|
1696
|
+
// writes may be lost. Note that if it is just the process that
|
|
1697
|
+
// crashes (i.e., the machine does not reboot), no writes will be
|
|
1698
|
+
// lost even if sync==false.
|
|
1699
|
+
//
|
|
1700
|
+
// In other words, a DB write with sync==false has similar
|
|
1701
|
+
// crash semantics as the "write()" system call. A DB write
|
|
1702
|
+
// with sync==true has similar crash semantics to a "write()"
|
|
1703
|
+
// system call followed by "fdatasync()".
|
|
1704
|
+
//
|
|
1705
|
+
// Default: false
|
|
1706
|
+
bool sync;
|
|
1707
|
+
|
|
1708
|
+
// If true, writes will not first go to the write ahead log,
|
|
1709
|
+
// and the write may get lost after a crash. The backup engine
|
|
1710
|
+
// relies on write-ahead logs to back up the memtable, so if
|
|
1711
|
+
// you disable write-ahead logs, you must create backups with
|
|
1712
|
+
// flush_before_backup=true to avoid losing unflushed memtable data.
|
|
1713
|
+
// Default: false
|
|
1714
|
+
bool disableWAL;
|
|
1715
|
+
|
|
1716
|
+
// If true and if user is trying to write to column families that don't exist
|
|
1717
|
+
// (they were dropped), ignore the write (don't return an error). If there
|
|
1718
|
+
// are multiple writes in a WriteBatch, other writes will succeed.
|
|
1719
|
+
// Default: false
|
|
1720
|
+
bool ignore_missing_column_families;
|
|
1721
|
+
|
|
1722
|
+
// If true and we need to wait or sleep for the write request, fails
|
|
1723
|
+
// immediately with Status::Incomplete().
|
|
1724
|
+
// Default: false
|
|
1725
|
+
bool no_slowdown;
|
|
1726
|
+
|
|
1727
|
+
// If true, this write request is of lower priority if compaction is
|
|
1728
|
+
// behind. In this case, no_slowdown = true, the request will be canceled
|
|
1729
|
+
// immediately with Status::Incomplete() returned. Otherwise, it will be
|
|
1730
|
+
// slowed down. The slowdown value is determined by RocksDB to guarantee
|
|
1731
|
+
// it introduces minimum impacts to high priority writes.
|
|
1732
|
+
//
|
|
1733
|
+
// Default: false
|
|
1734
|
+
bool low_pri;
|
|
1735
|
+
|
|
1736
|
+
// If true, this writebatch will maintain the last insert positions of each
|
|
1737
|
+
// memtable as hints in concurrent write. It can improve write performance
|
|
1738
|
+
// in concurrent writes if keys in one writebatch are sequential. In
|
|
1739
|
+
// non-concurrent writes (when concurrent_memtable_writes is false) this
|
|
1740
|
+
// option will be ignored.
|
|
1741
|
+
//
|
|
1742
|
+
// Default: false
|
|
1743
|
+
bool memtable_insert_hint_per_batch;
|
|
1744
|
+
|
|
1745
|
+
// For writes associated with this option, charge the internal rate
|
|
1746
|
+
// limiter (see `DBOptions::rate_limiter`) at the specified priority. The
|
|
1747
|
+
// special value `Env::IO_TOTAL` disables charging the rate limiter.
|
|
1748
|
+
//
|
|
1749
|
+
// Currently the support covers automatic WAL flushes, which happen during
|
|
1750
|
+
// live updates (`Put()`, `Write()`, `Delete()`, etc.)
|
|
1751
|
+
// when `WriteOptions::disableWAL == false`
|
|
1752
|
+
// and `DBOptions::manual_wal_flush == false`.
|
|
1753
|
+
//
|
|
1754
|
+
// Only `Env::IO_USER` and `Env::IO_TOTAL` are allowed
|
|
1755
|
+
// due to implementation constraints.
|
|
1756
|
+
//
|
|
1757
|
+
// Default: `Env::IO_TOTAL`
|
|
1758
|
+
Env::IOPriority rate_limiter_priority;
|
|
1759
|
+
|
|
1760
|
+
// `protection_bytes_per_key` is the number of bytes used to store
|
|
1761
|
+
// protection information for each key entry. Currently supported values are
|
|
1762
|
+
// zero (disabled) and eight.
|
|
1763
|
+
//
|
|
1764
|
+
// Default: zero (disabled).
|
|
1765
|
+
size_t protection_bytes_per_key;
|
|
1766
|
+
|
|
1767
|
+
WriteOptions()
|
|
1768
|
+
: sync(false),
|
|
1769
|
+
disableWAL(false),
|
|
1770
|
+
ignore_missing_column_families(false),
|
|
1771
|
+
no_slowdown(false),
|
|
1772
|
+
low_pri(false),
|
|
1773
|
+
memtable_insert_hint_per_batch(false),
|
|
1774
|
+
rate_limiter_priority(Env::IO_TOTAL),
|
|
1775
|
+
protection_bytes_per_key(0) {}
|
|
1776
|
+
};
|
|
1777
|
+
|
|
1778
|
+
// Options that control flush operations
|
|
1779
|
+
struct FlushOptions {
|
|
1780
|
+
// If true, the flush will wait until the flush is done.
|
|
1781
|
+
// Default: true
|
|
1782
|
+
bool wait;
|
|
1783
|
+
// If true, the flush would proceed immediately even it means writes will
|
|
1784
|
+
// stall for the duration of the flush; if false the operation will wait
|
|
1785
|
+
// until it's possible to do flush w/o causing stall or until required flush
|
|
1786
|
+
// is performed by someone else (foreground call or background thread).
|
|
1787
|
+
// Default: false
|
|
1788
|
+
bool allow_write_stall;
|
|
1789
|
+
FlushOptions() : wait(true), allow_write_stall(false) {}
|
|
1790
|
+
};
|
|
1791
|
+
|
|
1792
|
+
// Create a Logger from provided DBOptions
|
|
1793
|
+
extern Status CreateLoggerFromOptions(const std::string& dbname,
|
|
1794
|
+
const DBOptions& options,
|
|
1795
|
+
std::shared_ptr<Logger>* logger);
|
|
1796
|
+
|
|
1797
|
+
// CompactionOptions are used in CompactFiles() call.
|
|
1798
|
+
struct CompactionOptions {
|
|
1799
|
+
// Compaction output compression type
|
|
1800
|
+
// Default: snappy
|
|
1801
|
+
// If set to `kDisableCompressionOption`, RocksDB will choose compression type
|
|
1802
|
+
// according to the `ColumnFamilyOptions`, taking into account the output
|
|
1803
|
+
// level if `compression_per_level` is specified.
|
|
1804
|
+
CompressionType compression;
|
|
1805
|
+
// Compaction will create files of size `output_file_size_limit`.
|
|
1806
|
+
// Default: MAX, which means that compaction will create a single file
|
|
1807
|
+
uint64_t output_file_size_limit;
|
|
1808
|
+
// If > 0, it will replace the option in the DBOptions for this compaction.
|
|
1809
|
+
uint32_t max_subcompactions;
|
|
1810
|
+
|
|
1811
|
+
CompactionOptions()
|
|
1812
|
+
: compression(kSnappyCompression),
|
|
1813
|
+
output_file_size_limit(std::numeric_limits<uint64_t>::max()),
|
|
1814
|
+
max_subcompactions(0) {}
|
|
1815
|
+
};
|
|
1816
|
+
|
|
1817
|
+
// For level based compaction, we can configure if we want to skip/force
|
|
1818
|
+
// bottommost level compaction.
|
|
1819
|
+
enum class BottommostLevelCompaction {
|
|
1820
|
+
// Skip bottommost level compaction
|
|
1821
|
+
kSkip,
|
|
1822
|
+
// Only compact bottommost level if there is a compaction filter
|
|
1823
|
+
// This is the default option
|
|
1824
|
+
kIfHaveCompactionFilter,
|
|
1825
|
+
// Always compact bottommost level
|
|
1826
|
+
kForce,
|
|
1827
|
+
// Always compact bottommost level but in bottommost level avoid
|
|
1828
|
+
// double-compacting files created in the same compaction
|
|
1829
|
+
kForceOptimized,
|
|
1830
|
+
};
|
|
1831
|
+
|
|
1832
|
+
// For manual compaction, we can configure if we want to skip/force garbage
|
|
1833
|
+
// collection of blob files.
|
|
1834
|
+
enum class BlobGarbageCollectionPolicy {
|
|
1835
|
+
// Force blob file garbage collection.
|
|
1836
|
+
kForce,
|
|
1837
|
+
// Skip blob file garbage collection.
|
|
1838
|
+
kDisable,
|
|
1839
|
+
// Inherit blob file garbage collection policy from ColumnFamilyOptions.
|
|
1840
|
+
kUseDefault,
|
|
1841
|
+
};
|
|
1842
|
+
|
|
1843
|
+
// CompactRangeOptions is used by CompactRange() call.
|
|
1844
|
+
struct CompactRangeOptions {
|
|
1845
|
+
// If true, no other compaction will run at the same time as this
|
|
1846
|
+
// manual compaction.
|
|
1847
|
+
//
|
|
1848
|
+
// Default: false
|
|
1849
|
+
bool exclusive_manual_compaction = false;
|
|
1850
|
+
|
|
1851
|
+
// If true, compacted files will be moved to the minimum level capable
|
|
1852
|
+
// of holding the data or given level (specified non-negative target_level).
|
|
1853
|
+
bool change_level = false;
|
|
1854
|
+
// If change_level is true and target_level have non-negative value, compacted
|
|
1855
|
+
// files will be moved to target_level.
|
|
1856
|
+
int target_level = -1;
|
|
1857
|
+
// Compaction outputs will be placed in options.db_paths[target_path_id].
|
|
1858
|
+
// Behavior is undefined if target_path_id is out of range.
|
|
1859
|
+
uint32_t target_path_id = 0;
|
|
1860
|
+
// By default level based compaction will only compact the bottommost level
|
|
1861
|
+
// if there is a compaction filter
|
|
1862
|
+
BottommostLevelCompaction bottommost_level_compaction =
|
|
1863
|
+
BottommostLevelCompaction::kIfHaveCompactionFilter;
|
|
1864
|
+
// If true, will execute immediately even if doing so would cause the DB to
|
|
1865
|
+
// enter write stall mode. Otherwise, it'll sleep until load is low enough.
|
|
1866
|
+
bool allow_write_stall = false;
|
|
1867
|
+
// If > 0, it will replace the option in the DBOptions for this compaction.
|
|
1868
|
+
uint32_t max_subcompactions = 0;
|
|
1869
|
+
// Set user-defined timestamp low bound, the data with older timestamp than
|
|
1870
|
+
// low bound maybe GCed by compaction. Default: nullptr
|
|
1871
|
+
const Slice* full_history_ts_low = nullptr;
|
|
1872
|
+
|
|
1873
|
+
// Allows cancellation of an in-progress manual compaction.
|
|
1874
|
+
//
|
|
1875
|
+
// Cancellation can be delayed waiting on automatic compactions when used
|
|
1876
|
+
// together with `exclusive_manual_compaction == true`.
|
|
1877
|
+
std::atomic<bool>* canceled = nullptr;
|
|
1878
|
+
// NOTE: Calling DisableManualCompaction() overwrites the uer-provided
|
|
1879
|
+
// canceled variable in CompactRangeOptions.
|
|
1880
|
+
// Typically, when CompactRange is being called in one thread (t1) with
|
|
1881
|
+
// canceled = false, and DisableManualCompaction is being called in the
|
|
1882
|
+
// other thread (t2), manual compaction is disabled normally, even if the
|
|
1883
|
+
// compaction iterator may still scan a few items before *canceled is
|
|
1884
|
+
// set to true
|
|
1885
|
+
|
|
1886
|
+
// If set to kForce, RocksDB will override enable_blob_file_garbage_collection
|
|
1887
|
+
// to true; if set to kDisable, RocksDB will override it to false, and
|
|
1888
|
+
// kUseDefault leaves the setting in effect. This enables customers to both
|
|
1889
|
+
// force-enable and force-disable GC when calling CompactRange.
|
|
1890
|
+
BlobGarbageCollectionPolicy blob_garbage_collection_policy =
|
|
1891
|
+
BlobGarbageCollectionPolicy::kUseDefault;
|
|
1892
|
+
|
|
1893
|
+
// If set to < 0 or > 1, RocksDB leaves blob_garbage_collection_age_cutoff
|
|
1894
|
+
// from ColumnFamilyOptions in effect. Otherwise, it will override the
|
|
1895
|
+
// user-provided setting. This enables customers to selectively override the
|
|
1896
|
+
// age cutoff.
|
|
1897
|
+
double blob_garbage_collection_age_cutoff = -1;
|
|
1898
|
+
};
|
|
1899
|
+
|
|
1900
|
+
// IngestExternalFileOptions is used by IngestExternalFile()
|
|
1901
|
+
struct IngestExternalFileOptions {
|
|
1902
|
+
// Can be set to true to move the files instead of copying them.
|
|
1903
|
+
bool move_files = false;
|
|
1904
|
+
// If set to true, ingestion falls back to copy when move fails.
|
|
1905
|
+
bool failed_move_fall_back_to_copy = true;
|
|
1906
|
+
// If set to false, an ingested file keys could appear in existing snapshots
|
|
1907
|
+
// that where created before the file was ingested.
|
|
1908
|
+
bool snapshot_consistency = true;
|
|
1909
|
+
// If set to false, IngestExternalFile() will fail if the file key range
|
|
1910
|
+
// overlaps with existing keys or tombstones or output of ongoing compaction
|
|
1911
|
+
// during file ingestion in the DB (the conditions under which a global_seqno
|
|
1912
|
+
// must be assigned to the ingested file).
|
|
1913
|
+
bool allow_global_seqno = true;
|
|
1914
|
+
// If set to false and the file key range overlaps with the memtable key range
|
|
1915
|
+
// (memtable flush required), IngestExternalFile will fail.
|
|
1916
|
+
bool allow_blocking_flush = true;
|
|
1917
|
+
// Set to true if you would like duplicate keys in the file being ingested
|
|
1918
|
+
// to be skipped rather than overwriting existing data under that key.
|
|
1919
|
+
// Use case: back-fill of some historical data in the database without
|
|
1920
|
+
// over-writing existing newer version of data.
|
|
1921
|
+
// This option could only be used if the DB has been running
|
|
1922
|
+
// with allow_ingest_behind=true since the dawn of time.
|
|
1923
|
+
// All files will be ingested at the bottommost level with seqno=0.
|
|
1924
|
+
bool ingest_behind = false;
|
|
1925
|
+
// DEPRECATED - Set to true if you would like to write global_seqno to
|
|
1926
|
+
// the external SST file on ingestion for backward compatibility before
|
|
1927
|
+
// RocksDB 5.16.0. Such old versions of RocksDB expect any global_seqno to
|
|
1928
|
+
// be written to the SST file rather than recorded in the DB manifest.
|
|
1929
|
+
// This functionality was deprecated because (a) random writes might be
|
|
1930
|
+
// costly or unsupported on some FileSystems, and (b) the file checksum
|
|
1931
|
+
// changes with such a write.
|
|
1932
|
+
bool write_global_seqno = false;
|
|
1933
|
+
// Set to true if you would like to verify the checksums of each block of the
|
|
1934
|
+
// external SST file before ingestion.
|
|
1935
|
+
// Warning: setting this to true causes slowdown in file ingestion because
|
|
1936
|
+
// the external SST file has to be read.
|
|
1937
|
+
bool verify_checksums_before_ingest = false;
|
|
1938
|
+
// When verify_checksums_before_ingest = true, RocksDB uses default
|
|
1939
|
+
// readahead setting to scan the file while verifying checksums before
|
|
1940
|
+
// ingestion.
|
|
1941
|
+
// Users can override the default value using this option.
|
|
1942
|
+
// Using a large readahead size (> 2MB) can typically improve the performance
|
|
1943
|
+
// of forward iteration on spinning disks.
|
|
1944
|
+
size_t verify_checksums_readahead_size = 0;
|
|
1945
|
+
// Set to TRUE if user wants to verify the sst file checksum of ingested
|
|
1946
|
+
// files. The DB checksum function will generate the checksum of each
|
|
1947
|
+
// ingested file (if file_checksum_gen_factory is set) and compare the
|
|
1948
|
+
// checksum function name and checksum with the ingested checksum information.
|
|
1949
|
+
//
|
|
1950
|
+
// If this option is set to True: 1) if DB does not enable checksum
|
|
1951
|
+
// (file_checksum_gen_factory == nullptr), the ingested checksum information
|
|
1952
|
+
// will be ignored; 2) If DB enable the checksum function, we calculate the
|
|
1953
|
+
// sst file checksum after the file is moved or copied and compare the
|
|
1954
|
+
// checksum and checksum name. If checksum or checksum function name does
|
|
1955
|
+
// not match, ingestion will be failed. If the verification is successful,
|
|
1956
|
+
// checksum and checksum function name will be stored in Manifest.
|
|
1957
|
+
// If this option is set to FALSE, 1) if DB does not enable checksum,
|
|
1958
|
+
// the ingested checksum information will be ignored; 2) if DB enable the
|
|
1959
|
+
// checksum, we only verify the ingested checksum function name and we
|
|
1960
|
+
// trust the ingested checksum. If the checksum function name matches, we
|
|
1961
|
+
// store the checksum in Manifest. DB does not calculate the checksum during
|
|
1962
|
+
// ingestion. However, if no checksum information is provided with the
|
|
1963
|
+
// ingested files, DB will generate the checksum and store in the Manifest.
|
|
1964
|
+
bool verify_file_checksum = true;
|
|
1965
|
+
// Set to TRUE if user wants file to be ingested to the bottommost level. An
|
|
1966
|
+
// error of Status::TryAgain() will be returned if a file cannot fit in the
|
|
1967
|
+
// bottommost level when calling
|
|
1968
|
+
// DB::IngestExternalFile()/DB::IngestExternalFiles(). The user should clear
|
|
1969
|
+
// the bottommost level in the overlapping range before re-attempt.
|
|
1970
|
+
//
|
|
1971
|
+
// ingest_behind takes precedence over fail_if_not_bottommost_level.
|
|
1972
|
+
bool fail_if_not_bottommost_level = false;
|
|
1973
|
+
};
|
|
1974
|
+
|
|
1975
|
+
enum TraceFilterType : uint64_t {
|
|
1976
|
+
// Trace all the operations
|
|
1977
|
+
kTraceFilterNone = 0x0,
|
|
1978
|
+
// Do not trace the get operations
|
|
1979
|
+
kTraceFilterGet = 0x1 << 0,
|
|
1980
|
+
// Do not trace the write operations
|
|
1981
|
+
kTraceFilterWrite = 0x1 << 1,
|
|
1982
|
+
// Do not trace the `Iterator::Seek()` operations
|
|
1983
|
+
kTraceFilterIteratorSeek = 0x1 << 2,
|
|
1984
|
+
// Do not trace the `Iterator::SeekForPrev()` operations
|
|
1985
|
+
kTraceFilterIteratorSeekForPrev = 0x1 << 3,
|
|
1986
|
+
// Do not trace the `MultiGet()` operations
|
|
1987
|
+
kTraceFilterMultiGet = 0x1 << 4,
|
|
1988
|
+
};
|
|
1989
|
+
|
|
1990
|
+
// TraceOptions is used for StartTrace
|
|
1991
|
+
struct TraceOptions {
|
|
1992
|
+
// To avoid the trace file size grows large than the storage space,
|
|
1993
|
+
// user can set the max trace file size in Bytes. Default is 64GB
|
|
1994
|
+
uint64_t max_trace_file_size = uint64_t{64} * 1024 * 1024 * 1024;
|
|
1995
|
+
// Specify trace sampling option, i.e. capture one per how many requests.
|
|
1996
|
+
// Default to 1 (capture every request).
|
|
1997
|
+
uint64_t sampling_frequency = 1;
|
|
1998
|
+
// Note: The filtering happens before sampling.
|
|
1999
|
+
uint64_t filter = kTraceFilterNone;
|
|
2000
|
+
// When true, the order of write records in the trace will match the order of
|
|
2001
|
+
// the corresponding write records in the WAL and applied to the DB. There may
|
|
2002
|
+
// be a performance penalty associated with preserving this ordering.
|
|
2003
|
+
//
|
|
2004
|
+
// Default: false. This means write records in the trace may be in an order
|
|
2005
|
+
// different from the WAL's order.
|
|
2006
|
+
bool preserve_write_order = false;
|
|
2007
|
+
};
|
|
2008
|
+
|
|
2009
|
+
// ImportColumnFamilyOptions is used by ImportColumnFamily()
|
|
2010
|
+
struct ImportColumnFamilyOptions {
|
|
2011
|
+
// Can be set to true to move the files instead of copying them.
|
|
2012
|
+
bool move_files = false;
|
|
2013
|
+
};
|
|
2014
|
+
|
|
2015
|
+
// Options used with DB::GetApproximateSizes()
|
|
2016
|
+
struct SizeApproximationOptions {
|
|
2017
|
+
// Defines whether the returned size should include the recently written
|
|
2018
|
+
// data in the memtables. If set to false, include_files must be true.
|
|
2019
|
+
bool include_memtables = false;
|
|
2020
|
+
// Defines whether the returned size should include data serialized to disk.
|
|
2021
|
+
// If set to false, include_memtables must be true.
|
|
2022
|
+
bool include_files = true;
|
|
2023
|
+
// When approximating the files total size that is used to store a keys range
|
|
2024
|
+
// using DB::GetApproximateSizes, allow approximation with an error margin of
|
|
2025
|
+
// up to total_files_size * files_size_error_margin. This allows to take some
|
|
2026
|
+
// shortcuts in files size approximation, resulting in better performance,
|
|
2027
|
+
// while guaranteeing the resulting error is within a reasonable margin.
|
|
2028
|
+
// E.g., if the value is 0.1, then the error margin of the returned files size
|
|
2029
|
+
// approximation will be within 10%.
|
|
2030
|
+
// If the value is non-positive - a more precise yet more CPU intensive
|
|
2031
|
+
// estimation is performed.
|
|
2032
|
+
double files_size_error_margin = -1.0;
|
|
2033
|
+
};
|
|
2034
|
+
|
|
2035
|
+
struct CompactionServiceOptionsOverride {
|
|
2036
|
+
// Currently pointer configurations are not passed to compaction service
|
|
2037
|
+
// compaction so the user needs to set it. It will be removed once pointer
|
|
2038
|
+
// configuration passing is supported.
|
|
2039
|
+
Env* env = Env::Default();
|
|
2040
|
+
std::shared_ptr<FileChecksumGenFactory> file_checksum_gen_factory = nullptr;
|
|
2041
|
+
|
|
2042
|
+
const Comparator* comparator = BytewiseComparator();
|
|
2043
|
+
std::shared_ptr<MergeOperator> merge_operator = nullptr;
|
|
2044
|
+
const CompactionFilter* compaction_filter = nullptr;
|
|
2045
|
+
std::shared_ptr<CompactionFilterFactory> compaction_filter_factory = nullptr;
|
|
2046
|
+
std::shared_ptr<const SliceTransform> prefix_extractor = nullptr;
|
|
2047
|
+
std::shared_ptr<TableFactory> table_factory;
|
|
2048
|
+
std::shared_ptr<SstPartitionerFactory> sst_partitioner_factory = nullptr;
|
|
2049
|
+
|
|
2050
|
+
// Only subsets of events are triggered in remote compaction worker, like:
|
|
2051
|
+
// `OnTableFileCreated`, `OnTableFileCreationStarted`,
|
|
2052
|
+
// `ShouldBeNotifiedOnFileIO` `OnSubcompactionBegin`,
|
|
2053
|
+
// `OnSubcompactionCompleted`, etc. Worth mentioning, `OnCompactionBegin` and
|
|
2054
|
+
// `OnCompactionCompleted` won't be triggered. They will be triggered on the
|
|
2055
|
+
// primary DB side.
|
|
2056
|
+
std::vector<std::shared_ptr<EventListener>> listeners;
|
|
2057
|
+
|
|
2058
|
+
// statistics is used to collect DB operation metrics, the metrics won't be
|
|
2059
|
+
// returned to CompactionService primary host, to collect that, the user needs
|
|
2060
|
+
// to set it here.
|
|
2061
|
+
std::shared_ptr<Statistics> statistics = nullptr;
|
|
2062
|
+
|
|
2063
|
+
// Only compaction generated SST files use this user defined table properties
|
|
2064
|
+
// collector.
|
|
2065
|
+
std::vector<std::shared_ptr<TablePropertiesCollectorFactory>>
|
|
2066
|
+
table_properties_collector_factories;
|
|
2067
|
+
};
|
|
2068
|
+
|
|
2069
|
+
struct OpenAndCompactOptions {
|
|
2070
|
+
// Allows cancellation of an in-progress compaction.
|
|
2071
|
+
std::atomic<bool>* canceled = nullptr;
|
|
2072
|
+
};
|
|
2073
|
+
|
|
2074
|
+
struct LiveFilesStorageInfoOptions {
|
|
2075
|
+
// Whether to populate FileStorageInfo::file_checksum* or leave blank
|
|
2076
|
+
bool include_checksum_info = false;
|
|
2077
|
+
// Flushes memtables if total size in bytes of live WAL files is >= this
|
|
2078
|
+
// number (and DB is not read-only).
|
|
2079
|
+
// Default: always force a flush without checking sizes.
|
|
2080
|
+
uint64_t wal_size_for_flush = 0;
|
|
2081
|
+
};
|
|
2082
|
+
|
|
2083
|
+
} // namespace ROCKSDB_NAMESPACE
|