@nxtedition/rocksdb 15.4.1 → 16.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/binding.cc +70 -23
- package/deps/rocksdb/rocksdb/.clang-tidy +86 -0
- package/deps/rocksdb/rocksdb/BUCK +42 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +11 -0
- package/deps/rocksdb/rocksdb/Makefile +59 -32
- package/deps/rocksdb/rocksdb/cache/cache.cc +0 -5
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +9 -9
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +3 -3
- package/deps/rocksdb/rocksdb/cache/cache_key.h +5 -5
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +16 -16
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +258 -294
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +98 -49
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +1 -5
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +2 -3
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +18 -18
- package/deps/rocksdb/rocksdb/crash_test.mk +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +23 -22
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +6 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +14 -16
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +38 -26
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +5 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +101 -18
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +12 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_source_test.cc +6 -9
- package/deps/rocksdb/rocksdb/db/builder.cc +23 -0
- package/deps/rocksdb/rocksdb/db/builder.h +7 -0
- package/deps/rocksdb/rocksdb/db/c.cc +373 -57
- package/deps/rocksdb/rocksdb/db/c_test.c +101 -1
- package/deps/rocksdb/rocksdb/db/column_family.cc +31 -3
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +10 -13
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +35 -48
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +13 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +201 -39
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +15 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +2 -455
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.cc +4 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_outputs.h +19 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +72 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +12 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +405 -83
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +25 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +23 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +1410 -106
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +12 -5
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +2 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_job.cc +19 -10
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +505 -45
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.cc +2 -2
- package/deps/rocksdb/rocksdb/db/compaction/subcompaction_state.h +9 -1
- package/deps/rocksdb/rocksdb/db/compaction/tiered_compaction_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +7 -9
- package/deps/rocksdb/rocksdb/db/convenience.cc +4 -4
- package/deps/rocksdb/rocksdb/db/convenience_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +60 -88
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +10 -12
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +471 -40
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +116 -2
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +5 -15
- package/deps/rocksdb/rocksdb/db/db_compaction_abort_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +329 -29
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +155 -13
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.cc +54 -31
- package/deps/rocksdb/rocksdb/db/db_impl/compacted_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +232 -70
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +57 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +224 -31
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +4 -2
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_follower.cc +1 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +164 -8
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +6 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +5 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +47 -35
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +22 -9
- package/deps/rocksdb/rocksdb/db/db_iter.cc +9 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +371 -6
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +7 -5
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +22 -23
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +40 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +32 -13
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_readonly_with_timestamp_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/db_secondary_test.cc +68 -15
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +6 -21
- package/deps/rocksdb/rocksdb/db/db_test.cc +644 -128
- package/deps/rocksdb/rocksdb/db/db_test2.cc +198 -81
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +35 -10
- package/deps/rocksdb/rocksdb/db/db_test_util.h +8 -2
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +36 -32
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +11 -7
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +499 -0
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +284 -20
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db/dbformat.h +0 -5
- package/deps/rocksdb/rocksdb/db/error_handler.cc +24 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +12 -14
- package/deps/rocksdb/rocksdb/db/experimental.cc +13 -10
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +22 -3
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +21 -15
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +4 -6
- package/deps/rocksdb/rocksdb/db/flush_job.cc +11 -3
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +5 -6
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +4 -2
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +17 -17
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +13 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +2 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +154 -27
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +6 -6
- package/deps/rocksdb/rocksdb/db/memtable.cc +197 -51
- package/deps/rocksdb/rocksdb/db/memtable.h +6 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +3 -4
- package/deps/rocksdb/rocksdb/db/merge_test.cc +37 -35
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +9 -11
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler.cc +10 -1
- package/deps/rocksdb/rocksdb/db/periodic_task_scheduler_test.cc +292 -15
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +10 -17
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +6 -8
- package/deps/rocksdb/rocksdb/db/repair.cc +10 -10
- package/deps/rocksdb/rocksdb/db/seqno_time_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/table_cache.cc +142 -135
- package/deps/rocksdb/rocksdb/db/table_cache.h +30 -6
- package/deps/rocksdb/rocksdb/db/table_cache_sync_and_async.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_builder.cc +11 -50
- package/deps/rocksdb/rocksdb/db/version_builder.h +2 -1
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/version_edit.cc +51 -2
- package/deps/rocksdb/rocksdb/db/version_edit.h +91 -29
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +7 -7
- package/deps/rocksdb/rocksdb/db/version_set.cc +211 -50
- package/deps/rocksdb/rocksdb/db/version_set.h +40 -3
- package/deps/rocksdb/rocksdb/db/version_set_sync_and_async.h +5 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +294 -21
- package/deps/rocksdb/rocksdb/db/version_util.cc +96 -0
- package/deps/rocksdb/rocksdb/db/version_util.h +24 -0
- package/deps/rocksdb/rocksdb/db/wide/db_wide_basic_test.cc +5 -5
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.cc +647 -31
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization.h +219 -1
- package/deps/rocksdb/rocksdb/db/wide/wide_column_serialization_test.cc +549 -12
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +3 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +21 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +32 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +74 -22
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +9 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +143 -61
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +15 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +76 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +92 -72
- package/deps/rocksdb/rocksdb/env/env.cc +1 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +365 -2
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +31 -30
- package/deps/rocksdb/rocksdb/env/io_posix.cc +8 -11
- package/deps/rocksdb/rocksdb/env/io_posix.h +30 -1
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +43 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +1 -1
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +108 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +32 -4
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +4 -4
- package/deps/rocksdb/rocksdb/file/file_util.cc +8 -2
- package/deps/rocksdb/rocksdb/file/file_util.h +2 -1
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +331 -12
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +52 -35
- package/deps/rocksdb/rocksdb/folly.mk +22 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_cache.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_compression.h +100 -54
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +67 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +149 -13
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +1 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +78 -97
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +3 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/external_table.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +5 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +17 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/io_dispatcher.h +358 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +20 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +63 -21
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +10 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +2 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +13 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +3 -14
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +49 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +8 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +77 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +15 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/tool_hooks.h +16 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +5 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +2 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/user_defined_index.h +106 -46
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +14 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +5 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +2 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +7 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +2 -2
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +1 -2
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +2 -2
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +226 -8
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +490 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +3 -3
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +11 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +4 -12
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +5 -5
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +21 -4
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +9 -3
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +21 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +21 -1
- package/deps/rocksdb/rocksdb/options/cf_options.h +2 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +0 -2
- package/deps/rocksdb/rocksdb/options/db_options.cc +26 -5
- package/deps/rocksdb/rocksdb/options/db_options.h +3 -1
- package/deps/rocksdb/rocksdb/options/options.cc +5 -1
- package/deps/rocksdb/rocksdb/options/options_helper.cc +7 -2
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +109 -103
- package/deps/rocksdb/rocksdb/options/options_test.cc +14 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +15 -17
- package/deps/rocksdb/rocksdb/port/lang.h +4 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +0 -23
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +36 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +9 -0
- package/deps/rocksdb/rocksdb/src.mk +12 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +571 -292
- package/deps/rocksdb/rocksdb/table/block_based/block.h +143 -53
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +154 -90
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +51 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +0 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +147 -734
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +30 -233
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +178 -108
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +13 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +17 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_sync_and_async.h +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +70 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +168 -24
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +25 -9
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_cache.h +9 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +548 -169
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_util.h +156 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +73 -30
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +74 -7
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +20 -14
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +22 -12
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.cc +332 -0
- package/deps/rocksdb/rocksdb/table/block_based/multi_scan_index_iterator.h +133 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +4 -2
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +3 -2
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +4 -1
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +0 -1
- package/deps/rocksdb/rocksdb/table/block_based/user_defined_index_wrapper.h +126 -46
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +31 -3
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +1 -2
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +3 -1
- package/deps/rocksdb/rocksdb/table/external_table.cc +25 -4
- package/deps/rocksdb/rocksdb/table/format.cc +27 -15
- package/deps/rocksdb/rocksdb/table/format.h +41 -15
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +1 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +22 -12
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +7 -21
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +0 -1
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +88 -13
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +53 -42
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +3 -12
- package/deps/rocksdb/rocksdb/table/table_builder.h +0 -4
- package/deps/rocksdb/rocksdb/table/table_properties.cc +18 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +2 -3
- package/deps/rocksdb/rocksdb/table/table_test.cc +848 -172
- package/deps/rocksdb/rocksdb/table/unique_id.cc +24 -20
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +8 -8
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +5 -4
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +2 -1
- package/deps/rocksdb/rocksdb/test_util/testutil.h +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +2 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +238 -120
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +2 -4
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +4 -8
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +2 -3
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +82 -20
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +41 -47
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +9 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +5 -6
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/tool_hooks.cc +6 -5
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +4 -4
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +1 -3
- package/deps/rocksdb/rocksdb/util/atomic.h +30 -23
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.cc +6 -7
- package/deps/rocksdb/rocksdb/util/auto_tune_compressor.h +3 -3
- package/deps/rocksdb/rocksdb/util/bit_fields.h +68 -46
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +16 -16
- package/deps/rocksdb/rocksdb/util/coding.h +14 -27
- package/deps/rocksdb/rocksdb/util/compression.cc +365 -207
- package/deps/rocksdb/rocksdb/util/compression.h +16 -1298
- package/deps/rocksdb/rocksdb/util/compression_test.cc +347 -61
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +8 -9
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +1 -1
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +1 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +3 -3
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +18 -18
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +3 -3
- package/deps/rocksdb/rocksdb/util/hash_test.cc +19 -7
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.cc +1099 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_imp.h +36 -0
- package/deps/rocksdb/rocksdb/util/io_dispatcher_test.cc +1919 -0
- package/deps/rocksdb/rocksdb/util/math.h +3 -1
- package/deps/rocksdb/rocksdb/util/mutexlock.h +19 -19
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +25 -25
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.cc +5 -7
- package/deps/rocksdb/rocksdb/util/simple_mixed_compressor.h +4 -5
- package/deps/rocksdb/rocksdb/util/slice.cc +0 -10
- package/deps/rocksdb/rocksdb/util/slice_test.cc +35 -1
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +5 -7
- package/deps/rocksdb/rocksdb/util/status.cc +3 -1
- package/deps/rocksdb/rocksdb/util/stop_watch.h +2 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_test.cc +123 -78
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +12 -93
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +1 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +0 -21
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +6 -48
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +94 -307
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +12 -58
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +2 -8
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +2 -3
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +205 -811
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +18 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +2 -7
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +1 -9
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +17 -11
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +68 -61
- package/deps/rocksdb/rocksdb/utilities/debug.cc +2 -1
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +105 -59
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +274 -7
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs_test.cc +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +13 -17
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +16 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +25 -25
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +40 -40
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +2 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +17 -19
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +4 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +3 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +6 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_seqno_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +91 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.cc +562 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/bitvector.h +615 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.cc +2575 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/louds_trie.h +685 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_db_test.cc +2843 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.cc +567 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_factory.h +275 -0
- package/deps/rocksdb/rocksdb/utilities/trie_index/trie_index_test.cc +5183 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +4 -3
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +3 -3
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +93 -88
- package/deps/rocksdb/rocksdb.gyp +7 -0
- package/index.js +70 -10
- package/iterator.js +25 -3
- package/max_rev_operator.h +9 -5
- package/package.json +1 -1
- package/prebuilds/darwin-arm64/@nxtedition+rocksdb.node +0 -0
- package/prebuilds/linux-x64/@nxtedition+rocksdb.node +0 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +0 -43
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +0 -55
package/binding.cc
CHANGED
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
#include <re2/re2.h>
|
|
22
22
|
|
|
23
|
+
#include <cmath>
|
|
23
24
|
#include <iostream>
|
|
24
25
|
#include <memory>
|
|
25
26
|
#include <optional>
|
|
@@ -550,10 +551,10 @@ class Iterator final : public BaseIterator {
|
|
|
550
551
|
rocksdb::ColumnFamilyHandle* column = database->db->DefaultColumnFamily();
|
|
551
552
|
NAPI_STATUS_THROWS(GetProperty(env, options, "column", column));
|
|
552
553
|
|
|
553
|
-
Encoding keyEncoding;
|
|
554
|
+
Encoding keyEncoding = Encoding::Buffer;
|
|
554
555
|
NAPI_STATUS_THROWS(GetProperty(env, options, "keyEncoding", keyEncoding));
|
|
555
556
|
|
|
556
|
-
Encoding valueEncoding;
|
|
557
|
+
Encoding valueEncoding = Encoding::Buffer;
|
|
557
558
|
NAPI_STATUS_THROWS(GetProperty(env, options, "valueEncoding", valueEncoding));
|
|
558
559
|
|
|
559
560
|
rocksdb::ReadOptions readOptions;
|
|
@@ -600,7 +601,9 @@ class Iterator final : public BaseIterator {
|
|
|
600
601
|
std::vector<rocksdb::PinnableSlice> keys;
|
|
601
602
|
std::vector<rocksdb::PinnableSlice> values;
|
|
602
603
|
size_t count = 0;
|
|
604
|
+
size_t bytes = 0;
|
|
603
605
|
bool finished = false;
|
|
606
|
+
bool limited = false;
|
|
604
607
|
};
|
|
605
608
|
|
|
606
609
|
napi_value resourceName;
|
|
@@ -614,13 +617,16 @@ class Iterator final : public BaseIterator {
|
|
|
614
617
|
|
|
615
618
|
const auto deadline = timeout ? database_->db->GetEnv()->NowMicros() + timeout * 1000 : 0;
|
|
616
619
|
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
+
while (true) {
|
|
621
|
+
if (state.count >= count || state.bytes > highWaterMarkBytes_) {
|
|
622
|
+
// Batch cap (size/bytes) reached: more data may exist, so this is
|
|
623
|
+
// "limited", not "finished".
|
|
624
|
+
state.limited = true;
|
|
620
625
|
break;
|
|
621
626
|
}
|
|
622
627
|
|
|
623
628
|
if (deadline > 0 && database_->db->GetEnv()->NowMicros() > deadline) {
|
|
629
|
+
// Timed out: neither finished nor limited; the caller may retry.
|
|
624
630
|
break;
|
|
625
631
|
}
|
|
626
632
|
|
|
@@ -632,12 +638,19 @@ class Iterator final : public BaseIterator {
|
|
|
632
638
|
|
|
633
639
|
ROCKS_STATUS_RETURN(Status());
|
|
634
640
|
|
|
635
|
-
if (!Valid()
|
|
641
|
+
if (!Valid()) {
|
|
642
|
+
// Iterator naturally exhausted.
|
|
636
643
|
state.finished = true;
|
|
637
644
|
break;
|
|
638
645
|
}
|
|
639
646
|
|
|
640
|
-
|
|
647
|
+
if (!Increment()) {
|
|
648
|
+
// Hit the user's `limit` option: terminal, and flag that it was a
|
|
649
|
+
// limit rather than natural exhaustion.
|
|
650
|
+
state.finished = true;
|
|
651
|
+
state.limited = true;
|
|
652
|
+
break;
|
|
653
|
+
}
|
|
641
654
|
|
|
642
655
|
if (keyFilter_ && !re2::RE2::PartialMatch(CurrentKey().ToStringView(), *keyFilter_)) {
|
|
643
656
|
continue;
|
|
@@ -650,18 +663,22 @@ class Iterator final : public BaseIterator {
|
|
|
650
663
|
if (keys_ && values_) {
|
|
651
664
|
rocksdb::PinnableSlice k;
|
|
652
665
|
k.PinSelf(CurrentKey());
|
|
666
|
+
state.bytes += k.size();
|
|
653
667
|
state.keys.push_back(std::move(k));
|
|
654
668
|
|
|
655
669
|
rocksdb::PinnableSlice v;
|
|
656
670
|
v.PinSelf(CurrentValue());
|
|
671
|
+
state.bytes += v.size();
|
|
657
672
|
state.values.push_back(std::move(v));
|
|
658
673
|
} else if (keys_) {
|
|
659
674
|
rocksdb::PinnableSlice k;
|
|
660
675
|
k.PinSelf(CurrentKey());
|
|
676
|
+
state.bytes += k.size();
|
|
661
677
|
state.keys.push_back(std::move(k));
|
|
662
678
|
} else if (values_) {
|
|
663
679
|
rocksdb::PinnableSlice v;
|
|
664
680
|
v.PinSelf(CurrentValue());
|
|
681
|
+
state.bytes += v.size();
|
|
665
682
|
state.values.push_back(std::move(v));
|
|
666
683
|
} else {
|
|
667
684
|
assert(false);
|
|
@@ -675,6 +692,9 @@ class Iterator final : public BaseIterator {
|
|
|
675
692
|
napi_value finished;
|
|
676
693
|
NAPI_STATUS_RETURN(napi_get_boolean(env, state.finished, &finished));
|
|
677
694
|
|
|
695
|
+
napi_value limited;
|
|
696
|
+
NAPI_STATUS_RETURN(napi_get_boolean(env, state.limited, &limited));
|
|
697
|
+
|
|
678
698
|
napi_value rows;
|
|
679
699
|
NAPI_STATUS_RETURN(napi_create_array(env, &rows));
|
|
680
700
|
|
|
@@ -702,6 +722,7 @@ class Iterator final : public BaseIterator {
|
|
|
702
722
|
NAPI_STATUS_RETURN(napi_create_object(env, result));
|
|
703
723
|
NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "rows", rows));
|
|
704
724
|
NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "finished", finished));
|
|
725
|
+
NAPI_STATUS_RETURN(napi_set_named_property(env, *result, "limited", limited));
|
|
705
726
|
|
|
706
727
|
return napi_ok;
|
|
707
728
|
}));
|
|
@@ -713,19 +734,27 @@ class Iterator final : public BaseIterator {
|
|
|
713
734
|
napi_value finished;
|
|
714
735
|
NAPI_STATUS_THROWS(napi_get_boolean(env, false, &finished));
|
|
715
736
|
|
|
737
|
+
napi_value limited;
|
|
738
|
+
NAPI_STATUS_THROWS(napi_get_boolean(env, false, &limited));
|
|
739
|
+
|
|
716
740
|
napi_value rows;
|
|
717
741
|
NAPI_STATUS_THROWS(napi_create_array(env, &rows));
|
|
718
742
|
|
|
719
743
|
const auto deadline = timeout ? database_->db->GetEnv()->NowMicros() + timeout * 1000 : 0;
|
|
720
744
|
|
|
721
745
|
size_t idx = 0;
|
|
722
|
-
size_t
|
|
723
|
-
while (
|
|
724
|
-
if (
|
|
746
|
+
size_t bytes = 0;
|
|
747
|
+
while (true) {
|
|
748
|
+
if (idx >= static_cast<size_t>(count) * 2 || bytes > highWaterMarkBytes_) {
|
|
749
|
+
// Batch cap (size/bytes) reached: more data may exist, so this is
|
|
750
|
+
// "limited", not "finished". (count is uint32_t; widen before *2 so
|
|
751
|
+
// query()'s UINT32_MAX count doesn't overflow to a small cap.)
|
|
752
|
+
NAPI_STATUS_THROWS(napi_get_boolean(env, true, &limited));
|
|
725
753
|
break;
|
|
726
754
|
}
|
|
727
755
|
|
|
728
756
|
if (deadline > 0 && database_->db->GetEnv()->NowMicros() > deadline) {
|
|
757
|
+
// Timed out: neither finished nor limited; the caller may retry.
|
|
729
758
|
break;
|
|
730
759
|
}
|
|
731
760
|
|
|
@@ -737,12 +766,19 @@ class Iterator final : public BaseIterator {
|
|
|
737
766
|
|
|
738
767
|
ROCKS_STATUS_THROWS_NAPI(Status());
|
|
739
768
|
|
|
740
|
-
if (!Valid()
|
|
769
|
+
if (!Valid()) {
|
|
770
|
+
// Iterator naturally exhausted.
|
|
741
771
|
NAPI_STATUS_THROWS(napi_get_boolean(env, true, &finished));
|
|
742
772
|
break;
|
|
743
773
|
}
|
|
744
774
|
|
|
745
|
-
|
|
775
|
+
if (!Increment()) {
|
|
776
|
+
// Hit the user's `limit` option: terminal, and flag that it was a limit
|
|
777
|
+
// rather than natural exhaustion.
|
|
778
|
+
NAPI_STATUS_THROWS(napi_get_boolean(env, true, &finished));
|
|
779
|
+
NAPI_STATUS_THROWS(napi_get_boolean(env, true, &limited));
|
|
780
|
+
break;
|
|
781
|
+
}
|
|
746
782
|
|
|
747
783
|
if (keyFilter_ && !re2::RE2::PartialMatch(CurrentKey().ToStringView(), *keyFilter_)) {
|
|
748
784
|
continue;
|
|
@@ -756,12 +792,15 @@ class Iterator final : public BaseIterator {
|
|
|
756
792
|
napi_value val;
|
|
757
793
|
|
|
758
794
|
if (keys_ && values_) {
|
|
795
|
+
bytes += CurrentKey().size() + CurrentValue().size();
|
|
759
796
|
NAPI_STATUS_THROWS(Convert(env, CurrentKey(), keyEncoding_, key, unsafe_));
|
|
760
797
|
NAPI_STATUS_THROWS(Convert(env, CurrentValue(), valueEncoding_, val, unsafe_));
|
|
761
798
|
} else if (keys_) {
|
|
799
|
+
bytes += CurrentKey().size();
|
|
762
800
|
NAPI_STATUS_THROWS(Convert(env, CurrentKey(), keyEncoding_, key, unsafe_));
|
|
763
801
|
NAPI_STATUS_THROWS(napi_get_undefined(env, &val));
|
|
764
802
|
} else if (values_) {
|
|
803
|
+
bytes += CurrentValue().size();
|
|
765
804
|
NAPI_STATUS_THROWS(napi_get_undefined(env, &key));
|
|
766
805
|
NAPI_STATUS_THROWS(Convert(env, CurrentValue(), valueEncoding_, val, unsafe_));
|
|
767
806
|
} else {
|
|
@@ -776,6 +815,7 @@ class Iterator final : public BaseIterator {
|
|
|
776
815
|
NAPI_STATUS_THROWS(napi_create_object(env, &ret));
|
|
777
816
|
NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "rows", rows));
|
|
778
817
|
NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "finished", finished));
|
|
818
|
+
NAPI_STATUS_THROWS(napi_set_named_property(env, ret, "limited", limited));
|
|
779
819
|
return ret;
|
|
780
820
|
}
|
|
781
821
|
};
|
|
@@ -1203,7 +1243,7 @@ napi_status InitOptions(napi_env env, T& columnOptions, const U& options) {
|
|
|
1203
1243
|
GetProperty(env, options, "cacheIndexAndFilterBlocks", tableOptions.cache_index_and_filter_blocks));
|
|
1204
1244
|
NAPI_STATUS_RETURN(GetProperty(env, options, "cacheIndexAndFilterBlocksWithHighPriority",
|
|
1205
1245
|
tableOptions.cache_index_and_filter_blocks_with_high_priority));
|
|
1206
|
-
NAPI_STATUS_RETURN(GetProperty(env, options, "decouplePartitionedFilters", tableOptions.
|
|
1246
|
+
NAPI_STATUS_RETURN(GetProperty(env, options, "decouplePartitionedFilters", tableOptions.decouple_partitioned_filters));
|
|
1207
1247
|
NAPI_STATUS_RETURN(GetProperty(env, options, "optimizeFiltersForMemory", tableOptions.optimize_filters_for_memory));
|
|
1208
1248
|
NAPI_STATUS_RETURN(GetProperty(env, options, "maxAutoReadaheadSize", tableOptions.max_auto_readahead_size));
|
|
1209
1249
|
NAPI_STATUS_RETURN(GetProperty(env, options, "initialAutoReadaheadSize", tableOptions.initial_auto_readahead_size));
|
|
@@ -1221,6 +1261,11 @@ NAPI_METHOD(db_get_identity) {
|
|
|
1221
1261
|
Database* database;
|
|
1222
1262
|
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
|
|
1223
1263
|
|
|
1264
|
+
if (!database->db) {
|
|
1265
|
+
napi_throw_error(env, "LEVEL_DATABASE_NOT_OPEN", "Database is not open");
|
|
1266
|
+
return NULL;
|
|
1267
|
+
}
|
|
1268
|
+
|
|
1224
1269
|
std::string identity;
|
|
1225
1270
|
ROCKS_STATUS_THROWS_NAPI(database->db->GetDbIdentity(identity));
|
|
1226
1271
|
|
|
@@ -1258,11 +1303,11 @@ NAPI_METHOD(db_open) {
|
|
|
1258
1303
|
|
|
1259
1304
|
uint32_t walTTL = 0;
|
|
1260
1305
|
NAPI_STATUS_THROWS(GetProperty(env, options, "walTTL", walTTL));
|
|
1261
|
-
dbOptions.WAL_ttl_seconds = walTTL / 1e3;
|
|
1306
|
+
dbOptions.WAL_ttl_seconds = static_cast<uint32_t>(std::ceil(walTTL / 1e3));
|
|
1262
1307
|
|
|
1263
1308
|
uint32_t walSizeLimit = 0;
|
|
1264
1309
|
NAPI_STATUS_THROWS(GetProperty(env, options, "walSizeLimit", walSizeLimit));
|
|
1265
|
-
dbOptions.WAL_size_limit_MB = walSizeLimit / 1e6;
|
|
1310
|
+
dbOptions.WAL_size_limit_MB = static_cast<uint32_t>(std::ceil(walSizeLimit / 1e6));
|
|
1266
1311
|
|
|
1267
1312
|
NAPI_STATUS_THROWS(GetProperty(env, options, "maxTotalWalSize", dbOptions.max_total_wal_size));
|
|
1268
1313
|
|
|
@@ -1392,13 +1437,10 @@ NAPI_METHOD(db_open) {
|
|
|
1392
1437
|
[=](auto& handles) {
|
|
1393
1438
|
assert(!database->db);
|
|
1394
1439
|
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
: rocksdb::DB::Open(dbOptions, database->location, descriptors, &handles, &db);
|
|
1400
|
-
|
|
1401
|
-
database->db.reset(db);
|
|
1440
|
+
const auto status =
|
|
1441
|
+
descriptors.empty()
|
|
1442
|
+
? rocksdb::DB::Open(dbOptions, database->location, &database->db)
|
|
1443
|
+
: rocksdb::DB::Open(dbOptions, database->location, descriptors, &handles, &database->db);
|
|
1402
1444
|
|
|
1403
1445
|
return status;
|
|
1404
1446
|
},
|
|
@@ -1724,6 +1766,11 @@ NAPI_METHOD(db_get_latest_sequence) {
|
|
|
1724
1766
|
Database* database;
|
|
1725
1767
|
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&database)));
|
|
1726
1768
|
|
|
1769
|
+
if (!database->db) {
|
|
1770
|
+
napi_throw_error(env, "LEVEL_DATABASE_NOT_OPEN", "Database is not open");
|
|
1771
|
+
return NULL;
|
|
1772
|
+
}
|
|
1773
|
+
|
|
1727
1774
|
const auto seq = database->db->GetLatestSequenceNumber();
|
|
1728
1775
|
|
|
1729
1776
|
napi_value result;
|
|
@@ -1907,7 +1954,7 @@ NAPI_METHOD(batch_put) {
|
|
|
1907
1954
|
}
|
|
1908
1955
|
|
|
1909
1956
|
NAPI_METHOD(batch_put_log_data) {
|
|
1910
|
-
NAPI_ARGV(
|
|
1957
|
+
NAPI_ARGV(2);
|
|
1911
1958
|
|
|
1912
1959
|
rocksdb::WriteBatch* batch;
|
|
1913
1960
|
NAPI_STATUS_THROWS(napi_get_value_external(env, argv[0], reinterpret_cast<void**>(&batch)));
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# When making changes, verify the output of:
|
|
2
|
+
# clang-tidy -list-checks
|
|
3
|
+
---
|
|
4
|
+
Checks: "-*,\
|
|
5
|
+
bugprone-argument-comment,\
|
|
6
|
+
bugprone-dangling-handle,\
|
|
7
|
+
bugprone-fold-init-type,\
|
|
8
|
+
bugprone-forward-declaration-namespace,\
|
|
9
|
+
bugprone-forwarding-reference-overload,\
|
|
10
|
+
bugprone-shadow,\
|
|
11
|
+
bugprone-sizeof-*,\
|
|
12
|
+
bugprone-string-constructor,\
|
|
13
|
+
bugprone-undefined-memory-manipulation,\
|
|
14
|
+
bugprone-unused-return-value,\
|
|
15
|
+
bugprone-use-after-move,\
|
|
16
|
+
cert-env33-c,\
|
|
17
|
+
cert-err58-cpp,\
|
|
18
|
+
cert-msc30-c,\
|
|
19
|
+
cert-msc50-cpp,\
|
|
20
|
+
clang-analyzer-*,\
|
|
21
|
+
clang-diagnostic-*,\
|
|
22
|
+
-clang-diagnostic-missing-designated-field-initializers,\
|
|
23
|
+
concurrency-mt-unsafe,\
|
|
24
|
+
cppcoreguidelines-avoid-non-const-global-variables,\
|
|
25
|
+
cppcoreguidelines-missing-std-forward,\
|
|
26
|
+
cppcoreguidelines-pro-type-member-init,\
|
|
27
|
+
cppcoreguidelines-special-member-functions,\
|
|
28
|
+
cppcoreguidelines-virtual-class-destructor,\
|
|
29
|
+
google-build-using-namespace,\
|
|
30
|
+
google-explicit-constructor,\
|
|
31
|
+
google-readability-avoid-underscore-in-googletest-name,\
|
|
32
|
+
misc-definitions-in-headers,\
|
|
33
|
+
misc-redundant-expression,\
|
|
34
|
+
modernize-make-shared,\
|
|
35
|
+
modernize-use-emplace,\
|
|
36
|
+
modernize-use-noexcept,\
|
|
37
|
+
modernize-use-override,\
|
|
38
|
+
modernize-use-using,\
|
|
39
|
+
performance-faster-string-find,\
|
|
40
|
+
performance-for-range-copy,\
|
|
41
|
+
performance-implicit-conversion-in-loop,\
|
|
42
|
+
performance-inefficient-algorithm,\
|
|
43
|
+
performance-inefficient-string-concatenation,\
|
|
44
|
+
performance-inefficient-vector-operation,\
|
|
45
|
+
performance-move-const-arg,\
|
|
46
|
+
performance-move-constructor-init,\
|
|
47
|
+
performance-no-automatic-move,\
|
|
48
|
+
performance-no-int-to-ptr,\
|
|
49
|
+
performance-noexcept-move-constructor,\
|
|
50
|
+
performance-noexcept-swap,\
|
|
51
|
+
performance-trivially-destructible,\
|
|
52
|
+
performance-type-promotion-in-math-fn,\
|
|
53
|
+
performance-unnecessary-copy-initialization,\
|
|
54
|
+
performance-unnecessary-value-param,\
|
|
55
|
+
readability-braces-around-statements,\
|
|
56
|
+
readability-duplicate-include,\
|
|
57
|
+
readability-isolate-declaration,\
|
|
58
|
+
readability-operators-representation,\
|
|
59
|
+
readability-redundant-string-init"
|
|
60
|
+
|
|
61
|
+
WarningsAsErrors: "bugprone-use-after-move"
|
|
62
|
+
|
|
63
|
+
CheckOptions:
|
|
64
|
+
- key: bugprone-easily-swappable-parameters.MinimumLength
|
|
65
|
+
value: 4
|
|
66
|
+
- key: cppcoreguidelines-avoid-non-const-global-variables.AllowThreadLocal
|
|
67
|
+
value: true
|
|
68
|
+
- key: cppcoreguidelines-special-member-functions.AllowSoleDefaultDtor
|
|
69
|
+
value: true
|
|
70
|
+
- key: cppcoreguidelines-special-member-functions.AllowImplicitlyDeletedCopyOrMove
|
|
71
|
+
value: true
|
|
72
|
+
- key: modernize-use-using.IgnoreExternC
|
|
73
|
+
value: true
|
|
74
|
+
- key: performance-move-const-arg.CheckTriviallyCopyableMove
|
|
75
|
+
value: false
|
|
76
|
+
- key: performance-unnecessary-value-param.AllowedTypes
|
|
77
|
+
value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'
|
|
78
|
+
- key: performance-unnecessary-copy-initialization.AllowedTypes
|
|
79
|
+
value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'
|
|
80
|
+
- key: readability-operators-representation.BinaryOperators
|
|
81
|
+
value: '&&;&=;&;|;~;!;!=;||;|=;^;^='
|
|
82
|
+
- key: readability-redundant-string-init.StringNames
|
|
83
|
+
value: '::std::basic_string'
|
|
84
|
+
- key: readability-named-parameter.InsertPlainNamesInForwardDecls
|
|
85
|
+
value: true
|
|
86
|
+
...
|
|
@@ -106,6 +106,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
106
106
|
"db/version_edit.cc",
|
|
107
107
|
"db/version_edit_handler.cc",
|
|
108
108
|
"db/version_set.cc",
|
|
109
|
+
"db/version_util.cc",
|
|
109
110
|
"db/wal_edit.cc",
|
|
110
111
|
"db/wal_manager.cc",
|
|
111
112
|
"db/wide/wide_column_serialization.cc",
|
|
@@ -207,6 +208,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
207
208
|
"table/block_based/hash_index_reader.cc",
|
|
208
209
|
"table/block_based/index_builder.cc",
|
|
209
210
|
"table/block_based/index_reader_common.cc",
|
|
211
|
+
"table/block_based/multi_scan_index_iterator.cc",
|
|
210
212
|
"table/block_based/parsed_full_filter_block.cc",
|
|
211
213
|
"table/block_based/partitioned_filter_block.cc",
|
|
212
214
|
"table/block_based/partitioned_index_iterator.cc",
|
|
@@ -268,6 +270,7 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
268
270
|
"util/dynamic_bloom.cc",
|
|
269
271
|
"util/file_checksum_helper.cc",
|
|
270
272
|
"util/hash.cc",
|
|
273
|
+
"util/io_dispatcher_imp.cc",
|
|
271
274
|
"util/murmurhash.cc",
|
|
272
275
|
"util/random.cc",
|
|
273
276
|
"util/rate_limiter.cc",
|
|
@@ -361,6 +364,9 @@ cpp_library_wrapper(name="rocksdb_lib", srcs=[
|
|
|
361
364
|
"utilities/transactions/write_prepared_txn_db.cc",
|
|
362
365
|
"utilities/transactions/write_unprepared_txn.cc",
|
|
363
366
|
"utilities/transactions/write_unprepared_txn_db.cc",
|
|
367
|
+
"utilities/trie_index/bitvector.cc",
|
|
368
|
+
"utilities/trie_index/louds_trie.cc",
|
|
369
|
+
"utilities/trie_index/trie_index_factory.cc",
|
|
364
370
|
"utilities/ttl/db_ttl_impl.cc",
|
|
365
371
|
"utilities/types_util.cc",
|
|
366
372
|
"utilities/wal_filter.cc",
|
|
@@ -4822,6 +4828,12 @@ cpp_unittest_wrapper(name="db_clip_test",
|
|
|
4822
4828
|
extra_compiler_flags=[])
|
|
4823
4829
|
|
|
4824
4830
|
|
|
4831
|
+
cpp_unittest_wrapper(name="db_compaction_abort_test",
|
|
4832
|
+
srcs=["db/db_compaction_abort_test.cc"],
|
|
4833
|
+
deps=[":rocksdb_test_lib"],
|
|
4834
|
+
extra_compiler_flags=[])
|
|
4835
|
+
|
|
4836
|
+
|
|
4825
4837
|
cpp_unittest_wrapper(name="db_compaction_filter_test",
|
|
4826
4838
|
srcs=["db/db_compaction_filter_test.cc"],
|
|
4827
4839
|
deps=[":rocksdb_test_lib"],
|
|
@@ -5130,6 +5142,12 @@ cpp_unittest_wrapper(name="faiss_ivf_index_test",
|
|
|
5130
5142
|
extra_compiler_flags=[])
|
|
5131
5143
|
|
|
5132
5144
|
|
|
5145
|
+
cpp_unittest_wrapper(name="fault_injection_fs_test",
|
|
5146
|
+
srcs=["utilities/fault_injection_fs_test.cc"],
|
|
5147
|
+
deps=[":rocksdb_test_lib"],
|
|
5148
|
+
extra_compiler_flags=[])
|
|
5149
|
+
|
|
5150
|
+
|
|
5133
5151
|
cpp_unittest_wrapper(name="fault_injection_test",
|
|
5134
5152
|
srcs=["db/fault_injection_test.cc"],
|
|
5135
5153
|
deps=[":rocksdb_test_lib"],
|
|
@@ -5214,6 +5232,12 @@ cpp_unittest_wrapper(name="interval_test",
|
|
|
5214
5232
|
extra_compiler_flags=[])
|
|
5215
5233
|
|
|
5216
5234
|
|
|
5235
|
+
cpp_unittest_wrapper(name="io_dispatcher_test",
|
|
5236
|
+
srcs=["util/io_dispatcher_test.cc"],
|
|
5237
|
+
deps=[":rocksdb_test_lib"],
|
|
5238
|
+
extra_compiler_flags=[])
|
|
5239
|
+
|
|
5240
|
+
|
|
5217
5241
|
cpp_unittest_wrapper(name="io_posix_test",
|
|
5218
5242
|
srcs=["env/io_posix_test.cc"],
|
|
5219
5243
|
deps=[":rocksdb_test_lib"],
|
|
@@ -5610,6 +5634,18 @@ cpp_unittest_wrapper(name="transaction_test",
|
|
|
5610
5634
|
extra_compiler_flags=[])
|
|
5611
5635
|
|
|
5612
5636
|
|
|
5637
|
+
cpp_unittest_wrapper(name="trie_index_db_test",
|
|
5638
|
+
srcs=["utilities/trie_index/trie_index_db_test.cc"],
|
|
5639
|
+
deps=[":rocksdb_test_lib"],
|
|
5640
|
+
extra_compiler_flags=[])
|
|
5641
|
+
|
|
5642
|
+
|
|
5643
|
+
cpp_unittest_wrapper(name="trie_index_test",
|
|
5644
|
+
srcs=["utilities/trie_index/trie_index_test.cc"],
|
|
5645
|
+
deps=[":rocksdb_test_lib"],
|
|
5646
|
+
extra_compiler_flags=[])
|
|
5647
|
+
|
|
5648
|
+
|
|
5613
5649
|
cpp_unittest_wrapper(name="ttl_test",
|
|
5614
5650
|
srcs=["utilities/ttl/ttl_test.cc"],
|
|
5615
5651
|
deps=[":rocksdb_test_lib"],
|
|
@@ -5712,6 +5748,12 @@ cpp_unittest_wrapper(name="write_controller_test",
|
|
|
5712
5748
|
extra_compiler_flags=[])
|
|
5713
5749
|
|
|
5714
5750
|
|
|
5751
|
+
cpp_unittest_wrapper(name="write_prepared_transaction_seqno_test",
|
|
5752
|
+
srcs=["utilities/transactions/write_prepared_transaction_seqno_test.cc"],
|
|
5753
|
+
deps=[":rocksdb_test_lib"],
|
|
5754
|
+
extra_compiler_flags=[])
|
|
5755
|
+
|
|
5756
|
+
|
|
5715
5757
|
cpp_unittest_wrapper(name="write_prepared_transaction_test",
|
|
5716
5758
|
srcs=["utilities/transactions/write_prepared_transaction_test.cc"],
|
|
5717
5759
|
deps=[":rocksdb_test_lib"],
|
|
@@ -766,6 +766,7 @@ set(SOURCES
|
|
|
766
766
|
db/version_edit.cc
|
|
767
767
|
db/version_edit_handler.cc
|
|
768
768
|
db/version_set.cc
|
|
769
|
+
db/version_util.cc
|
|
769
770
|
db/wal_edit.cc
|
|
770
771
|
db/wal_manager.cc
|
|
771
772
|
db/wide/wide_column_serialization.cc
|
|
@@ -842,6 +843,7 @@ set(SOURCES
|
|
|
842
843
|
table/block_based/block_based_table_builder.cc
|
|
843
844
|
table/block_based/block_based_table_factory.cc
|
|
844
845
|
table/block_based/block_based_table_iterator.cc
|
|
846
|
+
table/block_based/multi_scan_index_iterator.cc
|
|
845
847
|
table/block_based/block_based_table_reader.cc
|
|
846
848
|
table/block_based/block_builder.cc
|
|
847
849
|
table/block_based/block_cache.cc
|
|
@@ -918,6 +920,7 @@ set(SOURCES
|
|
|
918
920
|
util/data_structure.cc
|
|
919
921
|
util/dynamic_bloom.cc
|
|
920
922
|
util/hash.cc
|
|
923
|
+
util/io_dispatcher_imp.cc
|
|
921
924
|
util/murmurhash.cc
|
|
922
925
|
util/random.cc
|
|
923
926
|
util/rate_limiter.cc
|
|
@@ -998,6 +1001,9 @@ set(SOURCES
|
|
|
998
1001
|
utilities/transactions/write_prepared_txn_db.cc
|
|
999
1002
|
utilities/transactions/write_unprepared_txn.cc
|
|
1000
1003
|
utilities/transactions/write_unprepared_txn_db.cc
|
|
1004
|
+
utilities/trie_index/bitvector.cc
|
|
1005
|
+
utilities/trie_index/louds_trie.cc
|
|
1006
|
+
utilities/trie_index/trie_index_factory.cc
|
|
1001
1007
|
utilities/types_util.cc
|
|
1002
1008
|
utilities/ttl/db_ttl_impl.cc
|
|
1003
1009
|
utilities/wal_filter.cc
|
|
@@ -1381,6 +1387,7 @@ if(WITH_TESTS)
|
|
|
1381
1387
|
db/db_bloom_filter_test.cc
|
|
1382
1388
|
db/db_compaction_filter_test.cc
|
|
1383
1389
|
db/db_compaction_test.cc
|
|
1390
|
+
db/db_compaction_abort_test.cc
|
|
1384
1391
|
db/db_clip_test.cc
|
|
1385
1392
|
db/db_dynamic_level_test.cc
|
|
1386
1393
|
db/db_encryption_test.cc
|
|
@@ -1529,6 +1536,7 @@ if(WITH_TESTS)
|
|
|
1529
1536
|
utilities/cassandra/cassandra_serialize_test.cc
|
|
1530
1537
|
utilities/checkpoint/checkpoint_test.cc
|
|
1531
1538
|
utilities/env_timed_test.cc
|
|
1539
|
+
utilities/fault_injection_fs_test.cc
|
|
1532
1540
|
utilities/memory/memory_test.cc
|
|
1533
1541
|
utilities/merge_operators/string_append/stringappend_test.cc
|
|
1534
1542
|
utilities/object_registry_test.cc
|
|
@@ -1546,9 +1554,12 @@ if(WITH_TESTS)
|
|
|
1546
1554
|
utilities/transactions/lock/point/point_lock_manager_stress_test.cc
|
|
1547
1555
|
utilities/transactions/write_committed_transaction_ts_test.cc
|
|
1548
1556
|
utilities/transactions/write_prepared_transaction_test.cc
|
|
1557
|
+
utilities/transactions/write_prepared_transaction_seqno_test.cc
|
|
1549
1558
|
utilities/transactions/write_unprepared_transaction_test.cc
|
|
1550
1559
|
utilities/transactions/lock/range/range_locking_test.cc
|
|
1551
1560
|
utilities/transactions/timestamped_snapshot_test.cc
|
|
1561
|
+
utilities/trie_index/trie_index_db_test.cc
|
|
1562
|
+
utilities/trie_index/trie_index_test.cc
|
|
1552
1563
|
utilities/ttl/ttl_test.cc
|
|
1553
1564
|
utilities/types_util_test.cc
|
|
1554
1565
|
utilities/util_merge_operators_test.cc
|