@nxtedition/rocksdb 8.2.8 → 9.0.1
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/binding.cc +0 -21
- package/deps/rocksdb/rocksdb/CMakeLists.txt +20 -10
- package/deps/rocksdb/rocksdb/Makefile +37 -25
- package/deps/rocksdb/rocksdb/README.md +29 -0
- package/deps/rocksdb/rocksdb/TARGETS +25 -2
- package/deps/rocksdb/rocksdb/cache/cache.cc +35 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +229 -74
- package/deps/rocksdb/rocksdb/cache/cache_helpers.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +4 -3
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +58 -95
- package/deps/rocksdb/rocksdb/cache/charged_cache.cc +4 -2
- package/deps/rocksdb/rocksdb/cache/charged_cache.h +5 -3
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +2683 -496
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +580 -159
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +145 -42
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +20 -1
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +391 -17
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +7 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +309 -212
- package/deps/rocksdb/rocksdb/cache/secondary_cache.cc +0 -32
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +439 -12
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.h +44 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +11 -1
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +16 -3
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.cc +119 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache.h +155 -0
- package/deps/rocksdb/rocksdb/cache/tiered_secondary_cache_test.cc +711 -0
- package/deps/rocksdb/rocksdb/cache/typed_cache.h +17 -11
- package/deps/rocksdb/rocksdb/crash_test.mk +14 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +28 -12
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +2 -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 +20 -22
- 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/blob/db_blob_basic_test.cc +8 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +7 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +35 -10
- package/deps/rocksdb/rocksdb/db/c.cc +233 -6
- package/deps/rocksdb/rocksdb/db/c_test.c +140 -6
- package/deps/rocksdb/rocksdb/db/column_family.cc +110 -51
- package/deps/rocksdb/rocksdb/db/column_family.h +34 -2
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +314 -7
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +4 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +106 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +47 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +10 -11
- 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 +148 -60
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +22 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +33 -23
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +14 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +11 -11
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +3 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +90 -4
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +170 -95
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +32 -58
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +3 -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 +46 -10
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +13 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +74 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +27 -3
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +850 -44
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +2 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +275 -1
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +52 -19
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +6 -5
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +733 -320
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +155 -66
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +516 -155
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +8 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +2 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +17 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +100 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +95 -50
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +13 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +136 -79
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +6 -95
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +31 -22
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +85 -57
- package/deps/rocksdb/rocksdb/db/db_iter.h +11 -2
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +29 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +276 -21
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +35 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +4 -11
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +193 -7
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +294 -26
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +26 -36
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +364 -0
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +13 -3
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +52 -0
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +74 -1
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +22 -4
- 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 +282 -167
- package/deps/rocksdb/rocksdb/db/db_test.cc +180 -49
- package/deps/rocksdb/rocksdb/db/db_test2.cc +84 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +25 -12
- package/deps/rocksdb/rocksdb/db/db_test_util.h +45 -2
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +14 -1
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +245 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +480 -1
- 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/deletefile_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +67 -34
- package/deps/rocksdb/rocksdb/db/error_handler.h +13 -9
- 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 +144 -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 +105 -17
- package/deps/rocksdb/rocksdb/db/flush_job.h +27 -4
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +90 -12
- 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 +6 -3
- package/deps/rocksdb/rocksdb/db/memtable.cc +70 -83
- package/deps/rocksdb/rocksdb/db/memtable.h +45 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +45 -11
- package/deps/rocksdb/rocksdb/db/memtable_list.h +43 -2
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +91 -5
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +330 -115
- package/deps/rocksdb/rocksdb/db/merge_helper.h +100 -12
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +82 -0
- package/deps/rocksdb/rocksdb/db/merge_test.cc +267 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +5 -2
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.h +4 -4
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +1 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +4 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +4 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +25 -7
- package/deps/rocksdb/rocksdb/db/repair_test.cc +143 -2
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +459 -74
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.cc +105 -69
- package/deps/rocksdb/rocksdb/db/seqno_to_time_mapping.h +83 -46
- package/deps/rocksdb/rocksdb/db/table_cache.cc +76 -54
- package/deps/rocksdb/rocksdb/db/table_cache.h +18 -12
- 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 +58 -10
- 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 +207 -110
- package/deps/rocksdb/rocksdb/db/version_set.h +36 -15
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +2 -5
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +47 -26
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +525 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +6 -22
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +0 -20
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +0 -29
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.cc +46 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper.h +40 -0
- package/deps/rocksdb/rocksdb/db/wide/wide_columns_helper_test.cc +39 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +55 -20
- 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/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +4 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +4 -7
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +88 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +37 -13
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +110 -58
- 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 +68 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +8 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +429 -237
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +13 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +21 -14
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.cc +51 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_wide_merge_operator.h +27 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +3 -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 +29 -38
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +302 -101
- package/deps/rocksdb/rocksdb/env/env.cc +6 -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 +79 -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 +100 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +64 -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 +1225 -97
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +72 -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 +40 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +163 -91
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +112 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +108 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +42 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +92 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +34 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +9 -109
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +91 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +10 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +55 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +130 -22
- package/deps/rocksdb/rocksdb/include/rocksdb/port_defs.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +9 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +92 -9
- 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 +37 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +20 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +6 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +33 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +42 -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/wide_columns.h +53 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +3 -2
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +18 -11
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +4 -3
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +1 -1
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +69 -34
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +22 -1
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +18 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -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 +6 -1
- package/deps/rocksdb/rocksdb/options/db_options.cc +54 -2
- package/deps/rocksdb/rocksdb/options/db_options.h +4 -0
- package/deps/rocksdb/rocksdb/options/options.cc +15 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +18 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +14 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -1
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/README +10 -0
- package/deps/rocksdb/rocksdb/port/mmap.h +20 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.h +7 -4
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +32 -12
- package/deps/rocksdb/rocksdb/port/win/env_win.h +1 -1
- package/deps/rocksdb/rocksdb/port/win/port_win.h +5 -2
- package/deps/rocksdb/rocksdb/src.mk +10 -1
- 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 +116 -43
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +9 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +321 -49
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +98 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +233 -98
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +58 -23
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +12 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +52 -24
- 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_cache.cc +3 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +26 -7
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +50 -18
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +20 -8
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +232 -71
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -6
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +44 -26
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +2 -1
- 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 +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +6 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +36 -19
- 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 +4 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +11 -7
- 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_based/uncompression_dict_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +14 -13
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +4 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +9 -2
- 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/get_context.cc +52 -89
- package/deps/rocksdb/rocksdb/table/get_context.h +12 -3
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +11 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +29 -1
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +22 -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 +45 -9
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +1 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +24 -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_reader.h +6 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +52 -22
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +31 -0
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.cc +2 -1
- 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/block_cache_analyzer/block_cache_pysim.py +3 -3
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +87 -65
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +221 -33
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +36 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +1 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +33 -11
- 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/bloom_test.cc +32 -11
- package/deps/rocksdb/rocksdb/util/cast_util.h +24 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +2 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +55 -8
- package/deps/rocksdb/rocksdb/util/compression.cc +4 -4
- package/deps/rocksdb/rocksdb/util/compression.h +119 -35
- package/deps/rocksdb/rocksdb/util/core_local.h +2 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +7 -1
- package/deps/rocksdb/rocksdb/util/distributed_mutex.h +1 -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/overload.h +23 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +53 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_impl.h +6 -1
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +90 -19
- package/deps/rocksdb/rocksdb/util/single_thread_executor.h +1 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -0
- package/deps/rocksdb/rocksdb/util/status.cc +1 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +1 -1
- package/deps/rocksdb/rocksdb/util/string_util.cc +39 -0
- package/deps/rocksdb/rocksdb/util/string_util.h +10 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +10 -1
- package/deps/rocksdb/rocksdb/util/udt_util.cc +385 -0
- package/deps/rocksdb/rocksdb/util/udt_util.h +192 -1
- package/deps/rocksdb/rocksdb/util/udt_util_test.cc +461 -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/util/xxhash.h +0 -3
- package/deps/rocksdb/rocksdb/util/xxph3.h +0 -4
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +4 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +71 -26
- 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_env.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +20 -16
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +11 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +7 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +12 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +7 -4
- 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/lock/range/range_tree/lib/README +13 -0
- 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 +272 -33
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +4 -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 +195 -23
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +19 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +88 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +43 -17
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +73 -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 +41 -12
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +15 -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 +59 -28
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +127 -120
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +129 -59
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +111 -14
- package/deps/rocksdb/rocksdb.gyp +6 -2
- package/index.js +0 -8
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/linux-x64/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/cmake/modules/CxxFlags.cmake +0 -7
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +0 -33
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +0 -26
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +0 -29
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +0 -10
|
@@ -94,6 +94,7 @@ AdvancedColumnFamilyOptions::AdvancedColumnFamilyOptions(const Options& options)
|
|
|
94
94
|
ttl(options.ttl),
|
|
95
95
|
periodic_compaction_seconds(options.periodic_compaction_seconds),
|
|
96
96
|
sample_for_compression(options.sample_for_compression),
|
|
97
|
+
default_temperature(options.default_temperature),
|
|
97
98
|
preclude_last_level_data_seconds(
|
|
98
99
|
options.preclude_last_level_data_seconds),
|
|
99
100
|
preserve_internal_time_seconds(options.preserve_internal_time_seconds),
|
|
@@ -412,6 +413,17 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
412
413
|
ROCKS_LOG_HEADER(log,
|
|
413
414
|
" Options.periodic_compaction_seconds: %" PRIu64,
|
|
414
415
|
periodic_compaction_seconds);
|
|
416
|
+
const auto& it_temp = temperature_to_string.find(default_temperature);
|
|
417
|
+
std::string str_default_temperature;
|
|
418
|
+
if (it_temp == temperature_to_string.end()) {
|
|
419
|
+
assert(false);
|
|
420
|
+
str_default_temperature = "unknown_temperature";
|
|
421
|
+
} else {
|
|
422
|
+
str_default_temperature = it_temp->second;
|
|
423
|
+
}
|
|
424
|
+
ROCKS_LOG_HEADER(log,
|
|
425
|
+
" Options.default_temperature: %s",
|
|
426
|
+
str_default_temperature.c_str());
|
|
415
427
|
ROCKS_LOG_HEADER(log, " Options.preclude_last_level_data_seconds: %" PRIu64,
|
|
416
428
|
preclude_last_level_data_seconds);
|
|
417
429
|
ROCKS_LOG_HEADER(log, " Options.preserve_internal_time_seconds: %" PRIu64,
|
|
@@ -448,8 +460,10 @@ void ColumnFamilyOptions::Dump(Logger* log) const {
|
|
|
448
460
|
? "flush only"
|
|
449
461
|
: "disabled");
|
|
450
462
|
}
|
|
451
|
-
ROCKS_LOG_HEADER(log, "Options.experimental_mempurge_threshold: %f",
|
|
463
|
+
ROCKS_LOG_HEADER(log, " Options.experimental_mempurge_threshold: %f",
|
|
452
464
|
experimental_mempurge_threshold);
|
|
465
|
+
ROCKS_LOG_HEADER(log, " Options.memtable_max_range_deletions: %d",
|
|
466
|
+
memtable_max_range_deletions);
|
|
453
467
|
} // ColumnFamilyOptions::Dump
|
|
454
468
|
|
|
455
469
|
void Options::Dump(Logger* log) const {
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
// (found in the LICENSE.Apache file in the root directory).
|
|
5
5
|
#include "options/options_helper.h"
|
|
6
6
|
|
|
7
|
+
#include <atomic>
|
|
7
8
|
#include <cassert>
|
|
8
9
|
#include <cctype>
|
|
9
10
|
#include <cstdlib>
|
|
@@ -60,6 +61,8 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
|
|
|
60
61
|
options.paranoid_checks = immutable_db_options.paranoid_checks;
|
|
61
62
|
options.flush_verify_memtable_count =
|
|
62
63
|
immutable_db_options.flush_verify_memtable_count;
|
|
64
|
+
options.compaction_verify_record_count =
|
|
65
|
+
immutable_db_options.compaction_verify_record_count;
|
|
63
66
|
options.track_and_verify_wals_in_manifest =
|
|
64
67
|
immutable_db_options.track_and_verify_wals_in_manifest;
|
|
65
68
|
options.verify_sst_unique_id_in_manifest =
|
|
@@ -176,6 +179,7 @@ DBOptions BuildDBOptions(const ImmutableDBOptions& immutable_db_options,
|
|
|
176
179
|
options.lowest_used_cache_tier = immutable_db_options.lowest_used_cache_tier;
|
|
177
180
|
options.enforce_single_del_contracts =
|
|
178
181
|
immutable_db_options.enforce_single_del_contracts;
|
|
182
|
+
options.daily_offpeak_time_utc = mutable_db_options.daily_offpeak_time_utc;
|
|
179
183
|
return options;
|
|
180
184
|
}
|
|
181
185
|
|
|
@@ -208,6 +212,8 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
|
|
|
208
212
|
moptions.memtable_protection_bytes_per_key;
|
|
209
213
|
cf_opts->block_protection_bytes_per_key =
|
|
210
214
|
moptions.block_protection_bytes_per_key;
|
|
215
|
+
cf_opts->bottommost_file_compaction_delay =
|
|
216
|
+
moptions.bottommost_file_compaction_delay;
|
|
211
217
|
|
|
212
218
|
// Compaction related options
|
|
213
219
|
cf_opts->disable_auto_compactions = moptions.disable_auto_compactions;
|
|
@@ -270,6 +276,7 @@ void UpdateColumnFamilyOptions(const MutableCFOptions& moptions,
|
|
|
270
276
|
cf_opts->compression_per_level = moptions.compression_per_level;
|
|
271
277
|
cf_opts->last_level_temperature = moptions.last_level_temperature;
|
|
272
278
|
cf_opts->bottommost_temperature = moptions.last_level_temperature;
|
|
279
|
+
cf_opts->memtable_max_range_deletions = moptions.memtable_max_range_deletions;
|
|
273
280
|
}
|
|
274
281
|
|
|
275
282
|
void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
|
|
@@ -312,6 +319,7 @@ void UpdateColumnFamilyOptions(const ImmutableCFOptions& ioptions,
|
|
|
312
319
|
ioptions.preserve_internal_time_seconds;
|
|
313
320
|
cf_opts->persist_user_defined_timestamps =
|
|
314
321
|
ioptions.persist_user_defined_timestamps;
|
|
322
|
+
cf_opts->default_temperature = ioptions.default_temperature;
|
|
315
323
|
|
|
316
324
|
// TODO(yhchiang): find some way to handle the following derived options
|
|
317
325
|
// * max_file_size
|
|
@@ -426,6 +434,10 @@ static bool ParseOptionHelper(void* opt_address, const OptionType& opt_type,
|
|
|
426
434
|
case OptionType::kSizeT:
|
|
427
435
|
PutUnaligned(static_cast<size_t*>(opt_address), ParseSizeT(value));
|
|
428
436
|
break;
|
|
437
|
+
case OptionType::kAtomicInt:
|
|
438
|
+
static_cast<std::atomic<int>*>(opt_address)
|
|
439
|
+
->store(ParseInt(value), std::memory_order_release);
|
|
440
|
+
break;
|
|
429
441
|
case OptionType::kString:
|
|
430
442
|
*static_cast<std::string*>(opt_address) = value;
|
|
431
443
|
break;
|
|
@@ -515,6 +527,10 @@ bool SerializeSingleOptionHelper(const void* opt_address,
|
|
|
515
527
|
case OptionType::kDouble:
|
|
516
528
|
*value = std::to_string(*(static_cast<const double*>(opt_address)));
|
|
517
529
|
break;
|
|
530
|
+
case OptionType::kAtomicInt:
|
|
531
|
+
*value = std::to_string(static_cast<const std::atomic<int>*>(opt_address)
|
|
532
|
+
->load(std::memory_order_acquire));
|
|
533
|
+
break;
|
|
518
534
|
case OptionType::kString:
|
|
519
535
|
*value =
|
|
520
536
|
EscapeOptionString(*(static_cast<const std::string*>(opt_address)));
|
|
@@ -1163,6 +1179,8 @@ static bool AreOptionsEqual(OptionType type, const void* this_offset,
|
|
|
1163
1179
|
GetUnaligned(static_cast<const size_t*>(that_offset), &v2);
|
|
1164
1180
|
return (v1 == v2);
|
|
1165
1181
|
}
|
|
1182
|
+
case OptionType::kAtomicInt:
|
|
1183
|
+
return IsOptionEqual<std::atomic<int>>(this_offset, that_offset);
|
|
1166
1184
|
case OptionType::kString:
|
|
1167
1185
|
return IsOptionEqual<std::string>(this_offset, that_offset);
|
|
1168
1186
|
case OptionType::kDouble:
|
|
@@ -252,6 +252,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
252
252
|
sizeof(FileTypeSet)},
|
|
253
253
|
{offsetof(struct DBOptions, compaction_service),
|
|
254
254
|
sizeof(std::shared_ptr<CompactionService>)},
|
|
255
|
+
{offsetof(struct DBOptions, daily_offpeak_time_utc), sizeof(std::string)},
|
|
255
256
|
};
|
|
256
257
|
|
|
257
258
|
char* options_ptr = new char[sizeof(DBOptions)];
|
|
@@ -308,6 +309,7 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
308
309
|
"writable_file_max_buffer_size=1048576;"
|
|
309
310
|
"paranoid_checks=true;"
|
|
310
311
|
"flush_verify_memtable_count=true;"
|
|
312
|
+
"compaction_verify_record_count=true;"
|
|
311
313
|
"track_and_verify_wals_in_manifest=true;"
|
|
312
314
|
"verify_sst_unique_id_in_manifest=true;"
|
|
313
315
|
"is_fd_close_on_exec=false;"
|
|
@@ -364,7 +366,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
364
366
|
"db_host_id=hostname;"
|
|
365
367
|
"lowest_used_cache_tier=kNonVolatileBlockTier;"
|
|
366
368
|
"allow_data_in_errors=false;"
|
|
367
|
-
"enforce_single_del_contracts=false;"
|
|
369
|
+
"enforce_single_del_contracts=false;"
|
|
370
|
+
"daily_offpeak_time_utc=08:30-19:00;",
|
|
368
371
|
new_options));
|
|
369
372
|
|
|
370
373
|
ASSERT_EQ(unset_bytes_base, NumUnsetBytes(new_options_ptr, sizeof(DBOptions),
|
|
@@ -377,6 +380,8 @@ TEST_F(OptionsSettableTest, DBOptionsAllFieldsSettable) {
|
|
|
377
380
|
delete[] new_options_ptr;
|
|
378
381
|
}
|
|
379
382
|
|
|
383
|
+
// status check adds CXX flag -fno-elide-constructors which fails this test.
|
|
384
|
+
#ifndef ROCKSDB_ASSERT_STATUS_CHECKED
|
|
380
385
|
// If the test fails, likely a new option is added to ColumnFamilyOptions
|
|
381
386
|
// but it cannot be set through GetColumnFamilyOptionsFromString(), or the
|
|
382
387
|
// test is not updated accordingly.
|
|
@@ -501,11 +506,12 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
501
506
|
"compression=kNoCompression;"
|
|
502
507
|
"compression_opts={max_dict_buffer_bytes=5;use_zstd_dict_trainer=true;"
|
|
503
508
|
"enabled=false;parallel_threads=6;zstd_max_train_bytes=7;strategy=8;max_"
|
|
504
|
-
"dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;
|
|
509
|
+
"dict_bytes=9;level=10;window_bits=11;max_compressed_bytes_per_kb=987;"
|
|
510
|
+
"checksum=true};"
|
|
505
511
|
"bottommost_compression_opts={max_dict_buffer_bytes=4;use_zstd_dict_"
|
|
506
512
|
"trainer=true;enabled=true;parallel_threads=5;zstd_max_train_bytes=6;"
|
|
507
513
|
"strategy=7;max_dict_bytes=8;level=9;window_bits=10;max_compressed_bytes_"
|
|
508
|
-
"per_kb=876;};"
|
|
514
|
+
"per_kb=876;checksum=true};"
|
|
509
515
|
"bottommost_compression=kDisableCompressionOption;"
|
|
510
516
|
"level0_stop_writes_trigger=33;"
|
|
511
517
|
"num_levels=99;"
|
|
@@ -548,6 +554,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
548
554
|
"prepopulate_blob_cache=kDisable;"
|
|
549
555
|
"bottommost_temperature=kWarm;"
|
|
550
556
|
"last_level_temperature=kWarm;"
|
|
557
|
+
"default_temperature=kHot;"
|
|
551
558
|
"preclude_last_level_data_seconds=86400;"
|
|
552
559
|
"preserve_internal_time_seconds=86400;"
|
|
553
560
|
"compaction_options_fifo={max_table_files_size=3;allow_"
|
|
@@ -556,7 +563,9 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
556
563
|
"blob_cache=1M;"
|
|
557
564
|
"memtable_protection_bytes_per_key=2;"
|
|
558
565
|
"persist_user_defined_timestamps=true;"
|
|
559
|
-
"block_protection_bytes_per_key=1;"
|
|
566
|
+
"block_protection_bytes_per_key=1;"
|
|
567
|
+
"memtable_max_range_deletions=999999;"
|
|
568
|
+
"bottommost_file_compaction_delay=7200;",
|
|
560
569
|
new_options));
|
|
561
570
|
|
|
562
571
|
ASSERT_NE(new_options->blob_cache.get(), nullptr);
|
|
@@ -639,6 +648,7 @@ TEST_F(OptionsSettableTest, ColumnFamilyOptionsAllFieldsSettable) {
|
|
|
639
648
|
delete[] mcfo2_ptr;
|
|
640
649
|
delete[] cfo_clean_ptr;
|
|
641
650
|
}
|
|
651
|
+
#endif // !ROCKSDB_ASSERT_STATUS_CHECKED
|
|
642
652
|
#endif // !ROCKSDB_UBSAN_RUN
|
|
643
653
|
#endif // !__clang__
|
|
644
654
|
#endif // OS_LINUX || OS_WIN
|
|
@@ -130,7 +130,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
130
130
|
{"blob_file_starting_level", "1"},
|
|
131
131
|
{"prepopulate_blob_cache", "kDisable"},
|
|
132
132
|
{"last_level_temperature", "kWarm"},
|
|
133
|
+
{"default_temperature", "kHot"},
|
|
133
134
|
{"persist_user_defined_timestamps", "true"},
|
|
135
|
+
{"memtable_max_range_deletions", "0"},
|
|
134
136
|
};
|
|
135
137
|
|
|
136
138
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -176,6 +178,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
176
178
|
{"wal_bytes_per_sync", "48"},
|
|
177
179
|
{"strict_bytes_per_sync", "true"},
|
|
178
180
|
{"preserve_deletes", "false"},
|
|
181
|
+
{"daily_offpeak_time_utc", ""},
|
|
179
182
|
};
|
|
180
183
|
|
|
181
184
|
ColumnFamilyOptions base_cf_opt;
|
|
@@ -283,7 +286,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
283
286
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
284
287
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
285
288
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
289
|
+
ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
|
|
286
290
|
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
291
|
+
ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
|
|
287
292
|
|
|
288
293
|
cf_options_map["write_buffer_size"] = "hello";
|
|
289
294
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(exact, base_cf_opt, cf_options_map,
|
|
@@ -354,6 +359,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
354
359
|
ASSERT_EQ(new_db_opt.bytes_per_sync, static_cast<uint64_t>(47));
|
|
355
360
|
ASSERT_EQ(new_db_opt.wal_bytes_per_sync, static_cast<uint64_t>(48));
|
|
356
361
|
ASSERT_EQ(new_db_opt.strict_bytes_per_sync, true);
|
|
362
|
+
ASSERT_EQ(new_db_opt.daily_offpeak_time_utc, "");
|
|
357
363
|
|
|
358
364
|
db_options_map["max_open_files"] = "hello";
|
|
359
365
|
Status s =
|
|
@@ -875,6 +881,7 @@ TEST_F(OptionsTest, OldInterfaceTest) {
|
|
|
875
881
|
{"track_and_verify_wals_in_manifest", "true"},
|
|
876
882
|
{"verify_sst_unique_id_in_manifest", "true"},
|
|
877
883
|
{"max_open_files", "32"},
|
|
884
|
+
{"daily_offpeak_time_utc", "06:30-23:30"},
|
|
878
885
|
};
|
|
879
886
|
|
|
880
887
|
ConfigOptions db_config_options(base_db_opt);
|
|
@@ -905,11 +912,13 @@ TEST_F(OptionsTest, OldInterfaceTest) {
|
|
|
905
912
|
db_config_options.ignore_unknown_options = false;
|
|
906
913
|
ASSERT_OK(GetDBOptionsFromString(
|
|
907
914
|
db_config_options, base_db_opt,
|
|
908
|
-
"create_if_missing=false;error_if_exists=false;max_open_files=42;"
|
|
915
|
+
"create_if_missing=false;error_if_exists=false;max_open_files=42;"
|
|
916
|
+
"daily_offpeak_time_utc=08:30-19:00;",
|
|
909
917
|
&new_db_opt));
|
|
910
918
|
ASSERT_EQ(new_db_opt.create_if_missing, false);
|
|
911
919
|
ASSERT_EQ(new_db_opt.error_if_exists, false);
|
|
912
920
|
ASSERT_EQ(new_db_opt.max_open_files, 42);
|
|
921
|
+
ASSERT_EQ(new_db_opt.daily_offpeak_time_utc, "08:30-19:00");
|
|
913
922
|
s = GetDBOptionsFromString(
|
|
914
923
|
db_config_options, base_db_opt,
|
|
915
924
|
"create_if_missing=false;error_if_exists=false;max_open_files=42;"
|
|
@@ -2337,7 +2346,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2337
2346
|
{"blob_file_starting_level", "1"},
|
|
2338
2347
|
{"prepopulate_blob_cache", "kDisable"},
|
|
2339
2348
|
{"last_level_temperature", "kWarm"},
|
|
2349
|
+
{"default_temperature", "kHot"},
|
|
2340
2350
|
{"persist_user_defined_timestamps", "true"},
|
|
2351
|
+
{"memtable_max_range_deletions", "0"},
|
|
2341
2352
|
};
|
|
2342
2353
|
|
|
2343
2354
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -2488,7 +2499,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2488
2499
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
2489
2500
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
2490
2501
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
2502
|
+
ASSERT_EQ(new_cf_opt.default_temperature, Temperature::kHot);
|
|
2491
2503
|
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
2504
|
+
ASSERT_EQ(new_cf_opt.memtable_max_range_deletions, 0);
|
|
2492
2505
|
|
|
2493
2506
|
cf_options_map["write_buffer_size"] = "hello";
|
|
2494
2507
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(cf_config_options, base_cf_opt,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
## Building external plugins together with RocksDB
|
|
2
|
+
|
|
3
|
+
RocksDB offers several plugin interfaces for developers to customize its behavior. One difficulty developers face is how to make their plugin available to end users. The approach discussed here involves building the external code together with the RocksDB code into a single binary. Note another approach we plan to support involves loading plugins dynamically from shared libraries.
|
|
4
|
+
|
|
5
|
+
### Discovery
|
|
6
|
+
|
|
7
|
+
We hope developers will mention their work in "PLUGINS.md" so users can easily discover and reuse solutions for customizing RocksDB.
|
|
8
|
+
|
|
9
|
+
### Directory organization
|
|
10
|
+
|
|
11
|
+
External plugins will be linked according to their name into a subdirectory of "plugin/". For example, a plugin called "dedupfs" would be linked into "plugin/dedupfs/".
|
|
12
|
+
|
|
13
|
+
### Build standard
|
|
14
|
+
|
|
15
|
+
Currently the only supported build system are make and cmake.
|
|
16
|
+
|
|
17
|
+
For make, files in the plugin directory ending in the .mk extension can define the following variables.
|
|
18
|
+
|
|
19
|
+
* `$(PLUGIN_NAME)_SOURCES`: these files will be compiled and linked with RocksDB. They can access RocksDB public header files.
|
|
20
|
+
* `$(PLUGIN_NAME)_HEADERS`: these files will be installed in the RocksDB header directory. Their paths will be prefixed by "rocksdb/plugin/$(PLUGIN_NAME)/".
|
|
21
|
+
* `$(PLUGIN_NAME)_LDFLAGS`: these flags will be passed to the final link step. For example, library dependencies can be propagated here, or symbols can be forcibly included, e.g., for static registration.
|
|
22
|
+
* `$(PLUGIN_NAME)_CXXFLAGS`: these flags will be passed to the compiler. For example, they can specify locations of header files in non-standard locations.
|
|
23
|
+
|
|
24
|
+
Users will run the usual make commands from the RocksDB directory, specifying the plugins to include in a space-separated list in the variable `ROCKSDB_PLUGINS`.
|
|
25
|
+
|
|
26
|
+
For CMake, the CMakeLists.txt file in the plugin directory can define the following variables.
|
|
27
|
+
|
|
28
|
+
* `${PLUGIN_NAME}_SOURCES`: these files will be compiled and linked with RocksDB. They can access RocksDB public header files.
|
|
29
|
+
* `${PLUGIN_NAME}_COMPILE_FLAGS`: these flags will be passed to the compiler. For example, they can specify locations of header files in non-standard locations.
|
|
30
|
+
* `${PLUGIN_NAME}_INCLUDE_PATHS`: paths to directories to search for plugin-specific header files during compilation.
|
|
31
|
+
* `${PLUGIN_NAME}_LIBS`: list of library names required to build the plugin, e.g. `dl`, `java`, `jvm`, `rados`, etc. CMake will generate proper flags for linking.
|
|
32
|
+
* `${PLUGIN_NAME}_LINK_PATHS`: list of paths for the linker to search for required libraries in additional to standard locations.
|
|
33
|
+
* `${PLUGIN_NAME}_CMAKE_SHARED_LINKER_FLAGS` additional linker flags used to generate shared libraries. For example, symbols can be forcibly included, e.g., for static registration.
|
|
34
|
+
* `${PLUGIN_NAME}_CMAKE_EXE_LINKER_FLAGS`: additional linker flags used to generate executables. For example, symbols can be forcibly included, e.g., for static registration.
|
|
35
|
+
|
|
36
|
+
Users will run the usual cmake commands, specifying the plugins to include in a space-separated list in the command line variable `ROCKSDB_PLUGINS` when invoking cmake.
|
|
37
|
+
```
|
|
38
|
+
cmake .. -DROCKSDB_PLUGINS="dedupfs hdfs rados"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Example
|
|
42
|
+
|
|
43
|
+
For a working example, see [Dedupfs](https://github.com/ajkr/dedupfs).
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
This directory contains interfaces and implementations that isolate the
|
|
2
|
+
rest of the package from platform details.
|
|
3
|
+
|
|
4
|
+
Code in the rest of the package includes "port.h" from this directory.
|
|
5
|
+
"port.h" in turn includes a platform specific "port_<platform>.h" file
|
|
6
|
+
that provides the platform specific implementation.
|
|
7
|
+
|
|
8
|
+
See port_posix.h for an example of what must be provided in a platform
|
|
9
|
+
specific header file.
|
|
10
|
+
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#endif // OS_WIN
|
|
15
15
|
|
|
16
16
|
#include <cstdint>
|
|
17
|
+
#include <utility>
|
|
17
18
|
|
|
18
19
|
#include "rocksdb/rocksdb_namespace.h"
|
|
19
20
|
|
|
@@ -67,4 +68,23 @@ class MemMapping {
|
|
|
67
68
|
static MemMapping AllocateAnonymous(size_t length, bool huge);
|
|
68
69
|
};
|
|
69
70
|
|
|
71
|
+
// Simple MemMapping wrapper that presents the memory as an array of T.
|
|
72
|
+
// For example,
|
|
73
|
+
// TypedMemMapping<uint64_t> arr = MemMapping::AllocateLazyZeroed(num_bytes);
|
|
74
|
+
template <typename T>
|
|
75
|
+
class TypedMemMapping : public MemMapping {
|
|
76
|
+
public:
|
|
77
|
+
/*implicit*/ TypedMemMapping(MemMapping&& v) noexcept
|
|
78
|
+
: MemMapping(std::move(v)) {}
|
|
79
|
+
TypedMemMapping& operator=(MemMapping&& v) noexcept {
|
|
80
|
+
MemMapping& base = *this;
|
|
81
|
+
base = std::move(v);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
inline T* Get() const { return static_cast<T*>(MemMapping::Get()); }
|
|
85
|
+
inline size_t Count() const { return MemMapping::Length() / sizeof(T); }
|
|
86
|
+
|
|
87
|
+
inline T& operator[](size_t index) const { return Get()[index]; }
|
|
88
|
+
};
|
|
89
|
+
|
|
70
90
|
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -43,7 +43,7 @@ class Mutex {
|
|
|
43
43
|
// Optionally crash if this thread does not hold this mutex.
|
|
44
44
|
// The implementation must be fast, especially if NDEBUG is
|
|
45
45
|
// defined. The implementation is allowed to skip all checks.
|
|
46
|
-
void AssertHeld();
|
|
46
|
+
void AssertHeld() const;
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
class CondVar {
|
|
@@ -109,9 +109,9 @@ class Mutex {
|
|
|
109
109
|
|
|
110
110
|
bool TryLock();
|
|
111
111
|
|
|
112
|
-
//
|
|
113
|
-
//
|
|
114
|
-
void AssertHeld();
|
|
112
|
+
// This will fail assertion if the mutex is not locked.
|
|
113
|
+
// It does NOT verify that mutex is held by a calling thread.
|
|
114
|
+
void AssertHeld() const;
|
|
115
115
|
|
|
116
116
|
// Also implement std Lockable
|
|
117
117
|
inline void lock() { Lock(); }
|
|
@@ -139,7 +139,7 @@ class RWMutex {
|
|
|
139
139
|
void WriteLock();
|
|
140
140
|
void ReadUnlock();
|
|
141
141
|
void WriteUnlock();
|
|
142
|
-
void AssertHeld() {}
|
|
142
|
+
void AssertHeld() const {}
|
|
143
143
|
|
|
144
144
|
private:
|
|
145
145
|
pthread_rwlock_t mu_; // the underlying platform mutex
|
|
@@ -149,6 +149,9 @@ class CondVar {
|
|
|
149
149
|
public:
|
|
150
150
|
explicit CondVar(Mutex* mu);
|
|
151
151
|
~CondVar();
|
|
152
|
+
|
|
153
|
+
Mutex* GetMutex() const { return mu_; }
|
|
154
|
+
|
|
152
155
|
void Wait();
|
|
153
156
|
// Timed condition wait. Returns true if timeout occurred.
|
|
154
157
|
bool TimedWait(uint64_t abs_time_us);
|
|
@@ -31,6 +31,10 @@ void* SaveStack(int* /*num_frames*/, int /*first_frames_to_skip*/) {
|
|
|
31
31
|
#include <string.h>
|
|
32
32
|
#include <unistd.h>
|
|
33
33
|
|
|
34
|
+
#ifdef OS_OPENBSD
|
|
35
|
+
#include <sys/wait.h>
|
|
36
|
+
#include <sys/sysctl.h>
|
|
37
|
+
#endif // OS_OPENBSD
|
|
34
38
|
#ifdef OS_FREEBSD
|
|
35
39
|
#include <sys/sysctl.h>
|
|
36
40
|
#endif // OS_FREEBSD
|
|
@@ -51,28 +55,39 @@ namespace port {
|
|
|
51
55
|
|
|
52
56
|
namespace {
|
|
53
57
|
|
|
54
|
-
#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_GNU_KFREEBSD)
|
|
58
|
+
#if defined(OS_LINUX) || defined(OS_FREEBSD) || defined(OS_OPENBSD) || defined(OS_GNU_KFREEBSD)
|
|
55
59
|
const char* GetExecutableName() {
|
|
56
60
|
static char name[1024];
|
|
57
61
|
|
|
58
|
-
#if
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
#if defined(OS_FREEBSD)
|
|
63
|
+
int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1};
|
|
64
|
+
size_t namesz = sizeof(name);
|
|
65
|
+
|
|
66
|
+
auto ret = sysctl(mib, 4, name, &namesz, nullptr, 0);
|
|
67
|
+
if (-1 == ret) {
|
|
63
68
|
return nullptr;
|
|
64
69
|
} else {
|
|
65
|
-
name[read] = 0;
|
|
66
70
|
return name;
|
|
67
71
|
}
|
|
68
|
-
#
|
|
69
|
-
int mib[4] = {CTL_KERN,
|
|
72
|
+
#elif defined(OS_OPENBSD)
|
|
73
|
+
int mib[4] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_ARGV};
|
|
70
74
|
size_t namesz = sizeof(name);
|
|
75
|
+
char* bin[namesz];
|
|
71
76
|
|
|
72
|
-
auto ret = sysctl(mib, 4,
|
|
77
|
+
auto ret = sysctl(mib, 4, bin, &namesz, nullptr, 0);
|
|
73
78
|
if (-1 == ret) {
|
|
74
79
|
return nullptr;
|
|
75
80
|
} else {
|
|
81
|
+
return bin[0];
|
|
82
|
+
}
|
|
83
|
+
#else
|
|
84
|
+
char link[1024];
|
|
85
|
+
snprintf(link, sizeof(link), "/proc/%d/exe", getpid());
|
|
86
|
+
auto read = readlink(link, name, sizeof(name) - 1);
|
|
87
|
+
if (-1 == read) {
|
|
88
|
+
return nullptr;
|
|
89
|
+
} else {
|
|
90
|
+
name[read] = 0;
|
|
76
91
|
return name;
|
|
77
92
|
}
|
|
78
93
|
#endif
|
|
@@ -176,6 +191,11 @@ void PrintStack(int first_frames_to_skip) {
|
|
|
176
191
|
char* debug_env = getenv("ROCKSDB_DEBUG");
|
|
177
192
|
bool debug = debug_env != nullptr && strlen(debug_env) > 0;
|
|
178
193
|
|
|
194
|
+
if (!debug && getenv("ROCKSDB_NO_STACK") != nullptr) {
|
|
195
|
+
// Skip stack trace
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
|
|
179
199
|
if (lldb_stack_trace || gdb_stack_trace || debug) {
|
|
180
200
|
// Allow ouside debugger to attach, even with Yama security restrictions
|
|
181
201
|
#ifdef PR_SET_PTRACER_ANY
|
|
@@ -271,7 +291,7 @@ void PrintStack(int first_frames_to_skip) {
|
|
|
271
291
|
const int kMaxFrames = 100;
|
|
272
292
|
void* frames[kMaxFrames];
|
|
273
293
|
|
|
274
|
-
|
|
294
|
+
int num_frames = (int) backtrace(frames, kMaxFrames);
|
|
275
295
|
PrintStack(&frames[first_frames_to_skip], num_frames - first_frames_to_skip);
|
|
276
296
|
}
|
|
277
297
|
|
|
@@ -284,7 +304,7 @@ void* SaveStack(int* num_frames, int first_frames_to_skip) {
|
|
|
284
304
|
const int kMaxFrames = 100;
|
|
285
305
|
void* frames[kMaxFrames];
|
|
286
306
|
|
|
287
|
-
|
|
307
|
+
int count = (int) backtrace(frames, kMaxFrames);
|
|
288
308
|
*num_frames = count - first_frames_to_skip;
|
|
289
309
|
void* callstack = malloc(sizeof(void*) * *num_frames);
|
|
290
310
|
memcpy(callstack, &frames[first_frames_to_skip], sizeof(void*) * *num_frames);
|
|
@@ -227,7 +227,7 @@ class WinFileSystem : public FileSystem {
|
|
|
227
227
|
const FileOptions& file_options) const override;
|
|
228
228
|
FileOptions OptimizeForManifestWrite(
|
|
229
229
|
const FileOptions& file_options) const override;
|
|
230
|
-
|
|
230
|
+
void SupportedOps(int64_t& supported_ops) override { supported_ops = 0; }
|
|
231
231
|
|
|
232
232
|
protected:
|
|
233
233
|
static uint64_t FileTimeToUnixTime(const FILETIME& ftTime);
|
|
@@ -117,7 +117,7 @@ class Mutex {
|
|
|
117
117
|
|
|
118
118
|
// this will assert if the mutex is not locked
|
|
119
119
|
// it does NOT verify that mutex is held by a calling thread
|
|
120
|
-
void AssertHeld() {
|
|
120
|
+
void AssertHeld() const {
|
|
121
121
|
#ifndef NDEBUG
|
|
122
122
|
assert(locked_);
|
|
123
123
|
#endif
|
|
@@ -159,7 +159,7 @@ class RWMutex {
|
|
|
159
159
|
void WriteUnlock() { ReleaseSRWLockExclusive(&srwLock_); }
|
|
160
160
|
|
|
161
161
|
// Empty as in POSIX
|
|
162
|
-
void AssertHeld() {}
|
|
162
|
+
void AssertHeld() const {}
|
|
163
163
|
|
|
164
164
|
private:
|
|
165
165
|
SRWLOCK srwLock_;
|
|
@@ -170,6 +170,9 @@ class CondVar {
|
|
|
170
170
|
explicit CondVar(Mutex* mu) : mu_(mu) {}
|
|
171
171
|
|
|
172
172
|
~CondVar();
|
|
173
|
+
|
|
174
|
+
Mutex* GetMutex() const { return mu_; }
|
|
175
|
+
|
|
173
176
|
void Wait();
|
|
174
177
|
bool TimedWait(uint64_t expiration_time);
|
|
175
178
|
void Signal();
|
|
@@ -12,6 +12,7 @@ LIB_SOURCES = \
|
|
|
12
12
|
cache/secondary_cache.cc \
|
|
13
13
|
cache/secondary_cache_adapter.cc \
|
|
14
14
|
cache/sharded_cache.cc \
|
|
15
|
+
cache/tiered_secondary_cache.cc \
|
|
15
16
|
db/arena_wrapped_db_iter.cc \
|
|
16
17
|
db/blob/blob_contents.cc \
|
|
17
18
|
db/blob/blob_fetcher.cc \
|
|
@@ -94,6 +95,7 @@ LIB_SOURCES = \
|
|
|
94
95
|
db/wal_manager.cc \
|
|
95
96
|
db/wide/wide_column_serialization.cc \
|
|
96
97
|
db/wide/wide_columns.cc \
|
|
98
|
+
db/wide/wide_columns_helper.cc \
|
|
97
99
|
db/write_batch.cc \
|
|
98
100
|
db/write_batch_base.cc \
|
|
99
101
|
db/write_controller.cc \
|
|
@@ -251,6 +253,8 @@ LIB_SOURCES = \
|
|
|
251
253
|
util/string_util.cc \
|
|
252
254
|
util/thread_local.cc \
|
|
253
255
|
util/threadpool_imp.cc \
|
|
256
|
+
util/udt_util.cc \
|
|
257
|
+
util/write_batch_util.cc \
|
|
254
258
|
util/xxhash.cc \
|
|
255
259
|
utilities/agg_merge/agg_merge.cc \
|
|
256
260
|
utilities/backup/backup_engine.cc \
|
|
@@ -376,6 +380,7 @@ STRESS_LIB_SOURCES = \
|
|
|
376
380
|
db_stress_tool/db_stress_stat.cc \
|
|
377
381
|
db_stress_tool/db_stress_test_base.cc \
|
|
378
382
|
db_stress_tool/db_stress_tool.cc \
|
|
383
|
+
db_stress_tool/db_stress_wide_merge_operator.cc \
|
|
379
384
|
db_stress_tool/expected_state.cc \
|
|
380
385
|
db_stress_tool/expected_value.cc \
|
|
381
386
|
db_stress_tool/no_batched_ops_stress.cc \
|
|
@@ -429,8 +434,9 @@ BENCH_MAIN_SOURCES = \
|
|
|
429
434
|
TEST_MAIN_SOURCES = \
|
|
430
435
|
cache/cache_test.cc \
|
|
431
436
|
cache/cache_reservation_manager_test.cc \
|
|
432
|
-
cache/lru_cache_test.cc \
|
|
433
437
|
cache/compressed_secondary_cache_test.cc \
|
|
438
|
+
cache/lru_cache_test.cc \
|
|
439
|
+
cache/tiered_secondary_cache_test.cc \
|
|
434
440
|
db/blob/blob_counting_iterator_test.cc \
|
|
435
441
|
db/blob/blob_file_addition_test.cc \
|
|
436
442
|
db/blob/blob_file_builder_test.cc \
|
|
@@ -526,6 +532,7 @@ TEST_MAIN_SOURCES = \
|
|
|
526
532
|
db/wal_manager_test.cc \
|
|
527
533
|
db/wide/db_wide_basic_test.cc \
|
|
528
534
|
db/wide/wide_column_serialization_test.cc \
|
|
535
|
+
db/wide/wide_columns_helper_test.cc \
|
|
529
536
|
db/write_batch_test.cc \
|
|
530
537
|
db/write_callback_test.cc \
|
|
531
538
|
db/write_controller_test.cc \
|
|
@@ -593,6 +600,7 @@ TEST_MAIN_SOURCES = \
|
|
|
593
600
|
util/timer_test.cc \
|
|
594
601
|
util/thread_list_test.cc \
|
|
595
602
|
util/thread_local_test.cc \
|
|
603
|
+
util/udt_util_test.cc \
|
|
596
604
|
util/work_queue_test.cc \
|
|
597
605
|
utilities/agg_merge/agg_merge_test.cc \
|
|
598
606
|
utilities/backup/backup_engine_test.cc \
|
|
@@ -660,6 +668,7 @@ JNI_NATIVE_SOURCES = \
|
|
|
660
668
|
java/rocksjni/ingest_external_file_options.cc \
|
|
661
669
|
java/rocksjni/filter.cc \
|
|
662
670
|
java/rocksjni/iterator.cc \
|
|
671
|
+
java/rocksjni/jni_perf_context.cc \
|
|
663
672
|
java/rocksjni/jnicallback.cc \
|
|
664
673
|
java/rocksjni/loggerjnicallback.cc \
|
|
665
674
|
java/rocksjni/lru_cache.cc \
|
|
@@ -63,7 +63,8 @@ InternalIteratorBase<IndexValue>* BinarySearchIndexReader::NewIterator(
|
|
|
63
63
|
auto it = index_block.GetValue()->NewIndexIterator(
|
|
64
64
|
internal_comparator()->user_comparator(),
|
|
65
65
|
rep->get_global_seqno(BlockType::kIndex), iter, kNullStats, true,
|
|
66
|
-
index_has_first_key(), index_key_includes_seq(), index_value_is_full()
|
|
66
|
+
index_has_first_key(), index_key_includes_seq(), index_value_is_full(),
|
|
67
|
+
false /* block_contents_pinned */, user_defined_timestamps_persisted());
|
|
67
68
|
|
|
68
69
|
assert(it != nullptr);
|
|
69
70
|
index_block.TransferTo(it);
|