@nxtedition/rocksdb 8.2.0 → 8.2.2
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 +3 -3
- package/deps/rocksdb/rocksdb/CMakeLists.txt +16 -52
- package/deps/rocksdb/rocksdb/Makefile +10 -5
- package/deps/rocksdb/rocksdb/TARGETS +8 -345
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +92 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +32 -32
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +12 -9
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +6 -43
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +3 -13
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +8 -5
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +21 -47
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +3 -8
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +2 -1
- package/deps/rocksdb/rocksdb/cache/secondary_cache_adapter.cc +1 -2
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +44 -7
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +13 -14
- package/deps/rocksdb/rocksdb/db/blob/blob_contents.h +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +1 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +17 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +40 -21
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +41 -42
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_source.cc +5 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_source.h +2 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +5 -3
- package/deps/rocksdb/rocksdb/db/builder.cc +7 -6
- package/deps/rocksdb/rocksdb/db/builder.h +2 -2
- package/deps/rocksdb/rocksdb/db/c.cc +76 -5
- package/deps/rocksdb/rocksdb/db/c_test.c +141 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +32 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +5 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +8 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +21 -17
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +8 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +3 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +77 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +4 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +55 -8
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +142 -56
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +21 -20
- package/deps/rocksdb/rocksdb/db/convenience.cc +8 -6
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +260 -220
- package/deps/rocksdb/rocksdb/db/db_clip_test.cc +142 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +333 -27
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +189 -27
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +23 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +134 -90
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +5 -3
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +5 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +124 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +10 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +7 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +15 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +11 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +7 -8
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +54 -3
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +42 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +116 -1
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +9 -8
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +142 -63
- package/deps/rocksdb/rocksdb/db/db_test.cc +28 -7
- package/deps/rocksdb/rocksdb/db/db_test2.cc +71 -131
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +18 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +6 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +10 -10
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +25 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +88 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +67 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +5 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +86 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +15 -2
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +1 -2
- package/deps/rocksdb/rocksdb/db/flush_job.cc +21 -14
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +14 -7
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +31 -8
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +21 -19
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +42 -12
- package/deps/rocksdb/rocksdb/db/internal_stats.h +1 -0
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +92 -6
- package/deps/rocksdb/rocksdb/db/listener_test.cc +2 -2
- package/deps/rocksdb/rocksdb/db/log_format.h +8 -4
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -51
- package/deps/rocksdb/rocksdb/db/log_reader.h +16 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +125 -4
- package/deps/rocksdb/rocksdb/db/log_writer.cc +32 -2
- package/deps/rocksdb/rocksdb/db/log_writer.h +16 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +17 -46
- package/deps/rocksdb/rocksdb/db/memtable.h +1 -1
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +8 -4
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +1 -1
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +5 -4
- package/deps/rocksdb/rocksdb/db/repair.cc +38 -11
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/table_cache.cc +68 -51
- package/deps/rocksdb/rocksdb/db/table_cache.h +20 -10
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +6 -3
- package/deps/rocksdb/rocksdb/db/version_builder.cc +9 -5
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +140 -120
- package/deps/rocksdb/rocksdb/db/version_edit.cc +14 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +12 -4
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +21 -13
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +26 -16
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +9 -9
- package/deps/rocksdb/rocksdb/db/version_set.cc +292 -96
- package/deps/rocksdb/rocksdb/db/version_set.h +53 -28
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +1 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +62 -22
- package/deps/rocksdb/rocksdb/db/version_util.h +5 -4
- package/deps/rocksdb/rocksdb/db/write_batch.cc +3 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +119 -27
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +123 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +4 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +7 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +34 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +13 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +43 -33
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +29 -17
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +5 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +6 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +85 -50
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +96 -54
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.cc +122 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_value.h +206 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +9 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +9 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +322 -92
- package/deps/rocksdb/rocksdb/env/env_posix.cc +12 -8
- package/deps/rocksdb/rocksdb/env/env_test.cc +31 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1 -1
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +14 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +1 -1
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +5 -1
- package/deps/rocksdb/rocksdb/file/file_util.cc +3 -3
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +89 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +22 -7
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +3 -2
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +1 -1
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +3 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +154 -74
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +27 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +107 -28
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +2 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +7 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +137 -152
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +61 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +30 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +33 -16
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +87 -8
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +0 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +9 -2
- package/deps/rocksdb/rocksdb/logging/env_logger.h +2 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +78 -42
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +14 -9
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +4 -9
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +19 -11
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +211 -555
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +1 -1
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +36 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +17 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +10 -7
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +19 -18
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +10 -2
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +14 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +35 -2
- package/deps/rocksdb/rocksdb/options/cf_options.h +5 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1 -1
- package/deps/rocksdb/rocksdb/options/options.cc +12 -53
- package/deps/rocksdb/rocksdb/options/options_helper.cc +4 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +11 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +32 -4
- package/deps/rocksdb/rocksdb/options/options_test.cc +89 -5
- package/deps/rocksdb/rocksdb/port/lang.h +27 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +67 -24
- package/deps/rocksdb/rocksdb/src.mk +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +195 -35
- package/deps/rocksdb/rocksdb/table/block_based/block.h +197 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +71 -51
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +7 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +4 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +43 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +36 -6
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +266 -166
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +44 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +63 -56
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +10 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +14 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +918 -2
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +10 -9
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +6 -8
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +18 -23
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +8 -8
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +16 -32
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +7 -8
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +4 -5
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +3 -3
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +46 -53
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +12 -12
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +7 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +26 -23
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +3 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +3 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +7 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +5 -2
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +4 -2
- package/deps/rocksdb/rocksdb/table/format.cc +4 -4
- package/deps/rocksdb/rocksdb/table/format.h +1 -1
- package/deps/rocksdb/rocksdb/table/get_context.cc +1 -1
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +33 -22
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +4 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +4 -2
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +1 -1
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +18 -10
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -3
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +10 -7
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +4 -2
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +11 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +14 -5
- package/deps/rocksdb/rocksdb/table/table_properties.cc +2 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +6 -3
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/table/table_test.cc +291 -34
- package/deps/rocksdb/rocksdb/test_util/secondary_cache_test_util.h +3 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +5 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +33 -17
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +2 -2
- package/deps/rocksdb/rocksdb/util/compression.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c.cc +24 -83
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +7 -9
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +4 -1
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +9 -10
- package/deps/rocksdb/rocksdb/util/math.h +12 -7
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +16 -18
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +46 -2
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +6 -6
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +12 -7
- package/deps/rocksdb/rocksdb/util/stop_watch.h +31 -13
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +2 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +2 -1
- package/deps/rocksdb/rocksdb/util/udt_util.h +77 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +11 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +34 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +15 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +5 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +29 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +0 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +10 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +6 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +5 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +5 -0
- 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/memory/{memory_allocator.h → memory_allocator_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/monitoring/{statistics.h → statistics_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/table/block_based/{flush_block_policy.h → flush_block_policy_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/util/{rate_limiter.h → rate_limiter_impl.h} +0 -0
- /package/deps/rocksdb/rocksdb/utilities/agg_merge/{agg_merge.h → agg_merge_impl.h} +0 -0
|
@@ -101,7 +101,9 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
101
101
|
{"compaction_style", "kCompactionStyleLevel"},
|
|
102
102
|
{"compaction_pri", "kOldestSmallestSeqFirst"},
|
|
103
103
|
{"verify_checksums_in_compaction", "false"},
|
|
104
|
-
{"compaction_options_fifo",
|
|
104
|
+
{"compaction_options_fifo",
|
|
105
|
+
"{allow_compaction=true;max_table_files_size=11002244;"
|
|
106
|
+
"file_temperature_age_thresholds={{temperature=kCold;age=12345}}}"},
|
|
105
107
|
{"max_sequential_skip_in_iterations", "24"},
|
|
106
108
|
{"inplace_update_support", "true"},
|
|
107
109
|
{"report_bg_io_stats", "true"},
|
|
@@ -128,6 +130,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
128
130
|
{"blob_file_starting_level", "1"},
|
|
129
131
|
{"prepopulate_blob_cache", "kDisable"},
|
|
130
132
|
{"last_level_temperature", "kWarm"},
|
|
133
|
+
{"persist_user_defined_timestamps", "true"},
|
|
131
134
|
};
|
|
132
135
|
|
|
133
136
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -243,7 +246,18 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
243
246
|
ASSERT_EQ(new_cf_opt.compaction_style, kCompactionStyleLevel);
|
|
244
247
|
ASSERT_EQ(new_cf_opt.compaction_pri, kOldestSmallestSeqFirst);
|
|
245
248
|
ASSERT_EQ(new_cf_opt.compaction_options_fifo.max_table_files_size,
|
|
246
|
-
static_cast<uint64_t>(
|
|
249
|
+
static_cast<uint64_t>(11002244));
|
|
250
|
+
ASSERT_EQ(new_cf_opt.compaction_options_fifo.allow_compaction, true);
|
|
251
|
+
ASSERT_EQ(
|
|
252
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds.size(),
|
|
253
|
+
1);
|
|
254
|
+
ASSERT_EQ(
|
|
255
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds[0]
|
|
256
|
+
.temperature,
|
|
257
|
+
Temperature::kCold);
|
|
258
|
+
ASSERT_EQ(
|
|
259
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds[0].age,
|
|
260
|
+
12345);
|
|
247
261
|
ASSERT_EQ(new_cf_opt.max_sequential_skip_in_iterations,
|
|
248
262
|
static_cast<uint64_t>(24));
|
|
249
263
|
ASSERT_EQ(new_cf_opt.inplace_update_support, true);
|
|
@@ -269,6 +283,7 @@ TEST_F(OptionsTest, GetOptionsFromMapTest) {
|
|
|
269
283
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
270
284
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
271
285
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
286
|
+
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
272
287
|
|
|
273
288
|
cf_options_map["write_buffer_size"] = "hello";
|
|
274
289
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(exact, base_cf_opt, cf_options_map,
|
|
@@ -2161,7 +2176,7 @@ TEST_F(OptionsTest, ConvertOptionsTest) {
|
|
|
2161
2176
|
const auto table_opt = table_factory->GetOptions<BlockBasedTableOptions>();
|
|
2162
2177
|
ASSERT_NE(table_opt, nullptr);
|
|
2163
2178
|
|
|
2164
|
-
ASSERT_EQ(table_opt->block_cache->GetCapacity(),
|
|
2179
|
+
ASSERT_EQ(table_opt->block_cache->GetCapacity(), 32UL << 20);
|
|
2165
2180
|
ASSERT_EQ(table_opt->block_size, leveldb_opt.block_size);
|
|
2166
2181
|
ASSERT_EQ(table_opt->block_restart_interval,
|
|
2167
2182
|
leveldb_opt.block_restart_interval);
|
|
@@ -2293,7 +2308,9 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2293
2308
|
{"compaction_style", "kCompactionStyleLevel"},
|
|
2294
2309
|
{"compaction_pri", "kOldestSmallestSeqFirst"},
|
|
2295
2310
|
{"verify_checksums_in_compaction", "false"},
|
|
2296
|
-
{"compaction_options_fifo",
|
|
2311
|
+
{"compaction_options_fifo",
|
|
2312
|
+
"{allow_compaction=true;max_table_files_size=11002244;"
|
|
2313
|
+
"file_temperature_age_thresholds={{temperature=kCold;age=12345}}}"},
|
|
2297
2314
|
{"max_sequential_skip_in_iterations", "24"},
|
|
2298
2315
|
{"inplace_update_support", "true"},
|
|
2299
2316
|
{"report_bg_io_stats", "true"},
|
|
@@ -2320,6 +2337,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2320
2337
|
{"blob_file_starting_level", "1"},
|
|
2321
2338
|
{"prepopulate_blob_cache", "kDisable"},
|
|
2322
2339
|
{"last_level_temperature", "kWarm"},
|
|
2340
|
+
{"persist_user_defined_timestamps", "true"},
|
|
2323
2341
|
};
|
|
2324
2342
|
|
|
2325
2343
|
std::unordered_map<std::string, std::string> db_options_map = {
|
|
@@ -2433,7 +2451,18 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2433
2451
|
ASSERT_EQ(new_cf_opt.compaction_style, kCompactionStyleLevel);
|
|
2434
2452
|
ASSERT_EQ(new_cf_opt.compaction_pri, kOldestSmallestSeqFirst);
|
|
2435
2453
|
ASSERT_EQ(new_cf_opt.compaction_options_fifo.max_table_files_size,
|
|
2436
|
-
static_cast<uint64_t>(
|
|
2454
|
+
static_cast<uint64_t>(11002244));
|
|
2455
|
+
ASSERT_EQ(new_cf_opt.compaction_options_fifo.allow_compaction, true);
|
|
2456
|
+
ASSERT_EQ(
|
|
2457
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds.size(),
|
|
2458
|
+
1);
|
|
2459
|
+
ASSERT_EQ(
|
|
2460
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds[0]
|
|
2461
|
+
.temperature,
|
|
2462
|
+
Temperature::kCold);
|
|
2463
|
+
ASSERT_EQ(
|
|
2464
|
+
new_cf_opt.compaction_options_fifo.file_temperature_age_thresholds[0].age,
|
|
2465
|
+
12345);
|
|
2437
2466
|
ASSERT_EQ(new_cf_opt.max_sequential_skip_in_iterations,
|
|
2438
2467
|
static_cast<uint64_t>(24));
|
|
2439
2468
|
ASSERT_EQ(new_cf_opt.inplace_update_support, true);
|
|
@@ -2459,6 +2488,7 @@ TEST_F(OptionsOldApiTest, GetOptionsFromMapTest) {
|
|
|
2459
2488
|
ASSERT_EQ(new_cf_opt.prepopulate_blob_cache, PrepopulateBlobCache::kDisable);
|
|
2460
2489
|
ASSERT_EQ(new_cf_opt.last_level_temperature, Temperature::kWarm);
|
|
2461
2490
|
ASSERT_EQ(new_cf_opt.bottommost_temperature, Temperature::kWarm);
|
|
2491
|
+
ASSERT_EQ(new_cf_opt.persist_user_defined_timestamps, true);
|
|
2462
2492
|
|
|
2463
2493
|
cf_options_map["write_buffer_size"] = "hello";
|
|
2464
2494
|
ASSERT_NOK(GetColumnFamilyOptionsFromMap(cf_config_options, base_cf_opt,
|
|
@@ -3923,6 +3953,36 @@ class OptionsSanityCheckTest : public OptionsParserTest,
|
|
|
3923
3953
|
const std::string kOptionsFileName = "OPTIONS";
|
|
3924
3954
|
};
|
|
3925
3955
|
|
|
3956
|
+
TEST_P(OptionsSanityCheckTest, MergeOperatorErrorMessage) {
|
|
3957
|
+
ColumnFamilyOptions opts;
|
|
3958
|
+
Random rnd(301);
|
|
3959
|
+
opts.merge_operator.reset(test::RandomMergeOperator(&rnd));
|
|
3960
|
+
std::string merge_op_name = opts.merge_operator->Name();
|
|
3961
|
+
ASSERT_OK(PersistCFOptions(opts));
|
|
3962
|
+
|
|
3963
|
+
// Test when going from merge operator -> nullptr
|
|
3964
|
+
opts.merge_operator = nullptr;
|
|
3965
|
+
Status s =
|
|
3966
|
+
SanityCheckCFOptions(opts, ConfigOptions::kSanityLevelLooselyCompatible);
|
|
3967
|
+
ASSERT_TRUE(s.IsInvalidArgument());
|
|
3968
|
+
std::string err_msg = s.ToString();
|
|
3969
|
+
std::string specified = "The specified one is " + kNullptrString;
|
|
3970
|
+
std::string persisted = "the persisted one is " + merge_op_name;
|
|
3971
|
+
ASSERT_TRUE(err_msg.find(specified) != std::string::npos);
|
|
3972
|
+
ASSERT_TRUE(err_msg.find(persisted) != std::string::npos);
|
|
3973
|
+
|
|
3974
|
+
// Test when using a different merge operator
|
|
3975
|
+
opts.merge_operator.reset(test::RandomMergeOperator(&rnd));
|
|
3976
|
+
s = SanityCheckCFOptions(opts, ConfigOptions::kSanityLevelLooselyCompatible);
|
|
3977
|
+
ASSERT_TRUE(s.IsInvalidArgument());
|
|
3978
|
+
err_msg = s.ToString();
|
|
3979
|
+
specified =
|
|
3980
|
+
"The specified one is " + std::string(opts.merge_operator->Name());
|
|
3981
|
+
persisted = "the persisted one is " + merge_op_name;
|
|
3982
|
+
ASSERT_TRUE(err_msg.find(specified) != std::string::npos);
|
|
3983
|
+
ASSERT_TRUE(err_msg.find(persisted) != std::string::npos);
|
|
3984
|
+
}
|
|
3985
|
+
|
|
3926
3986
|
TEST_P(OptionsSanityCheckTest, CFOptionsSanityCheck) {
|
|
3927
3987
|
ColumnFamilyOptions opts;
|
|
3928
3988
|
Random rnd(301);
|
|
@@ -4068,6 +4128,30 @@ TEST_P(OptionsSanityCheckTest, CFOptionsSanityCheck) {
|
|
|
4068
4128
|
SanityCheckCFOptions(opts, config_options_.ignore_unsupported_options);
|
|
4069
4129
|
}
|
|
4070
4130
|
}
|
|
4131
|
+
|
|
4132
|
+
// persist_user_defined_timestamps
|
|
4133
|
+
{
|
|
4134
|
+
// Test change from true to false not allowed in loose and exact mode.
|
|
4135
|
+
opts.persist_user_defined_timestamps = false;
|
|
4136
|
+
ASSERT_NOK(SanityCheckCFOptions(
|
|
4137
|
+
opts, ConfigOptions::kSanityLevelLooselyCompatible));
|
|
4138
|
+
ASSERT_NOK(
|
|
4139
|
+
SanityCheckCFOptions(opts, ConfigOptions::kSanityLevelExactMatch));
|
|
4140
|
+
|
|
4141
|
+
// persist the change
|
|
4142
|
+
ASSERT_OK(PersistCFOptions(opts));
|
|
4143
|
+
SanityCheckCFOptions(opts, config_options_.ignore_unsupported_options);
|
|
4144
|
+
|
|
4145
|
+
// Test change from false to true not allowed in loose and exact mode.
|
|
4146
|
+
opts.persist_user_defined_timestamps = true;
|
|
4147
|
+
ASSERT_NOK(SanityCheckCFOptions(
|
|
4148
|
+
opts, ConfigOptions::kSanityLevelLooselyCompatible));
|
|
4149
|
+
ASSERT_NOK(
|
|
4150
|
+
SanityCheckCFOptions(opts, ConfigOptions::kSanityLevelExactMatch));
|
|
4151
|
+
|
|
4152
|
+
// persist the change
|
|
4153
|
+
ASSERT_OK(PersistCFOptions(opts));
|
|
4154
|
+
}
|
|
4071
4155
|
}
|
|
4072
4156
|
|
|
4073
4157
|
TEST_P(OptionsSanityCheckTest, DBOptionsSanityCheck) {
|
|
@@ -68,3 +68,30 @@ constexpr bool kMustFreeHeapAllocations = false;
|
|
|
68
68
|
#else
|
|
69
69
|
#define TSAN_SUPPRESSION
|
|
70
70
|
#endif // TSAN_SUPPRESSION
|
|
71
|
+
|
|
72
|
+
// Compile-time CPU feature testing compatibility
|
|
73
|
+
//
|
|
74
|
+
// A way to be extra sure these defines have been included.
|
|
75
|
+
#define ASSERT_FEATURE_COMPAT_HEADER() /* empty */
|
|
76
|
+
|
|
77
|
+
// MSVC doesn't support the same defines that gcc and clang provide
|
|
78
|
+
// but does some like __AVX__. Here we can infer some features from others.
|
|
79
|
+
#ifdef __AVX__
|
|
80
|
+
#define __SSE4_2__ 1
|
|
81
|
+
#define __PCLMUL__ 1
|
|
82
|
+
#endif // __AVX__
|
|
83
|
+
|
|
84
|
+
// A way to disable PCLMUL
|
|
85
|
+
#ifdef NO_PCLMUL
|
|
86
|
+
#undef __PCLMUL__
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
// popcnt is generally implied by SSE4.2
|
|
90
|
+
#if defined(__SSE4_2__)
|
|
91
|
+
#define __POPCNT__ 1
|
|
92
|
+
#endif
|
|
93
|
+
|
|
94
|
+
// A way to disable POPCNT
|
|
95
|
+
#ifdef NO_POPCNT
|
|
96
|
+
#undef __POPCNT__
|
|
97
|
+
#endif
|
|
@@ -128,6 +128,14 @@ void PrintStackTraceLine(const char* symbol, void* frame) {
|
|
|
128
128
|
|
|
129
129
|
#endif
|
|
130
130
|
|
|
131
|
+
const char* GetLldbScriptSelectThread(long long tid) {
|
|
132
|
+
// NOTE: called from a signal handler, so no heap allocation
|
|
133
|
+
static char script[80];
|
|
134
|
+
snprintf(script, sizeof(script),
|
|
135
|
+
"script -l python -- lldb.process.SetSelectedThreadByID(%lld)", tid);
|
|
136
|
+
return script;
|
|
137
|
+
}
|
|
138
|
+
|
|
131
139
|
} // namespace
|
|
132
140
|
|
|
133
141
|
void PrintStack(void* frames[], int num_frames) {
|
|
@@ -152,9 +160,13 @@ void PrintStack(int first_frames_to_skip) {
|
|
|
152
160
|
// * It doesn't appear easy to detect when ASLR is in use.
|
|
153
161
|
// * With DEBUG_LEVEL < 2, backtrace() can skip frames that are not skipped
|
|
154
162
|
// in GDB.
|
|
163
|
+
//
|
|
164
|
+
// LLDB also available as an option
|
|
165
|
+
bool lldb_stack_trace = getenv("ROCKSDB_LLDB_STACK") != nullptr;
|
|
155
166
|
#if defined(OS_LINUX)
|
|
156
167
|
// Default true, override with ROCKSDB_BACKTRACE_STACK=1
|
|
157
|
-
bool gdb_stack_trace =
|
|
168
|
+
bool gdb_stack_trace =
|
|
169
|
+
!lldb_stack_trace && getenv("ROCKSDB_BACKTRACE_STACK") == nullptr;
|
|
158
170
|
#else
|
|
159
171
|
// Default false, override with ROCKSDB_GDB_STACK=1
|
|
160
172
|
bool gdb_stack_trace = getenv("ROCKSDB_GDB_STACK") != nullptr;
|
|
@@ -164,53 +176,84 @@ void PrintStack(int first_frames_to_skip) {
|
|
|
164
176
|
char* debug_env = getenv("ROCKSDB_DEBUG");
|
|
165
177
|
bool debug = debug_env != nullptr && strlen(debug_env) > 0;
|
|
166
178
|
|
|
167
|
-
if (gdb_stack_trace || debug) {
|
|
179
|
+
if (lldb_stack_trace || gdb_stack_trace || debug) {
|
|
168
180
|
// Allow ouside debugger to attach, even with Yama security restrictions
|
|
169
181
|
#ifdef PR_SET_PTRACER_ANY
|
|
170
182
|
(void)prctl(PR_SET_PTRACER, PR_SET_PTRACER_ANY, 0, 0, 0);
|
|
171
183
|
#endif
|
|
172
184
|
// Try to invoke GDB, either for stack trace or debugging.
|
|
173
|
-
long long
|
|
185
|
+
long long attach_pid = getpid();
|
|
186
|
+
// NOTE: we're in a signal handler, so no heap allocation
|
|
187
|
+
char attach_pid_str[20];
|
|
188
|
+
snprintf(attach_pid_str, sizeof(attach_pid_str), "%lld", attach_pid);
|
|
174
189
|
|
|
175
190
|
// `gdb -p PID` seems to always attach to main thread, but `gdb -p TID`
|
|
176
191
|
// seems to be able to attach to a particular thread in a process, which
|
|
177
192
|
// makes sense as the main thread TID == PID of the process.
|
|
178
193
|
// But I haven't found that gdb capability documented anywhere, so leave
|
|
179
194
|
// a back door to attach to main thread.
|
|
195
|
+
long long gdb_attach_id = attach_pid;
|
|
196
|
+
// Save current thread id before fork
|
|
197
|
+
long long attach_tid = 0;
|
|
180
198
|
#ifdef OS_LINUX
|
|
199
|
+
attach_tid = gettid();
|
|
181
200
|
if (getenv("ROCKSDB_DEBUG_USE_PID") == nullptr) {
|
|
182
|
-
|
|
201
|
+
gdb_attach_id = attach_tid;
|
|
183
202
|
}
|
|
184
203
|
#endif
|
|
185
|
-
|
|
186
|
-
|
|
204
|
+
|
|
205
|
+
char gdb_attach_id_str[20];
|
|
206
|
+
snprintf(gdb_attach_id_str, sizeof(gdb_attach_id_str), "%lld",
|
|
207
|
+
gdb_attach_id);
|
|
208
|
+
|
|
187
209
|
pid_t child_pid = fork();
|
|
188
210
|
if (child_pid == 0) {
|
|
189
211
|
// child process
|
|
190
212
|
if (debug) {
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
213
|
+
if (strcmp(debug_env, "lldb") == 0) {
|
|
214
|
+
fprintf(stderr, "Invoking LLDB for debugging (ROCKSDB_DEBUG=%s)...\n",
|
|
215
|
+
debug_env);
|
|
216
|
+
execlp(/*cmd in PATH*/ "lldb", /*arg0*/ "lldb", "-p", attach_pid_str,
|
|
217
|
+
/*"-Q",*/ "-o", GetLldbScriptSelectThread(attach_tid),
|
|
218
|
+
(char*)nullptr);
|
|
219
|
+
return;
|
|
220
|
+
} else {
|
|
221
|
+
fprintf(stderr, "Invoking GDB for debugging (ROCKSDB_DEBUG=%s)...\n",
|
|
222
|
+
debug_env);
|
|
223
|
+
execlp(/*cmd in PATH*/ "gdb", /*arg0*/ "gdb", "-p", gdb_attach_id_str,
|
|
224
|
+
(char*)nullptr);
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
196
227
|
} else {
|
|
197
|
-
fprintf(stderr, "Invoking GDB for stack trace...\n");
|
|
198
|
-
|
|
199
|
-
// Skip top ~4 frames here in PrintStack
|
|
200
|
-
// See https://stackoverflow.com/q/40991943/454544
|
|
201
|
-
auto bt_in_gdb =
|
|
202
|
-
"frame apply level 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 "
|
|
203
|
-
"21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 "
|
|
204
|
-
"42 43 44 -q frame";
|
|
205
228
|
// Redirect child stdout to original stderr
|
|
206
229
|
dup2(2, 1);
|
|
207
230
|
// No child stdin (don't use pager)
|
|
208
231
|
close(0);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
232
|
+
if (lldb_stack_trace) {
|
|
233
|
+
fprintf(stderr, "Invoking LLDB for stack trace...\n");
|
|
234
|
+
|
|
235
|
+
// Skip top ~8 frames here in PrintStack
|
|
236
|
+
auto bt_in_lldb =
|
|
237
|
+
"script -l python -- for f in lldb.thread.frames[8:]: print(f)";
|
|
238
|
+
execlp(/*cmd in PATH*/ "lldb", /*arg0*/ "lldb", "-p", attach_pid_str,
|
|
239
|
+
"-b", "-Q", "-o", GetLldbScriptSelectThread(attach_tid), "-o",
|
|
240
|
+
bt_in_lldb, (char*)nullptr);
|
|
241
|
+
} else {
|
|
242
|
+
// gdb_stack_trace
|
|
243
|
+
fprintf(stderr, "Invoking GDB for stack trace...\n");
|
|
244
|
+
|
|
245
|
+
// Skip top ~4 frames here in PrintStack
|
|
246
|
+
// See https://stackoverflow.com/q/40991943/454544
|
|
247
|
+
auto bt_in_gdb =
|
|
248
|
+
"frame apply level 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 "
|
|
249
|
+
"21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 "
|
|
250
|
+
"42 43 44 -q frame";
|
|
251
|
+
// -n : Loading config files can apparently cause failures with the
|
|
252
|
+
// other options here.
|
|
253
|
+
// -batch : non-interactive; suppress banners as much as possible
|
|
254
|
+
execlp(/*cmd in PATH*/ "gdb", /*arg0*/ "gdb", "-n", "-batch", "-p",
|
|
255
|
+
gdb_attach_id_str, "-ex", bt_in_gdb, (char*)nullptr);
|
|
256
|
+
}
|
|
214
257
|
return;
|
|
215
258
|
}
|
|
216
259
|
} else {
|
|
@@ -377,6 +377,7 @@ STRESS_LIB_SOURCES = \
|
|
|
377
377
|
db_stress_tool/db_stress_test_base.cc \
|
|
378
378
|
db_stress_tool/db_stress_tool.cc \
|
|
379
379
|
db_stress_tool/expected_state.cc \
|
|
380
|
+
db_stress_tool/expected_value.cc \
|
|
380
381
|
db_stress_tool/no_batched_ops_stress.cc \
|
|
381
382
|
db_stress_tool/multi_ops_txns_stress.cc \
|
|
382
383
|
|
|
@@ -459,6 +460,7 @@ TEST_MAIN_SOURCES = \
|
|
|
459
460
|
db/db_bloom_filter_test.cc \
|
|
460
461
|
db/db_compaction_filter_test.cc \
|
|
461
462
|
db/db_compaction_test.cc \
|
|
463
|
+
db/db_clip_test.cc \
|
|
462
464
|
db/db_dynamic_level_test.cc \
|
|
463
465
|
db/db_encryption_test.cc \
|
|
464
466
|
db/db_flush_test.cc \
|
|
@@ -46,9 +46,8 @@ InternalIteratorBase<IndexValue>* BinarySearchIndexReader::NewIterator(
|
|
|
46
46
|
const BlockBasedTable::Rep* rep = table()->get_rep();
|
|
47
47
|
const bool no_io = (read_options.read_tier == kBlockCacheTier);
|
|
48
48
|
CachableEntry<Block> index_block;
|
|
49
|
-
const Status s =
|
|
50
|
-
|
|
51
|
-
get_context, lookup_context, &index_block);
|
|
49
|
+
const Status s = GetOrReadIndexBlock(no_io, get_context, lookup_context,
|
|
50
|
+
&index_block, read_options);
|
|
52
51
|
if (!s.ok()) {
|
|
53
52
|
if (iter != nullptr) {
|
|
54
53
|
iter->Invalidate(s);
|