@nxtedition/rocksdb 8.2.8 → 9.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/deps/rocksdb/rocksdb/CMakeLists.txt +7 -1
- package/deps/rocksdb/rocksdb/Makefile +22 -19
- package/deps/rocksdb/rocksdb/TARGETS +8 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +157 -61
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +43 -92
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +632 -455
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +244 -149
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +41 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +11 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +216 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +279 -199
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +159 -8
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +28 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +8 -0
- package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +3 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +18 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +1 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/builder.cc +32 -7
- package/deps/rocksdb/rocksdb/db/c.cc +169 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +104 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +98 -47
- package/deps/rocksdb/rocksdb/db/column_family.h +25 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +213 -2
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +93 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +33 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +7 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +17 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +107 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +25 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +13 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +29 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +24 -31
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +19 -19
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +20 -3
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +15 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +17 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +17 -3
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +15 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +666 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +274 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +40 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +250 -116
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +51 -23
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +354 -96
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +50 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +26 -13
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +61 -21
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +8 -87
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +7 -1
- package/deps/rocksdb/rocksdb/db/db_iter.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +39 -29
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +106 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +12 -3
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +279 -166
- package/deps/rocksdb/rocksdb/db/db_test.cc +48 -21
- package/deps/rocksdb/rocksdb/db/db_test2.cc +81 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +14 -6
- package/deps/rocksdb/rocksdb/db/db_test_util.h +40 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +13 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +233 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/dbformat.cc +36 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +169 -20
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +129 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +16 -0
- package/deps/rocksdb/rocksdb/db/error_handler.h +6 -3
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +4 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +17 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -4
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +2 -4
- package/deps/rocksdb/rocksdb/db/flush_job.cc +101 -11
- package/deps/rocksdb/rocksdb/db/flush_job.h +24 -1
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +88 -11
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +2 -3
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +159 -91
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +19 -10
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +143 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/log_reader.h +3 -2
- package/deps/rocksdb/rocksdb/db/log_test.cc +17 -21
- package/deps/rocksdb/rocksdb/db/log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/log_writer.h +3 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +4 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +52 -13
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +44 -10
- package/deps/rocksdb/rocksdb/db/memtable_list.h +32 -1
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +21 -4
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/table_cache.cc +44 -35
- package/deps/rocksdb/rocksdb/db/table_cache.h +6 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -2
- package/deps/rocksdb/rocksdb/db/version_builder.cc +0 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +236 -204
- package/deps/rocksdb/rocksdb/db/version_edit.cc +66 -4
- package/deps/rocksdb/rocksdb/db/version_edit.h +48 -6
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +80 -8
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +12 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +86 -17
- package/deps/rocksdb/rocksdb/db/version_set.cc +136 -41
- package/deps/rocksdb/rocksdb/db/version_set.h +28 -7
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +25 -15
- package/deps/rocksdb/rocksdb/db/write_batch.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +3 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +16 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +22 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +42 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +32 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +7 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +247 -120
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +2 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +15 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +264 -69
- package/deps/rocksdb/rocksdb/env/env.cc +1 -2
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +11 -165
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +0 -17
- package/deps/rocksdb/rocksdb/env/env_posix.cc +6 -2
- package/deps/rocksdb/rocksdb/env/env_test.cc +86 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +6 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +78 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +34 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +15 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +52 -43
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +34 -18
- package/deps/rocksdb/rocksdb/file/file_util.cc +10 -5
- package/deps/rocksdb/rocksdb/file/file_util.h +13 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +724 -79
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +64 -33
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -16
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +23 -12
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +153 -88
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +70 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +50 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +16 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +55 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +32 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +90 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +85 -17
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +13 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +21 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +0 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +2 -1
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +16 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +10 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +19 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +10 -2
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +2 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +7 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +1 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +6 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +11 -3
- package/deps/rocksdb/rocksdb/options/options_test.cc +8 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +27 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/src.mk +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +48 -22
- package/deps/rocksdb/rocksdb/table/block_based/block.h +60 -12
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +115 -42
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +6 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +60 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +62 -44
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +36 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +38 -15
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +219 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +41 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -21
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +195 -55
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +31 -16
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +97 -58
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +27 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +114 -70
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +15 -3
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +6 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +11 -11
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +3 -0
- package/deps/rocksdb/rocksdb/table/compaction_merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +6 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/format.cc +175 -33
- package/deps/rocksdb/rocksdb/table/format.h +63 -10
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +10 -2
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +12 -4
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +1 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +8 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +10 -5
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +10 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +1 -2
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +3 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +12 -3
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +26 -1
- package/deps/rocksdb/rocksdb/table/table_builder.h +6 -2
- package/deps/rocksdb/rocksdb/table/table_properties.cc +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +19 -7
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +29 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +19 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +65 -26
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +8 -5
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +0 -1
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +4 -0
- package/deps/rocksdb/rocksdb/unreleased_history/README.txt +73 -0
- package/deps/rocksdb/rocksdb/unreleased_history/add.sh +27 -0
- package/deps/rocksdb/rocksdb/unreleased_history/behavior_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/bug_fixes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/new_features/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/performance_improvements/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/public_api_changes/.gitkeep +0 -0
- package/deps/rocksdb/rocksdb/unreleased_history/release.sh +104 -0
- package/deps/rocksdb/rocksdb/util/async_file_reader.cc +5 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +3 -3
- package/deps/rocksdb/rocksdb/util/cast_util.h +14 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +29 -7
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +110 -32
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +4 -4
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +3 -0
- package/deps/rocksdb/rocksdb/util/hash.h +7 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +44 -0
- package/deps/rocksdb/rocksdb/util/math.h +58 -6
- package/deps/rocksdb/rocksdb/util/math128.h +29 -7
- package/deps/rocksdb/rocksdb/util/mutexlock.h +35 -27
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- package/deps/rocksdb/rocksdb/util/thread_operation.h +8 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +343 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +173 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +447 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.cc +25 -0
- package/deps/rocksdb/rocksdb/util/write_batch_util.h +80 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +69 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +6 -11
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +1 -2
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +2 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +23 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +9 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +37 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +231 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +76 -20
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +18 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +40 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +13 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +7 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +41 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +71 -24
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +19 -4
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +60 -107
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +39 -11
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +14 -8
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +10 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +6 -6
- package/deps/rocksdb/rocksdb.gyp +2 -0
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
|
|
16
16
|
#include "db/blob/blob_file_builder.h"
|
|
17
17
|
#include "db/compaction/compaction_iterator.h"
|
|
18
|
+
#include "db/dbformat.h"
|
|
18
19
|
#include "db/event_helpers.h"
|
|
19
20
|
#include "db/internal_stats.h"
|
|
20
21
|
#include "db/merge_helper.h"
|
|
@@ -202,24 +203,42 @@ Status BuildTable(
|
|
|
202
203
|
blob_file_builder.get(), ioptions.allow_data_in_errors,
|
|
203
204
|
ioptions.enforce_single_del_contracts,
|
|
204
205
|
/*manual_compaction_canceled=*/kManualCompactionCanceledFalse,
|
|
206
|
+
true /* must_count_input_entries */,
|
|
205
207
|
/*compaction=*/nullptr, compaction_filter.get(),
|
|
206
208
|
/*shutting_down=*/nullptr, db_options.info_log, full_history_ts_low);
|
|
207
209
|
|
|
210
|
+
const size_t ts_sz = ucmp->timestamp_size();
|
|
211
|
+
const bool strip_timestamp =
|
|
212
|
+
ts_sz > 0 && !ioptions.persist_user_defined_timestamps;
|
|
213
|
+
|
|
214
|
+
std::string key_after_flush_buf;
|
|
208
215
|
c_iter.SeekToFirst();
|
|
209
216
|
for (; c_iter.Valid(); c_iter.Next()) {
|
|
210
217
|
const Slice& key = c_iter.key();
|
|
211
218
|
const Slice& value = c_iter.value();
|
|
212
219
|
const ParsedInternalKey& ikey = c_iter.ikey();
|
|
213
|
-
|
|
214
|
-
//
|
|
215
|
-
//
|
|
216
|
-
|
|
220
|
+
Slice key_after_flush = key;
|
|
221
|
+
// If user defined timestamps will be stripped from user key after flush,
|
|
222
|
+
// the in memory version of the key act logically the same as one with a
|
|
223
|
+
// minimum timestamp. We update the timestamp here so file boundary and
|
|
224
|
+
// output validator, block builder all see the effect of the stripping.
|
|
225
|
+
if (strip_timestamp) {
|
|
226
|
+
key_after_flush_buf.clear();
|
|
227
|
+
ReplaceInternalKeyWithMinTimestamp(&key_after_flush_buf, key, ts_sz);
|
|
228
|
+
key_after_flush = key_after_flush_buf;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// Generate a rolling 64-bit hash of the key and values
|
|
232
|
+
// Note :
|
|
233
|
+
// Here "key" integrates 'sequence_number'+'kType'+'user key'.
|
|
234
|
+
s = output_validator.Add(key_after_flush, value);
|
|
217
235
|
if (!s.ok()) {
|
|
218
236
|
break;
|
|
219
237
|
}
|
|
220
|
-
builder->Add(
|
|
238
|
+
builder->Add(key_after_flush, value);
|
|
221
239
|
|
|
222
|
-
s = meta->UpdateBoundaries(
|
|
240
|
+
s = meta->UpdateBoundaries(key_after_flush, value, ikey.sequence,
|
|
241
|
+
ikey.type);
|
|
223
242
|
if (!s.ok()) {
|
|
224
243
|
break;
|
|
225
244
|
}
|
|
@@ -244,6 +263,7 @@ Status BuildTable(
|
|
|
244
263
|
range_del_it->Next()) {
|
|
245
264
|
auto tombstone = range_del_it->Tombstone();
|
|
246
265
|
auto kv = tombstone.Serialize();
|
|
266
|
+
// TODO(yuzhangyu): handle range deletion for UDT in memtables only.
|
|
247
267
|
builder->Add(kv.first.Encode(), kv.second);
|
|
248
268
|
InternalKey tombstone_end = tombstone.SerializeEndKey();
|
|
249
269
|
meta->UpdateBoundariesForRange(kv.first, tombstone_end, tombstone.seq_,
|
|
@@ -267,8 +287,9 @@ Status BuildTable(
|
|
|
267
287
|
TEST_SYNC_POINT("BuildTable:BeforeFinishBuildTable");
|
|
268
288
|
const bool empty = builder->IsEmpty();
|
|
269
289
|
if (num_input_entries != nullptr) {
|
|
290
|
+
assert(c_iter.HasNumInputEntryScanned());
|
|
270
291
|
*num_input_entries =
|
|
271
|
-
c_iter.
|
|
292
|
+
c_iter.NumInputEntryScanned() + num_unfragmented_tombstones;
|
|
272
293
|
}
|
|
273
294
|
if (!s.ok() || empty) {
|
|
274
295
|
builder->Abandon();
|
|
@@ -293,6 +314,8 @@ Status BuildTable(
|
|
|
293
314
|
meta->fd.file_size = file_size;
|
|
294
315
|
meta->tail_size = builder->GetTailSize();
|
|
295
316
|
meta->marked_for_compaction = builder->NeedCompact();
|
|
317
|
+
meta->user_defined_timestamps_persisted =
|
|
318
|
+
ioptions.persist_user_defined_timestamps;
|
|
296
319
|
assert(meta->fd.GetFileSize() > 0);
|
|
297
320
|
tp = builder
|
|
298
321
|
->GetTableProperties(); // refresh now that builder is finished
|
|
@@ -352,6 +375,8 @@ Status BuildTable(
|
|
|
352
375
|
s = *io_status;
|
|
353
376
|
}
|
|
354
377
|
|
|
378
|
+
// TODO(yuzhangyu): handle the key copy in the blob when ts should be
|
|
379
|
+
// stripped.
|
|
355
380
|
if (blob_file_builder) {
|
|
356
381
|
if (s.ok()) {
|
|
357
382
|
s = blob_file_builder->Finish();
|
|
@@ -77,6 +77,7 @@ using ROCKSDB_NAMESPACE::EnvOptions;
|
|
|
77
77
|
using ROCKSDB_NAMESPACE::FileLock;
|
|
78
78
|
using ROCKSDB_NAMESPACE::FilterPolicy;
|
|
79
79
|
using ROCKSDB_NAMESPACE::FlushOptions;
|
|
80
|
+
using ROCKSDB_NAMESPACE::HistogramData;
|
|
80
81
|
using ROCKSDB_NAMESPACE::HyperClockCacheOptions;
|
|
81
82
|
using ROCKSDB_NAMESPACE::InfoLogLevel;
|
|
82
83
|
using ROCKSDB_NAMESPACE::IngestExternalFileOptions;
|
|
@@ -279,6 +280,11 @@ struct rocksdb_compactionfiltercontext_t {
|
|
|
279
280
|
CompactionFilter::Context rep;
|
|
280
281
|
};
|
|
281
282
|
|
|
283
|
+
struct rocksdb_statistics_histogram_data_t {
|
|
284
|
+
rocksdb_statistics_histogram_data_t() : rep() {}
|
|
285
|
+
HistogramData rep;
|
|
286
|
+
};
|
|
287
|
+
|
|
282
288
|
struct rocksdb_compactionfilter_t : public CompactionFilter {
|
|
283
289
|
void* state_;
|
|
284
290
|
void (*destructor_)(void*);
|
|
@@ -1057,6 +1063,36 @@ rocksdb_column_family_handle_t* rocksdb_create_column_family(
|
|
|
1057
1063
|
return handle;
|
|
1058
1064
|
}
|
|
1059
1065
|
|
|
1066
|
+
rocksdb_column_family_handle_t** rocksdb_create_column_families(
|
|
1067
|
+
rocksdb_t* db, const rocksdb_options_t* column_family_options,
|
|
1068
|
+
int num_column_families, const char* const* column_family_names,
|
|
1069
|
+
size_t* lencfs, char** errptr) {
|
|
1070
|
+
std::vector<ColumnFamilyHandle*> handles;
|
|
1071
|
+
std::vector<std::string> names;
|
|
1072
|
+
for (int i = 0; i != num_column_families; ++i) {
|
|
1073
|
+
names.push_back(std::string(column_family_names[i]));
|
|
1074
|
+
}
|
|
1075
|
+
SaveError(errptr, db->rep->CreateColumnFamilies(
|
|
1076
|
+
ColumnFamilyOptions(column_family_options->rep), names,
|
|
1077
|
+
&handles));
|
|
1078
|
+
|
|
1079
|
+
*lencfs = handles.size();
|
|
1080
|
+
rocksdb_column_family_handle_t** c_handles =
|
|
1081
|
+
static_cast<rocksdb_column_family_handle_t**>(
|
|
1082
|
+
malloc(sizeof(rocksdb_column_family_handle_t*) * handles.size()));
|
|
1083
|
+
for (size_t i = 0; i != handles.size(); ++i) {
|
|
1084
|
+
c_handles[i] = new rocksdb_column_family_handle_t;
|
|
1085
|
+
c_handles[i]->rep = handles[i];
|
|
1086
|
+
}
|
|
1087
|
+
|
|
1088
|
+
return c_handles;
|
|
1089
|
+
}
|
|
1090
|
+
|
|
1091
|
+
void rocksdb_create_column_families_destroy(
|
|
1092
|
+
rocksdb_column_family_handle_t** list) {
|
|
1093
|
+
free(list);
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1060
1096
|
rocksdb_column_family_handle_t* rocksdb_create_column_family_with_ttl(
|
|
1061
1097
|
rocksdb_t* db, const rocksdb_options_t* column_family_options,
|
|
1062
1098
|
const char* column_family_name, int ttl, char** errptr) {
|
|
@@ -2993,6 +3029,29 @@ void rocksdb_options_enable_statistics(rocksdb_options_t* opt) {
|
|
|
2993
3029
|
opt->rep.statistics = ROCKSDB_NAMESPACE::CreateDBStatistics();
|
|
2994
3030
|
}
|
|
2995
3031
|
|
|
3032
|
+
void rocksdb_options_set_statistics_level(rocksdb_options_t* opt, int level) {
|
|
3033
|
+
if (!opt->rep.statistics) {
|
|
3034
|
+
return;
|
|
3035
|
+
}
|
|
3036
|
+
|
|
3037
|
+
if (level < rocksdb_statistics_level_disable_all) {
|
|
3038
|
+
level = rocksdb_statistics_level_disable_all;
|
|
3039
|
+
}
|
|
3040
|
+
if (level > rocksdb_statistics_level_all) {
|
|
3041
|
+
level = rocksdb_statistics_level_all;
|
|
3042
|
+
}
|
|
3043
|
+
opt->rep.statistics->set_stats_level(
|
|
3044
|
+
static_cast<ROCKSDB_NAMESPACE::StatsLevel>(level));
|
|
3045
|
+
}
|
|
3046
|
+
|
|
3047
|
+
int rocksdb_options_get_statistics_level(rocksdb_options_t* opt) {
|
|
3048
|
+
if (!opt->rep.statistics) {
|
|
3049
|
+
return ROCKSDB_NAMESPACE::StatsLevel::kDisableAll;
|
|
3050
|
+
}
|
|
3051
|
+
|
|
3052
|
+
return static_cast<int>(opt->rep.statistics->get_stats_level());
|
|
3053
|
+
}
|
|
3054
|
+
|
|
2996
3055
|
void rocksdb_options_set_skip_stats_update_on_db_open(rocksdb_options_t* opt,
|
|
2997
3056
|
unsigned char val) {
|
|
2998
3057
|
opt->rep.skip_stats_update_on_db_open = val;
|
|
@@ -3740,16 +3799,21 @@ void rocksdb_options_set_hash_link_list_rep(rocksdb_options_t* opt,
|
|
|
3740
3799
|
ROCKSDB_NAMESPACE::NewHashLinkListRepFactory(bucket_count));
|
|
3741
3800
|
}
|
|
3742
3801
|
|
|
3743
|
-
void rocksdb_options_set_plain_table_factory(
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3802
|
+
void rocksdb_options_set_plain_table_factory(
|
|
3803
|
+
rocksdb_options_t* opt, uint32_t user_key_len, int bloom_bits_per_key,
|
|
3804
|
+
double hash_table_ratio, size_t index_sparseness, size_t huge_page_tlb_size,
|
|
3805
|
+
char encoding_type, unsigned char full_scan_mode,
|
|
3806
|
+
unsigned char store_index_in_file) {
|
|
3748
3807
|
ROCKSDB_NAMESPACE::PlainTableOptions options;
|
|
3749
3808
|
options.user_key_len = user_key_len;
|
|
3750
3809
|
options.bloom_bits_per_key = bloom_bits_per_key;
|
|
3751
3810
|
options.hash_table_ratio = hash_table_ratio;
|
|
3752
3811
|
options.index_sparseness = index_sparseness;
|
|
3812
|
+
options.huge_page_tlb_size = huge_page_tlb_size;
|
|
3813
|
+
options.encoding_type =
|
|
3814
|
+
static_cast<ROCKSDB_NAMESPACE::EncodingType>(encoding_type);
|
|
3815
|
+
options.full_scan_mode = full_scan_mode;
|
|
3816
|
+
options.store_index_in_file = store_index_in_file;
|
|
3753
3817
|
|
|
3754
3818
|
ROCKSDB_NAMESPACE::TableFactory* factory =
|
|
3755
3819
|
ROCKSDB_NAMESPACE::NewPlainTableFactory(options);
|
|
@@ -3827,6 +3891,26 @@ char* rocksdb_options_statistics_get_string(rocksdb_options_t* opt) {
|
|
|
3827
3891
|
return nullptr;
|
|
3828
3892
|
}
|
|
3829
3893
|
|
|
3894
|
+
uint64_t rocksdb_options_statistics_get_ticker_count(rocksdb_options_t* opt,
|
|
3895
|
+
uint32_t ticker_type) {
|
|
3896
|
+
ROCKSDB_NAMESPACE::Statistics* statistics = opt->rep.statistics.get();
|
|
3897
|
+
if (statistics) {
|
|
3898
|
+
return statistics->getTickerCount(ticker_type);
|
|
3899
|
+
}
|
|
3900
|
+
return 0;
|
|
3901
|
+
}
|
|
3902
|
+
|
|
3903
|
+
void rocksdb_options_statistics_get_histogram_data(
|
|
3904
|
+
rocksdb_options_t* opt, uint32_t type,
|
|
3905
|
+
rocksdb_statistics_histogram_data_t* const data) {
|
|
3906
|
+
ROCKSDB_NAMESPACE::Statistics* statistics = opt->rep.statistics.get();
|
|
3907
|
+
if (statistics) {
|
|
3908
|
+
statistics->histogramData(type, &data->rep);
|
|
3909
|
+
} else {
|
|
3910
|
+
*data = rocksdb_statistics_histogram_data_t{};
|
|
3911
|
+
}
|
|
3912
|
+
}
|
|
3913
|
+
|
|
3830
3914
|
void rocksdb_options_set_ratelimiter(rocksdb_options_t* opt,
|
|
3831
3915
|
rocksdb_ratelimiter_t* limiter) {
|
|
3832
3916
|
if (limiter) {
|
|
@@ -3888,6 +3972,15 @@ void rocksdb_options_add_compact_on_deletion_collector_factory(
|
|
|
3888
3972
|
opt->rep.table_properties_collector_factories.emplace_back(compact_on_del);
|
|
3889
3973
|
}
|
|
3890
3974
|
|
|
3975
|
+
void rocksdb_options_add_compact_on_deletion_collector_factory_del_ratio(
|
|
3976
|
+
rocksdb_options_t* opt, size_t window_size, size_t num_dels_trigger,
|
|
3977
|
+
double deletion_ratio) {
|
|
3978
|
+
std::shared_ptr<ROCKSDB_NAMESPACE::TablePropertiesCollectorFactory>
|
|
3979
|
+
compact_on_del = NewCompactOnDeletionCollectorFactory(
|
|
3980
|
+
window_size, num_dels_trigger, deletion_ratio);
|
|
3981
|
+
opt->rep.table_properties_collector_factories.emplace_back(compact_on_del);
|
|
3982
|
+
}
|
|
3983
|
+
|
|
3891
3984
|
void rocksdb_set_perf_level(int v) {
|
|
3892
3985
|
PerfLevel level = static_cast<PerfLevel>(v);
|
|
3893
3986
|
SetPerfLevel(level);
|
|
@@ -5150,7 +5243,8 @@ rocksdb_fifo_compaction_options_t* rocksdb_fifo_compaction_options_create() {
|
|
|
5150
5243
|
}
|
|
5151
5244
|
|
|
5152
5245
|
void rocksdb_fifo_compaction_options_set_allow_compaction(
|
|
5153
|
-
rocksdb_fifo_compaction_options_t* fifo_opts,
|
|
5246
|
+
rocksdb_fifo_compaction_options_t* fifo_opts,
|
|
5247
|
+
unsigned char allow_compaction) {
|
|
5154
5248
|
fifo_opts->rep.allow_compaction = allow_compaction;
|
|
5155
5249
|
}
|
|
5156
5250
|
|
|
@@ -5579,6 +5673,20 @@ int rocksdb_transactiondb_property_int(rocksdb_transactiondb_t* db,
|
|
|
5579
5673
|
}
|
|
5580
5674
|
}
|
|
5581
5675
|
|
|
5676
|
+
rocksdb_t* rocksdb_transactiondb_get_base_db(rocksdb_transactiondb_t* txn_db) {
|
|
5677
|
+
DB* base_db = txn_db->rep->GetBaseDB();
|
|
5678
|
+
|
|
5679
|
+
if (base_db != nullptr) {
|
|
5680
|
+
rocksdb_t* result = new rocksdb_t;
|
|
5681
|
+
result->rep = base_db;
|
|
5682
|
+
return result;
|
|
5683
|
+
}
|
|
5684
|
+
|
|
5685
|
+
return nullptr;
|
|
5686
|
+
}
|
|
5687
|
+
|
|
5688
|
+
void rocksdb_transactiondb_close_base_db(rocksdb_t* base_db) { delete base_db; }
|
|
5689
|
+
|
|
5582
5690
|
rocksdb_transaction_t* rocksdb_transaction_begin(
|
|
5583
5691
|
rocksdb_transactiondb_t* txn_db,
|
|
5584
5692
|
const rocksdb_writeoptions_t* write_options,
|
|
@@ -6556,4 +6664,59 @@ void rocksdb_enable_manual_compaction(rocksdb_t* db) {
|
|
|
6556
6664
|
db->rep->EnableManualCompaction();
|
|
6557
6665
|
}
|
|
6558
6666
|
|
|
6667
|
+
rocksdb_statistics_histogram_data_t*
|
|
6668
|
+
rocksdb_statistics_histogram_data_create() {
|
|
6669
|
+
return new rocksdb_statistics_histogram_data_t{};
|
|
6670
|
+
}
|
|
6671
|
+
|
|
6672
|
+
void rocksdb_statistics_histogram_data_destroy(
|
|
6673
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6674
|
+
delete data;
|
|
6675
|
+
}
|
|
6676
|
+
|
|
6677
|
+
double rocksdb_statistics_histogram_data_get_median(
|
|
6678
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6679
|
+
return data->rep.median;
|
|
6680
|
+
}
|
|
6681
|
+
|
|
6682
|
+
double rocksdb_statistics_histogram_data_get_p95(
|
|
6683
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6684
|
+
return data->rep.percentile95;
|
|
6685
|
+
}
|
|
6686
|
+
|
|
6687
|
+
double rocksdb_statistics_histogram_data_get_p99(
|
|
6688
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6689
|
+
return data->rep.percentile99;
|
|
6690
|
+
}
|
|
6691
|
+
|
|
6692
|
+
double rocksdb_statistics_histogram_data_get_average(
|
|
6693
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6694
|
+
return data->rep.average;
|
|
6695
|
+
}
|
|
6696
|
+
|
|
6697
|
+
double rocksdb_statistics_histogram_data_get_std_dev(
|
|
6698
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6699
|
+
return data->rep.standard_deviation;
|
|
6700
|
+
}
|
|
6701
|
+
|
|
6702
|
+
double rocksdb_statistics_histogram_data_get_max(
|
|
6703
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6704
|
+
return data->rep.max;
|
|
6705
|
+
}
|
|
6706
|
+
|
|
6707
|
+
uint64_t rocksdb_statistics_histogram_data_get_count(
|
|
6708
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6709
|
+
return data->rep.count;
|
|
6710
|
+
}
|
|
6711
|
+
|
|
6712
|
+
uint64_t rocksdb_statistics_histogram_data_get_sum(
|
|
6713
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6714
|
+
return data->rep.sum;
|
|
6715
|
+
}
|
|
6716
|
+
|
|
6717
|
+
double rocksdb_statistics_histogram_data_get_min(
|
|
6718
|
+
rocksdb_statistics_histogram_data_t* data) {
|
|
6719
|
+
return data->rep.min;
|
|
6720
|
+
}
|
|
6721
|
+
|
|
6559
6722
|
} // end extern "C"
|
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
found in the LICENSE file. See the AUTHORS file for names of contributors. */
|
|
4
4
|
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
5
5
|
|
|
6
|
-
#include
|
|
6
|
+
#include "rocksdb/c.h"
|
|
7
7
|
|
|
8
8
|
#include <assert.h>
|
|
9
9
|
#include <stddef.h>
|
|
10
|
+
#include <stdio.h>
|
|
10
11
|
#include <stdlib.h>
|
|
11
12
|
#include <string.h>
|
|
12
13
|
#include <sys/types.h>
|
|
13
|
-
|
|
14
|
-
#include "rocksdb/c.h"
|
|
15
14
|
#ifndef OS_WIN
|
|
16
15
|
#include <unistd.h>
|
|
17
16
|
#endif
|
|
@@ -721,6 +720,8 @@ int main(int argc, char** argv) {
|
|
|
721
720
|
|
|
722
721
|
rocksdb_options_add_compact_on_deletion_collector_factory(options, 10000,
|
|
723
722
|
10001);
|
|
723
|
+
rocksdb_options_add_compact_on_deletion_collector_factory_del_ratio(
|
|
724
|
+
options, 10000, 10001, 0.0);
|
|
724
725
|
|
|
725
726
|
StartPhase("destroy");
|
|
726
727
|
rocksdb_destroy_db(options, dbname, &err);
|
|
@@ -1672,7 +1673,8 @@ int main(int argc, char** argv) {
|
|
|
1672
1673
|
rocksdb_options_set_prefix_extractor(
|
|
1673
1674
|
options, rocksdb_slicetransform_create_fixed_prefix(3));
|
|
1674
1675
|
rocksdb_options_set_hash_skip_list_rep(options, 5000, 4, 4);
|
|
1675
|
-
rocksdb_options_set_plain_table_factory(options, 4, 10, 0.75, 16
|
|
1676
|
+
rocksdb_options_set_plain_table_factory(options, 4, 10, 0.75, 16, 0, 0, 0,
|
|
1677
|
+
0);
|
|
1676
1678
|
rocksdb_options_set_allow_concurrent_memtable_write(options, 0);
|
|
1677
1679
|
|
|
1678
1680
|
db = rocksdb_open(options, dbname, &err);
|
|
@@ -2058,6 +2060,15 @@ int main(int argc, char** argv) {
|
|
|
2058
2060
|
CheckCondition(29.0 ==
|
|
2059
2061
|
rocksdb_options_get_experimental_mempurge_threshold(o));
|
|
2060
2062
|
|
|
2063
|
+
CheckCondition(rocksdb_statistics_level_disable_all ==
|
|
2064
|
+
rocksdb_options_get_statistics_level(o));
|
|
2065
|
+
rocksdb_options_enable_statistics(o);
|
|
2066
|
+
CheckCondition(rocksdb_statistics_level_disable_all !=
|
|
2067
|
+
rocksdb_options_get_statistics_level(o));
|
|
2068
|
+
rocksdb_options_set_statistics_level(o, rocksdb_statistics_level_all);
|
|
2069
|
+
CheckCondition(rocksdb_statistics_level_all ==
|
|
2070
|
+
rocksdb_options_get_statistics_level(o));
|
|
2071
|
+
|
|
2061
2072
|
/* Blob Options */
|
|
2062
2073
|
rocksdb_options_set_enable_blob_files(o, 1);
|
|
2063
2074
|
CheckCondition(1 == rocksdb_options_get_enable_blob_files(o));
|
|
@@ -3119,6 +3130,17 @@ int main(int argc, char** argv) {
|
|
|
3119
3130
|
CheckTxnDBGetCF(txn_db, roptions, cfh, "cf_foo", NULL);
|
|
3120
3131
|
CheckTxnDBPinGetCF(txn_db, roptions, cfh, "cf_foo", NULL);
|
|
3121
3132
|
|
|
3133
|
+
// memory usage
|
|
3134
|
+
rocksdb_t* base_db = rocksdb_transactiondb_get_base_db(txn_db);
|
|
3135
|
+
rocksdb_memory_consumers_t* consumers = rocksdb_memory_consumers_create();
|
|
3136
|
+
rocksdb_memory_consumers_add_db(consumers, base_db);
|
|
3137
|
+
rocksdb_memory_usage_t* usage =
|
|
3138
|
+
rocksdb_approximate_memory_usage_create(consumers, &err);
|
|
3139
|
+
CheckNoError(err);
|
|
3140
|
+
rocksdb_approximate_memory_usage_destroy(usage);
|
|
3141
|
+
rocksdb_memory_consumers_destroy(consumers);
|
|
3142
|
+
rocksdb_transactiondb_close_base_db(base_db);
|
|
3143
|
+
|
|
3122
3144
|
// flush
|
|
3123
3145
|
rocksdb_flushoptions_t* flush_options = rocksdb_flushoptions_create();
|
|
3124
3146
|
rocksdb_flushoptions_set_wait(flush_options, 1);
|
|
@@ -3374,8 +3396,19 @@ int main(int argc, char** argv) {
|
|
|
3374
3396
|
rocksdb_put(db, woptions, "key", 3, "value", 5, &err);
|
|
3375
3397
|
CheckNoError(err);
|
|
3376
3398
|
rocksdb_column_family_handle_t *cfh1, *cfh2;
|
|
3377
|
-
|
|
3378
|
-
|
|
3399
|
+
char** list_const_cf_names = (char**)malloc(2 * sizeof(char*));
|
|
3400
|
+
list_const_cf_names[0] = "txn_db_cf1";
|
|
3401
|
+
list_const_cf_names[1] = "txn_db_cf2";
|
|
3402
|
+
size_t cflen;
|
|
3403
|
+
rocksdb_column_family_handle_t** list_cfh = rocksdb_create_column_families(
|
|
3404
|
+
db, db_options, 2, (const char* const*)list_const_cf_names, &cflen,
|
|
3405
|
+
&err);
|
|
3406
|
+
free(list_const_cf_names);
|
|
3407
|
+
CheckNoError(err);
|
|
3408
|
+
assert(cflen == 2);
|
|
3409
|
+
cfh1 = list_cfh[0];
|
|
3410
|
+
cfh2 = list_cfh[1];
|
|
3411
|
+
rocksdb_create_column_families_destroy(list_cfh);
|
|
3379
3412
|
txn = rocksdb_optimistictransaction_begin(otxn_db, woptions, otxn_options,
|
|
3380
3413
|
NULL);
|
|
3381
3414
|
rocksdb_transaction_put_cf(txn, cfh1, "key_cf1", 7, "val_cf1", 7, &err);
|
|
@@ -3589,6 +3622,71 @@ int main(int argc, char** argv) {
|
|
|
3589
3622
|
rocksdb_readoptions_destroy(ropts);
|
|
3590
3623
|
}
|
|
3591
3624
|
|
|
3625
|
+
StartPhase("statistics");
|
|
3626
|
+
{
|
|
3627
|
+
const uint32_t BYTES_WRITTEN_TICKER = 40;
|
|
3628
|
+
const uint32_t DB_WRITE_HIST = 1;
|
|
3629
|
+
|
|
3630
|
+
rocksdb_statistics_histogram_data_t* hist =
|
|
3631
|
+
rocksdb_statistics_histogram_data_create();
|
|
3632
|
+
{
|
|
3633
|
+
// zero by default
|
|
3634
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_median(hist));
|
|
3635
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p95(hist));
|
|
3636
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p99(hist));
|
|
3637
|
+
CheckCondition(0.0 ==
|
|
3638
|
+
rocksdb_statistics_histogram_data_get_average(hist));
|
|
3639
|
+
CheckCondition(0.0 ==
|
|
3640
|
+
rocksdb_statistics_histogram_data_get_std_dev(hist));
|
|
3641
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_max(hist));
|
|
3642
|
+
CheckCondition(0 == rocksdb_statistics_histogram_data_get_count(hist));
|
|
3643
|
+
CheckCondition(0 == rocksdb_statistics_histogram_data_get_sum(hist));
|
|
3644
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_min(hist));
|
|
3645
|
+
}
|
|
3646
|
+
|
|
3647
|
+
rocksdb_close(db);
|
|
3648
|
+
rocksdb_destroy_db(options, dbname, &err);
|
|
3649
|
+
CheckNoError(err);
|
|
3650
|
+
|
|
3651
|
+
rocksdb_options_enable_statistics(options);
|
|
3652
|
+
rocksdb_options_set_statistics_level(options, rocksdb_statistics_level_all);
|
|
3653
|
+
|
|
3654
|
+
db = rocksdb_open(options, dbname, &err);
|
|
3655
|
+
CheckNoError(err);
|
|
3656
|
+
|
|
3657
|
+
CheckCondition(0 == rocksdb_options_statistics_get_ticker_count(
|
|
3658
|
+
options, BYTES_WRITTEN_TICKER));
|
|
3659
|
+
rocksdb_options_statistics_get_histogram_data(options, DB_WRITE_HIST, hist);
|
|
3660
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_median(hist));
|
|
3661
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p95(hist));
|
|
3662
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_p99(hist));
|
|
3663
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_average(hist));
|
|
3664
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_std_dev(hist));
|
|
3665
|
+
CheckCondition(0.0 == rocksdb_statistics_histogram_data_get_max(hist));
|
|
3666
|
+
CheckCondition(0 == rocksdb_statistics_histogram_data_get_count(hist));
|
|
3667
|
+
CheckCondition(0 == rocksdb_statistics_histogram_data_get_sum(hist));
|
|
3668
|
+
|
|
3669
|
+
int i;
|
|
3670
|
+
for (i = 0; i < 10; ++i) {
|
|
3671
|
+
char key = '0' + (char)i;
|
|
3672
|
+
rocksdb_put(db, woptions, &key, 1, "", 1, &err);
|
|
3673
|
+
CheckNoError(err);
|
|
3674
|
+
}
|
|
3675
|
+
CheckCondition(0 != rocksdb_options_statistics_get_ticker_count(
|
|
3676
|
+
options, BYTES_WRITTEN_TICKER));
|
|
3677
|
+
rocksdb_options_statistics_get_histogram_data(options, DB_WRITE_HIST, hist);
|
|
3678
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_median(hist));
|
|
3679
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_p95(hist));
|
|
3680
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_p99(hist));
|
|
3681
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_average(hist));
|
|
3682
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_std_dev(hist));
|
|
3683
|
+
CheckCondition(0.0 != rocksdb_statistics_histogram_data_get_max(hist));
|
|
3684
|
+
CheckCondition(0 != rocksdb_statistics_histogram_data_get_count(hist));
|
|
3685
|
+
CheckCondition(0 != rocksdb_statistics_histogram_data_get_sum(hist));
|
|
3686
|
+
|
|
3687
|
+
rocksdb_statistics_histogram_data_destroy(hist);
|
|
3688
|
+
}
|
|
3689
|
+
|
|
3592
3690
|
StartPhase("cancel_all_background_work");
|
|
3593
3691
|
rocksdb_cancel_all_background_work(db, 1);
|
|
3594
3692
|
|