@nxtedition/rocksdb 5.2.21 → 5.2.26
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 +216 -252
- package/binding.gyp +78 -72
- package/deps/rocksdb/build_version.cc +70 -4
- package/deps/rocksdb/rocksdb/CMakeLists.txt +281 -149
- package/deps/rocksdb/rocksdb/Makefile +459 -469
- package/deps/rocksdb/rocksdb/README.md +4 -4
- package/deps/rocksdb/rocksdb/TARGETS +5244 -1500
- package/deps/rocksdb/rocksdb/cache/cache.cc +12 -3
- package/deps/rocksdb/rocksdb/cache/cache_bench.cc +7 -368
- package/deps/rocksdb/rocksdb/cache/cache_bench_tool.cc +924 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.cc +128 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_roles.h +103 -0
- package/deps/rocksdb/rocksdb/cache/cache_entry_stats.h +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +11 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.cc +344 -0
- package/deps/rocksdb/rocksdb/cache/cache_key.h +132 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.cc +183 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager.h +288 -0
- package/deps/rocksdb/rocksdb/cache/cache_reservation_manager_test.cc +468 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +85 -8
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +121 -51
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.cc +171 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache.h +86 -0
- package/deps/rocksdb/rocksdb/cache/compressed_secondary_cache_test.cc +607 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +381 -154
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +176 -33
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +1659 -3
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +94 -23
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +49 -28
- package/deps/rocksdb/rocksdb/crash_test.mk +93 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +54 -31
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +10 -6
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator.h +146 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_counting_iterator_test.cc +326 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.cc +34 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_fetcher.h +37 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +4 -2
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +8 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +99 -40
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +20 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +95 -83
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +13 -10
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +7 -4
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +37 -37
- package/deps/rocksdb/rocksdb/db/blob/blob_file_completion_callback.h +101 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +8 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +6 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +209 -44
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +37 -11
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +382 -179
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.cc +100 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter.h +102 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_garbage_meter_test.cc +196 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +3 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +2 -1
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +7 -5
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +10 -3
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +12 -8
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +5 -5
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +772 -9
- package/deps/rocksdb/rocksdb/db/blob/db_blob_compaction_test.cc +730 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_corruption_test.cc +82 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +155 -17
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.cc +21 -0
- package/deps/rocksdb/rocksdb/db/blob/prefetch_buffer_collection.h +38 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +137 -89
- package/deps/rocksdb/rocksdb/db/builder.h +16 -37
- package/deps/rocksdb/rocksdb/db/c.cc +413 -208
- package/deps/rocksdb/rocksdb/db/c_test.c +227 -138
- package/deps/rocksdb/rocksdb/db/column_family.cc +118 -103
- package/deps/rocksdb/rocksdb/db/column_family.h +86 -44
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +81 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator.h +275 -0
- package/deps/rocksdb/rocksdb/db/compaction/clipping_iterator_test.cc +258 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +81 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +43 -12
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +12 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +406 -215
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +147 -50
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +167 -61
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1321 -156
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +197 -28
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +2 -3
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +246 -43
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +65 -26
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +7 -7
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +122 -9
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +8 -2
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +18 -6
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +536 -44
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +311 -30
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +1 -1
- package/deps/rocksdb/rocksdb/db/compaction/compaction_service_test.cc +849 -0
- package/deps/rocksdb/rocksdb/db/compaction/file_pri.h +92 -0
- package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +46 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/convenience.cc +6 -3
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +383 -28
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +7 -2
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +154 -45
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1095 -33
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +1249 -203
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +135 -9
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +1348 -166
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +3 -5
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +312 -45
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1734 -48
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.cc → db_impl/compacted_db_impl.cc} +24 -7
- package/deps/rocksdb/rocksdb/db/{compacted_db_impl.h → db_impl/compacted_db_impl.h} +1 -1
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +644 -333
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +365 -92
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +578 -210
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +38 -16
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +75 -74
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +450 -183
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +42 -9
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +232 -15
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +42 -4
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +297 -100
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +16 -15
- package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +31 -1
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +6 -5
- package/deps/rocksdb/rocksdb/db/db_iter.cc +218 -153
- package/deps/rocksdb/rocksdb/db/db_iter.h +14 -12
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +84 -160
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +47 -6
- package/deps/rocksdb/rocksdb/db/db_kv_checksum_test.cc +204 -0
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +21 -13
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +17 -10
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +38 -24
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +184 -19
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +183 -3
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +409 -9
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +92 -23
- package/deps/rocksdb/rocksdb/db/db_rate_limiter_test.cc +446 -0
- package/deps/rocksdb/rocksdb/db/{db_impl/db_secondary_test.cc → db_secondary_test.cc} +363 -35
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +520 -15
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +50 -1
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +139 -4
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/db_test.cc +669 -359
- package/deps/rocksdb/rocksdb/db/db_test2.cc +2110 -304
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +76 -43
- package/deps/rocksdb/rocksdb/db/db_test_util.h +231 -103
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +19 -11
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +490 -71
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +980 -349
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +11 -12
- package/deps/rocksdb/rocksdb/db/db_write_buffer_manager_test.cc +793 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +2 -1
- package/deps/rocksdb/rocksdb/db/dbformat.cc +4 -12
- package/deps/rocksdb/rocksdb/db/dbformat.h +28 -18
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +3 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +50 -15
- package/deps/rocksdb/rocksdb/db/error_handler.cc +127 -41
- package/deps/rocksdb/rocksdb/db/error_handler.h +12 -5
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +524 -255
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +136 -11
- package/deps/rocksdb/rocksdb/db/event_helpers.h +27 -2
- package/deps/rocksdb/rocksdb/db/experimental.cc +100 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +307 -4
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +137 -60
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +12 -8
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +86 -55
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +86 -5
- package/deps/rocksdb/rocksdb/db/filename_test.cc +63 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +619 -64
- package/deps/rocksdb/rocksdb/db/flush_job.h +30 -7
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +33 -16
- package/deps/rocksdb/rocksdb/db/flush_scheduler.h +2 -1
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +18 -17
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +5 -4
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +0 -1
- package/deps/rocksdb/rocksdb/db/history_trimming_iterator.h +91 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +25 -14
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +6 -5
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +1 -1
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +471 -50
- package/deps/rocksdb/rocksdb/db/internal_stats.h +129 -25
- package/deps/rocksdb/rocksdb/db/job_context.h +22 -9
- package/deps/rocksdb/rocksdb/db/kv_checksum.h +394 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +518 -41
- package/deps/rocksdb/rocksdb/db/log_format.h +4 -1
- package/deps/rocksdb/rocksdb/db/log_reader.cc +129 -6
- package/deps/rocksdb/rocksdb/db/log_reader.h +17 -1
- package/deps/rocksdb/rocksdb/db/log_test.cc +161 -11
- package/deps/rocksdb/rocksdb/db/log_writer.cc +92 -13
- package/deps/rocksdb/rocksdb/db/log_writer.h +18 -5
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +1 -1
- package/deps/rocksdb/rocksdb/db/lookup_key.h +0 -1
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +2 -2
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +21 -8
- package/deps/rocksdb/rocksdb/db/memtable.cc +144 -54
- package/deps/rocksdb/rocksdb/db/memtable.h +72 -15
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +95 -47
- package/deps/rocksdb/rocksdb/db/memtable_list.h +33 -13
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +61 -31
- package/deps/rocksdb/rocksdb/db/merge_context.h +20 -8
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +54 -11
- package/deps/rocksdb/rocksdb/db/merge_helper.h +17 -6
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +13 -7
- package/deps/rocksdb/rocksdb/db/merge_test.cc +40 -19
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +14 -25
- package/deps/rocksdb/rocksdb/db/output_validator.cc +3 -0
- package/deps/rocksdb/rocksdb/db/output_validator.h +5 -4
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +32 -28
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +43 -29
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +9 -7
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +21 -16
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +1 -1
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +29 -36
- package/deps/rocksdb/rocksdb/db/pre_release_callback.h +1 -2
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +4 -4
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +2 -2
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +11 -11
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +3 -2
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +14 -8
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +17 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +4 -2
- package/deps/rocksdb/rocksdb/db/read_callback.h +1 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +87 -58
- package/deps/rocksdb/rocksdb/db/repair_test.cc +35 -5
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +2 -1
- package/deps/rocksdb/rocksdb/db/table_cache.cc +95 -69
- package/deps/rocksdb/rocksdb/db/table_cache.h +63 -53
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +4 -4
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +78 -10
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +28 -33
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +30 -51
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +12 -8
- package/deps/rocksdb/rocksdb/db/version_builder.cc +564 -341
- package/deps/rocksdb/rocksdb/db/version_builder.h +8 -8
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +327 -155
- package/deps/rocksdb/rocksdb/db/version_edit.cc +89 -27
- package/deps/rocksdb/rocksdb/db/version_edit.h +42 -17
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +324 -43
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +79 -22
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +165 -20
- package/deps/rocksdb/rocksdb/db/version_set.cc +935 -1034
- package/deps/rocksdb/rocksdb/db/version_set.h +183 -122
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +556 -138
- package/deps/rocksdb/rocksdb/db/version_util.h +68 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +23 -21
- package/deps/rocksdb/rocksdb/db/wal_manager.h +5 -2
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +30 -27
- package/deps/rocksdb/rocksdb/db/write_batch.cc +704 -209
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +135 -2
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +209 -5
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +2 -0
- package/deps/rocksdb/rocksdb/db/write_controller.cc +47 -54
- package/deps/rocksdb/rocksdb/db/write_controller.h +12 -9
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +215 -103
- package/deps/rocksdb/rocksdb/db/write_thread.cc +11 -0
- package/deps/rocksdb/rocksdb/db/write_thread.h +14 -8
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +7 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +10 -3
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +6 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +1 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +19 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +78 -25
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +13 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +29 -12
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +5 -1
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +199 -32
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.cc +188 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +59 -10
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +77 -109
- package/deps/rocksdb/rocksdb/{third-party/folly/folly/synchronization/WaitOptions.cpp → db_stress_tool/db_stress_stat.cc} +9 -4
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +7 -6
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +1 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +699 -143
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +20 -2
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +49 -39
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.cc +631 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/expected_state.h +287 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.cc +1565 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/multi_ops_txns_stress.h +374 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +149 -18
- package/deps/rocksdb/rocksdb/env/composite_env.cc +464 -0
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +98 -646
- package/deps/rocksdb/rocksdb/env/emulated_clock.h +114 -0
- package/deps/rocksdb/rocksdb/env/env.cc +632 -42
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +84 -36
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +88 -286
- package/deps/rocksdb/rocksdb/env/env_chroot.h +34 -1
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +469 -277
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +9 -30
- package/deps/rocksdb/rocksdb/env/env_posix.cc +110 -119
- package/deps/rocksdb/rocksdb/env/env_test.cc +1128 -39
- package/deps/rocksdb/rocksdb/env/file_system.cc +147 -8
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +207 -136
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +86 -54
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +192 -64
- package/deps/rocksdb/rocksdb/env/fs_readonly.h +107 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.cc +339 -0
- package/deps/rocksdb/rocksdb/env/fs_remap.h +139 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +245 -41
- package/deps/rocksdb/rocksdb/env/io_posix.h +66 -1
- package/deps/rocksdb/rocksdb/env/mock_env.cc +147 -149
- package/deps/rocksdb/rocksdb/env/mock_env.h +113 -11
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +2 -4
- package/deps/rocksdb/rocksdb/env/unique_id_gen.cc +164 -0
- package/deps/rocksdb/rocksdb/env/unique_id_gen.h +71 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +9 -5
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +6 -4
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +19 -12
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +459 -70
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +205 -28
- package/deps/rocksdb/rocksdb/file/file_util.cc +39 -28
- package/deps/rocksdb/rocksdb/file/file_util.h +18 -27
- package/deps/rocksdb/rocksdb/file/filename.cc +59 -22
- package/deps/rocksdb/rocksdb/file/filename.h +13 -8
- package/deps/rocksdb/rocksdb/file/line_file_reader.cc +68 -0
- package/deps/rocksdb/rocksdb/file/line_file_reader.h +59 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +1130 -6
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +220 -36
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +69 -17
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +13 -12
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +3 -38
- package/deps/rocksdb/rocksdb/file/read_write_util.h +0 -4
- package/deps/rocksdb/rocksdb/file/readahead_file_info.h +33 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +57 -9
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +58 -6
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +29 -54
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +22 -29
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +424 -50
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +66 -19
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +157 -66
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +224 -121
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +333 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/cache_bench_tool.h +14 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +90 -50
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +13 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +20 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +8 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +53 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +31 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +102 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/data_structure.h +51 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +370 -262
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +286 -87
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +124 -64
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +27 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +21 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +384 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +111 -143
- package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +20 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/functor_wrapper.h +56 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +15 -33
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +37 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +1 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +314 -26
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +11 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +50 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +10 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +186 -96
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +373 -103
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +13 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +37 -7
- package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +6 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/secondary_cache.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +5 -12
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +59 -30
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +11 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +22 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +17 -10
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +121 -41
- package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +1 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +114 -136
- package/deps/rocksdb/rocksdb/include/rocksdb/system_clock.h +116 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +160 -18
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +57 -15
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +3 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +10 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record.h +247 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_record_result.h +187 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +1 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +14 -24
- package/deps/rocksdb/rocksdb/include/rocksdb/unique_id.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +14 -4
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/agg_merge.h +138 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backup_engine.h +631 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/cache_dump_load.h +142 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +12 -9
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/customizable_util.h +368 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +24 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +4 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +418 -63
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +143 -73
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/replayer.h +87 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +2 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +43 -5
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +18 -23
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +26 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +32 -6
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +1 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +20 -1
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +30 -3
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +11 -2
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +89 -11
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +108 -38
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +40 -23
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +12 -5
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +100 -49
- package/deps/rocksdb/rocksdb/logging/env_logger.h +7 -5
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +0 -1
- package/deps/rocksdb/rocksdb/logging/posix_logger.h +3 -9
- package/deps/rocksdb/rocksdb/memory/arena.cc +3 -1
- package/deps/rocksdb/rocksdb/memory/arena.h +1 -1
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +171 -106
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +31 -15
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +15 -4
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +24 -8
- package/deps/rocksdb/rocksdb/memory/memory_allocator.cc +91 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator_test.cc +239 -0
- package/deps/rocksdb/rocksdb/memory/memory_usage.h +14 -1
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +72 -9
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +52 -6
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +53 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +5 -5
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +17 -5
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +1 -1
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +87 -0
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +20 -10
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -94
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +160 -62
- package/deps/rocksdb/rocksdb/microbench/CMakeLists.txt +17 -0
- package/deps/rocksdb/rocksdb/microbench/README.md +60 -0
- package/deps/rocksdb/rocksdb/microbench/db_basic_bench.cc +1360 -0
- package/deps/rocksdb/rocksdb/microbench/ribbon_bench.cc +153 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +8 -15
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +0 -1
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +18 -16
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +9 -7
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +5 -3
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +7 -5
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +37 -12
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +26 -6
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +6 -10
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +14 -13
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +19 -20
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +18 -18
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +84 -2
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +6 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -2
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +67 -54
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +4 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +2 -1
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +2 -2
- package/deps/rocksdb/rocksdb/options/cf_options.cc +280 -212
- package/deps/rocksdb/rocksdb/options/cf_options.h +51 -57
- package/deps/rocksdb/rocksdb/options/configurable.cc +242 -138
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +4 -68
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +144 -21
- package/deps/rocksdb/rocksdb/options/configurable_test.h +2 -3
- package/deps/rocksdb/rocksdb/options/customizable.cc +67 -7
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +1773 -151
- package/deps/rocksdb/rocksdb/options/db_options.cc +275 -47
- package/deps/rocksdb/rocksdb/options/db_options.h +36 -7
- package/deps/rocksdb/rocksdb/options/options.cc +49 -17
- package/deps/rocksdb/rocksdb/options/options_helper.cc +369 -352
- package/deps/rocksdb/rocksdb/options/options_helper.h +23 -23
- package/deps/rocksdb/rocksdb/options/options_parser.cc +18 -13
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +67 -54
- package/deps/rocksdb/rocksdb/options/options_test.cc +1162 -187
- package/deps/rocksdb/rocksdb/plugin/README.md +43 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +1 -1
- package/deps/rocksdb/rocksdb/port/lang.h +52 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +1 -1
- package/deps/rocksdb/rocksdb/port/port_posix.cc +31 -2
- package/deps/rocksdb/rocksdb/port/port_posix.h +20 -2
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +20 -4
- package/deps/rocksdb/rocksdb/port/sys_time.h +2 -2
- package/deps/rocksdb/rocksdb/port/win/env_default.cc +7 -7
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +44 -74
- package/deps/rocksdb/rocksdb/port/win/env_win.h +25 -23
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +32 -34
- package/deps/rocksdb/rocksdb/port/win/io_win.h +12 -6
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +55 -35
- package/deps/rocksdb/rocksdb/port/win/port_win.h +22 -5
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +3 -3
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +3 -5
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +7 -1
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +12 -17
- package/deps/rocksdb/rocksdb/python.mk +9 -0
- package/deps/rocksdb/rocksdb/src.mk +82 -34
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +3 -4
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +158 -80
- package/deps/rocksdb/rocksdb/table/block_based/block.h +64 -36
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +23 -14
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +13 -5
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +3 -218
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +603 -328
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +28 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +220 -82
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +8 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +28 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +598 -492
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +151 -96
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +31 -58
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +330 -92
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +50 -19
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +23 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_like_traits.h +226 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +56 -22
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +42 -4
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +5 -2
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +34 -20
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +9 -10
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +26 -3
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +844 -202
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +281 -81
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +62 -2
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +2 -3
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +28 -7
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +22 -6
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +28 -26
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +1 -1
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +1 -2
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +11 -4
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +2 -1
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +2 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +68 -26
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +44 -9
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +12 -10
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +3 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +23 -4
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +44 -19
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +5 -1
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +16 -28
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +7 -4
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +2 -2
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +77 -57
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +23 -12
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +43 -56
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +8 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +2 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +52 -70
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +5 -8
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +17 -11
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +2 -3
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +42 -51
- package/deps/rocksdb/rocksdb/table/format.cc +258 -104
- package/deps/rocksdb/rocksdb/table/format.h +120 -109
- package/deps/rocksdb/rocksdb/table/get_context.cc +97 -65
- package/deps/rocksdb/rocksdb/table/get_context.h +19 -12
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +14 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +8 -0
- package/deps/rocksdb/rocksdb/table/merger_test.cc +3 -2
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +11 -21
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +3 -3
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +176 -171
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +47 -33
- package/deps/rocksdb/rocksdb/table/mock_table.cc +7 -9
- package/deps/rocksdb/rocksdb/table/mock_table.h +3 -2
- package/deps/rocksdb/rocksdb/table/multiget_context.h +15 -8
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +22 -29
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +6 -3
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +5 -8
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +29 -26
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +12 -16
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +145 -69
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +7 -6
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +3 -4
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +3 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +1 -1
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +13 -18
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +4 -9
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +55 -37
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +10 -5
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +11 -8
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +222 -16
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +106 -58
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +6 -5
- package/deps/rocksdb/rocksdb/table/table_builder.h +68 -44
- package/deps/rocksdb/rocksdb/table/table_factory.cc +37 -10
- package/deps/rocksdb/rocksdb/table/table_properties.cc +109 -54
- package/deps/rocksdb/rocksdb/table/table_properties_internal.h +4 -20
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +33 -32
- package/deps/rocksdb/rocksdb/table/table_reader_caller.h +2 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +989 -326
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +4 -0
- package/deps/rocksdb/rocksdb/table/unique_id.cc +166 -0
- package/deps/rocksdb/rocksdb/table/unique_id_impl.h +59 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +1 -1
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +13 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +1 -2
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +35 -16
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +32 -10
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +31 -4
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +53 -1
- package/deps/rocksdb/rocksdb/test_util/testharness.h +67 -3
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +236 -66
- package/deps/rocksdb/rocksdb/test_util/testutil.h +63 -100
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +12 -1
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +6 -3
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +1 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +9 -3
- package/deps/rocksdb/rocksdb/tools/db_bench.cc +1 -1
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +1420 -611
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +11 -8
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +11 -1
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +4 -2
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +46 -22
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +655 -179
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +58 -6
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +472 -29
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +23 -2
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +2 -2
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.cc +246 -0
- package/deps/rocksdb/rocksdb/tools/simulated_hybrid_file_system.h +126 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +83 -29
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +38 -17
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +191 -55
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +219 -296
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +87 -53
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +8 -7
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +6 -5
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +5 -4
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +14 -9
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +134 -60
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +49 -38
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +152 -15
- package/deps/rocksdb/rocksdb/trace_replay/trace_record.cc +206 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.cc +190 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_handler.h +46 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_record_result.cc +146 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +475 -344
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +83 -95
- package/deps/rocksdb/rocksdb/util/autovector.h +38 -18
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +1 -1
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +4 -0
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +276 -94
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +81 -4
- package/deps/rocksdb/rocksdb/util/cast_util.h +22 -0
- package/deps/rocksdb/rocksdb/util/channel.h +2 -0
- package/deps/rocksdb/rocksdb/util/coding.h +1 -33
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +8 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +163 -3
- package/deps/rocksdb/rocksdb/util/compression.cc +122 -0
- package/deps/rocksdb/rocksdb/util/compression.h +212 -7
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +1 -3
- package/deps/rocksdb/rocksdb/util/crc32c.cc +165 -2
- package/deps/rocksdb/rocksdb/util/crc32c.h +6 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +14 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +3 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +47 -0
- package/deps/rocksdb/rocksdb/util/defer.h +30 -1
- package/deps/rocksdb/rocksdb/util/defer_test.cc +11 -0
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +3 -1
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +3 -3
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +5 -4
- package/deps/rocksdb/rocksdb/util/fastrange.h +2 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +36 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +3 -1
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +512 -52
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +65 -10
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +6 -1
- package/deps/rocksdb/rocksdb/util/hash.cc +121 -3
- package/deps/rocksdb/rocksdb/util/hash.h +31 -1
- package/deps/rocksdb/rocksdb/util/hash128.h +26 -0
- package/deps/rocksdb/rocksdb/util/hash_containers.h +51 -0
- package/deps/rocksdb/rocksdb/util/hash_test.cc +194 -2
- package/deps/rocksdb/rocksdb/util/heap.h +6 -1
- package/deps/rocksdb/rocksdb/util/kv_map.h +1 -1
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +8 -6
- package/deps/rocksdb/rocksdb/util/math.h +74 -7
- package/deps/rocksdb/rocksdb/util/math128.h +13 -1
- package/deps/rocksdb/rocksdb/util/murmurhash.h +3 -3
- package/deps/rocksdb/rocksdb/util/random.cc +9 -0
- package/deps/rocksdb/rocksdb/util/random.h +6 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +298 -144
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +68 -19
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +335 -23
- package/deps/rocksdb/rocksdb/util/repeatable_thread.h +10 -12
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +18 -15
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +98 -74
- package/deps/rocksdb/rocksdb/util/ribbon_config.cc +506 -0
- package/deps/rocksdb/rocksdb/util/ribbon_config.h +182 -0
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +154 -79
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +742 -365
- package/deps/rocksdb/rocksdb/util/set_comparator.h +2 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +198 -35
- package/deps/rocksdb/rocksdb/util/slice_test.cc +30 -1
- package/deps/rocksdb/rocksdb/util/status.cc +32 -29
- package/deps/rocksdb/rocksdb/util/stop_watch.h +18 -18
- package/deps/rocksdb/rocksdb/util/string_util.cc +85 -6
- package/deps/rocksdb/rocksdb/util/string_util.h +47 -2
- package/deps/rocksdb/rocksdb/util/thread_guard.h +41 -0
- package/deps/rocksdb/rocksdb/util/thread_local.h +2 -2
- package/deps/rocksdb/rocksdb/util/thread_local_test.cc +22 -24
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +7 -6
- package/deps/rocksdb/rocksdb/util/timer.h +55 -46
- package/deps/rocksdb/rocksdb/util/timer_test.cc +50 -48
- package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +4 -0
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +31 -15
- package/deps/rocksdb/rocksdb/util/work_queue.h +2 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +35 -1144
- package/deps/rocksdb/rocksdb/util/xxhash.h +5117 -373
- package/deps/rocksdb/rocksdb/util/xxph3.h +1762 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.cc +238 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge.h +49 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/agg_merge_test.cc +134 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.cc +104 -0
- package/deps/rocksdb/rocksdb/utilities/agg_merge/test_agg_merge.h +47 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine.cc +3164 -0
- package/deps/rocksdb/rocksdb/utilities/backup/backup_engine_impl.h +29 -0
- package/deps/rocksdb/rocksdb/utilities/{backupable/backupable_db_test.cc → backup/backup_engine_test.cc} +1679 -485
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +6 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +14 -9
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +37 -27
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +8 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +13 -10
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +44 -25
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +3 -4
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +27 -19
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +4 -2
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.cc +489 -0
- package/deps/rocksdb/rocksdb/utilities/cache_dump_load_impl.h +366 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +67 -4
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +21 -6
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +107 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_options.h +43 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +24 -8
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +7 -7
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +5 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +99 -218
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +8 -24
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +114 -1
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +6 -2
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +0 -4
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +7 -6
- package/deps/rocksdb/rocksdb/utilities/compaction_filters.cc +56 -0
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/counted_fs.cc +355 -0
- package/deps/rocksdb/rocksdb/utilities/counted_fs.h +152 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +13 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +164 -122
- package/deps/rocksdb/rocksdb/utilities/env_timed.h +97 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +75 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +19 -3
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +539 -126
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +162 -17
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.cc +110 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_secondary_cache.h +94 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +5 -2
- package/deps/rocksdb/rocksdb/utilities/memory_allocators.h +104 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +5 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +4 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +11 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +0 -2
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +5 -1
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +29 -10
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +29 -14
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +71 -18
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +15 -9
- package/deps/rocksdb/rocksdb/utilities/merge_operators.cc +120 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +3 -23
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +267 -42
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +702 -76
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +26 -5
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +124 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +2 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +15 -13
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +4 -4
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +8 -9
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +1 -1
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +6 -3
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +3 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +2 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +43 -35
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +20 -18
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +107 -2
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +23 -15
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +2 -2
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.cc +316 -0
- package/deps/rocksdb/rocksdb/utilities/trace/replayer_impl.h +86 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +4 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +4 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +1 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +119 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +20 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +20 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +3 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +4 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +38 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +17 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +1 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +423 -34
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +82 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +72 -40
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +32 -1
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +13 -5
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +7 -3
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +207 -43
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +50 -7
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +28 -10
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +11 -6
- package/deps/rocksdb/rocksdb/utilities/transactions/write_committed_transaction_ts_test.cc +516 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +506 -15
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +27 -13
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +14 -14
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +3 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +2 -2
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +14 -5
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +305 -27
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +55 -159
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +209 -2
- package/deps/rocksdb/rocksdb/utilities/wal_filter.cc +23 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +157 -88
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +501 -114
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +91 -316
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1212 -672
- package/deps/rocksdb/rocksdb.gyp +425 -446
- package/package.json +8 -8
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x86/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/env/env_hdfs.cc +0 -648
- package/deps/rocksdb/rocksdb/hdfs/README +0 -23
- package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +0 -386
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +0 -535
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +0 -175
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +0 -34
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +0 -102
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +0 -49
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +0 -44
- package/deps/rocksdb/rocksdb/options/customizable_helper.h +0 -216
- package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +0 -27
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +0 -45
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +0 -166
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +0 -570
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +0 -92
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +0 -54
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +0 -152
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +0 -59
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +0 -141
- package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +0 -33
- package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +0 -74
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +0 -117
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +0 -263
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +0 -96
- package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +0 -40
- package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +0 -29
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +0 -144
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +0 -30
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +0 -51
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +0 -28
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +0 -10
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +0 -138
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +0 -23
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +0 -260
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +0 -52
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +0 -328
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +0 -1703
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +0 -16
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +0 -304
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +0 -39
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +0 -26
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +0 -318
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +0 -219
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +0 -207
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +0 -164
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +0 -57
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +0 -77
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/test/DistributedMutexTest.cpp +0 -1145
- package/deps/rocksdb/rocksdb/util/build_version.h +0 -15
- package/deps/rocksdb/rocksdb/util/xxh3p.h +0 -1392
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +0 -2354
- package/deps/rocksdb/rocksdb/utilities/env_librados.cc +0 -1497
- package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +0 -1146
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
package/binding.cc
CHANGED
|
@@ -30,7 +30,6 @@ public:
|
|
|
30
30
|
|
|
31
31
|
struct Database;
|
|
32
32
|
struct Iterator;
|
|
33
|
-
static void iterator_do_close (napi_env env, Iterator* iterator, napi_value cb);
|
|
34
33
|
|
|
35
34
|
#define NAPI_DB_CONTEXT() \
|
|
36
35
|
Database* database = nullptr; \
|
|
@@ -92,8 +91,7 @@ static napi_value GetProperty (napi_env env, napi_value obj, const std::string&
|
|
|
92
91
|
return value;
|
|
93
92
|
}
|
|
94
93
|
|
|
95
|
-
static bool BooleanProperty (napi_env env, napi_value obj, const std::string& key,
|
|
96
|
-
bool defaultValue) {
|
|
94
|
+
static bool BooleanProperty (napi_env env, napi_value obj, const std::string& key, bool defaultValue) {
|
|
97
95
|
if (HasProperty(env, obj, key.data())) {
|
|
98
96
|
const auto value = GetProperty(env, obj, key.data());
|
|
99
97
|
bool result;
|
|
@@ -117,8 +115,7 @@ static bool EncodingIsBuffer (napi_env env, napi_value obj, const std::string& o
|
|
|
117
115
|
return false;
|
|
118
116
|
}
|
|
119
117
|
|
|
120
|
-
static uint32_t Uint32Property (napi_env env, napi_value obj, const std::string& key,
|
|
121
|
-
uint32_t defaultValue) {
|
|
118
|
+
static uint32_t Uint32Property (napi_env env, napi_value obj, const std::string& key, uint32_t defaultValue) {
|
|
122
119
|
if (HasProperty(env, obj, key.data())) {
|
|
123
120
|
const auto value = GetProperty(env, obj, key.data());
|
|
124
121
|
uint32_t result;
|
|
@@ -129,8 +126,7 @@ static uint32_t Uint32Property (napi_env env, napi_value obj, const std::string&
|
|
|
129
126
|
return defaultValue;
|
|
130
127
|
}
|
|
131
128
|
|
|
132
|
-
static int Int32Property (napi_env env, napi_value obj, const std::string& key,
|
|
133
|
-
int defaultValue) {
|
|
129
|
+
static int Int32Property (napi_env env, napi_value obj, const std::string& key, int defaultValue) {
|
|
134
130
|
if (HasProperty(env, obj, key.data())) {
|
|
135
131
|
const auto value = GetProperty(env, obj, key.data());
|
|
136
132
|
int result;
|
|
@@ -211,10 +207,7 @@ static std::vector<std::string> KeyArray (napi_env env, napi_value arr) {
|
|
|
211
207
|
return result;
|
|
212
208
|
}
|
|
213
209
|
|
|
214
|
-
static napi_status CallFunction (napi_env env,
|
|
215
|
-
napi_value callback,
|
|
216
|
-
const int argc,
|
|
217
|
-
napi_value* argv) {
|
|
210
|
+
static napi_status CallFunction (napi_env env, napi_value callback, const int argc, napi_value* argv) {
|
|
218
211
|
napi_value global;
|
|
219
212
|
napi_get_global(env, &global);
|
|
220
213
|
return napi_call_function(env, global, callback, argc, argv, nullptr);
|
|
@@ -233,72 +226,60 @@ void Convert (napi_env env, const T& s, bool asBuffer, napi_value& result) {
|
|
|
233
226
|
* Base worker class. Handles the async work. Derived classes can override the
|
|
234
227
|
* following virtual methods (listed in the order in which they're called):
|
|
235
228
|
*
|
|
236
|
-
* -
|
|
237
|
-
* -
|
|
238
|
-
* -
|
|
239
|
-
* -
|
|
229
|
+
* - Execute (abstract, worker pool thread): main work
|
|
230
|
+
* - Then (main thread): call JS callback on success
|
|
231
|
+
* - Catch (main thread): call JS callback on error
|
|
232
|
+
* - Finally (main thread): do cleanup regardless of success
|
|
240
233
|
*/
|
|
241
234
|
struct BaseWorker {
|
|
242
|
-
// Note: storing env is discouraged as we'd end up using it in unsafe places.
|
|
243
235
|
BaseWorker (napi_env env,
|
|
244
236
|
Database* database,
|
|
245
237
|
napi_value callback,
|
|
246
|
-
const
|
|
238
|
+
const std::string& resourceName)
|
|
247
239
|
: database_(database) {
|
|
248
240
|
NAPI_STATUS_THROWS_VOID(napi_create_reference(env, callback, 1, &callbackRef_));
|
|
249
241
|
napi_value asyncResourceName;
|
|
250
|
-
NAPI_STATUS_THROWS_VOID(napi_create_string_utf8(env, resourceName,
|
|
251
|
-
|
|
252
|
-
|
|
242
|
+
NAPI_STATUS_THROWS_VOID(napi_create_string_utf8(env, resourceName.data(),
|
|
243
|
+
NAPI_AUTO_LENGTH,
|
|
244
|
+
&asyncResourceName));
|
|
253
245
|
NAPI_STATUS_THROWS_VOID(napi_create_async_work(env, callback,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
246
|
+
asyncResourceName,
|
|
247
|
+
BaseWorker::Execute,
|
|
248
|
+
BaseWorker::Complete,
|
|
249
|
+
this, &asyncWork_));
|
|
258
250
|
}
|
|
259
251
|
|
|
260
252
|
virtual ~BaseWorker () {}
|
|
261
253
|
|
|
262
254
|
static void Execute (napi_env env, void* data) {
|
|
263
255
|
auto self = reinterpret_cast<BaseWorker*>(data);
|
|
264
|
-
|
|
265
|
-
// Don't pass env to DoExecute() because use of Node-API
|
|
266
|
-
// methods should generally be avoided in async work.
|
|
267
|
-
self->DoExecute();
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
bool SetStatus (const rocksdb::Status& status) {
|
|
271
|
-
status_ = status;
|
|
272
|
-
return status.ok();
|
|
256
|
+
self->status_ = self->Execute();
|
|
273
257
|
}
|
|
274
258
|
|
|
275
|
-
virtual void DoExecute () = 0;
|
|
276
|
-
|
|
277
259
|
static void Complete (napi_env env, napi_status status, void* data) {
|
|
278
260
|
auto self = reinterpret_cast<BaseWorker*>(data);
|
|
279
261
|
|
|
280
|
-
self->DoComplete(env);
|
|
281
|
-
self->DoFinally(env);
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
void DoComplete (napi_env env) {
|
|
285
262
|
napi_value callback;
|
|
286
|
-
napi_get_reference_value(env, callbackRef_, &callback);
|
|
263
|
+
napi_get_reference_value(env, self->callbackRef_, &callback);
|
|
287
264
|
|
|
288
|
-
if (status_.ok()) {
|
|
289
|
-
|
|
265
|
+
if (self->status_.ok()) {
|
|
266
|
+
self->Then(env, callback);
|
|
290
267
|
} else {
|
|
291
|
-
|
|
268
|
+
self->Catch(env, callback);
|
|
292
269
|
}
|
|
270
|
+
|
|
271
|
+
self->Finally(env);
|
|
293
272
|
}
|
|
294
273
|
|
|
295
|
-
virtual
|
|
274
|
+
virtual rocksdb::Status Execute () = 0;
|
|
275
|
+
|
|
276
|
+
virtual void Then (napi_env env, napi_value callback) {
|
|
296
277
|
napi_value argv;
|
|
297
278
|
napi_get_null(env, &argv);
|
|
298
279
|
CallFunction(env, callback, 1, &argv);
|
|
299
280
|
}
|
|
300
281
|
|
|
301
|
-
virtual void
|
|
282
|
+
virtual void Catch (napi_env env, napi_value callback) {
|
|
302
283
|
napi_value argv;
|
|
303
284
|
|
|
304
285
|
const auto msg = status_.ToString();
|
|
@@ -324,7 +305,7 @@ struct BaseWorker {
|
|
|
324
305
|
CallFunction(env, callback, 1, &argv);
|
|
325
306
|
}
|
|
326
307
|
|
|
327
|
-
virtual void
|
|
308
|
+
virtual void Finally (napi_env env) {
|
|
328
309
|
napi_delete_reference(env, callbackRef_);
|
|
329
310
|
napi_delete_async_work(env, asyncWork_);
|
|
330
311
|
|
|
@@ -343,15 +324,7 @@ private:
|
|
|
343
324
|
rocksdb::Status status_;
|
|
344
325
|
};
|
|
345
326
|
|
|
346
|
-
/**
|
|
347
|
-
* Owns the LevelDB storage, cache, filter policy and iterators.
|
|
348
|
-
*/
|
|
349
327
|
struct Database {
|
|
350
|
-
Database ()
|
|
351
|
-
: pendingCloseWorker_(nullptr),
|
|
352
|
-
ref_(nullptr),
|
|
353
|
-
priorityWork_(0) {}
|
|
354
|
-
|
|
355
328
|
rocksdb::Status Open (const rocksdb::Options& options,
|
|
356
329
|
const bool readOnly,
|
|
357
330
|
const char* location) {
|
|
@@ -433,11 +406,11 @@ struct Database {
|
|
|
433
406
|
}
|
|
434
407
|
|
|
435
408
|
void IncrementPriorityWork (napi_env env) {
|
|
436
|
-
napi_reference_ref(env,
|
|
409
|
+
napi_reference_ref(env, prioritRef_, &priorityWork_);
|
|
437
410
|
}
|
|
438
411
|
|
|
439
412
|
void DecrementPriorityWork (napi_env env) {
|
|
440
|
-
napi_reference_unref(env,
|
|
413
|
+
napi_reference_unref(env, prioritRef_, &priorityWork_);
|
|
441
414
|
|
|
442
415
|
if (priorityWork_ == 0 && pendingCloseWorker_) {
|
|
443
416
|
pendingCloseWorker_->Queue(env);
|
|
@@ -452,10 +425,10 @@ struct Database {
|
|
|
452
425
|
std::unique_ptr<rocksdb::DB> db_;
|
|
453
426
|
BaseWorker* pendingCloseWorker_;
|
|
454
427
|
std::set<Iterator*> iterators_;
|
|
455
|
-
napi_ref
|
|
428
|
+
napi_ref prioritRef_;
|
|
456
429
|
|
|
457
430
|
private:
|
|
458
|
-
uint32_t priorityWork_;
|
|
431
|
+
uint32_t priorityWork_ = 0;
|
|
459
432
|
};
|
|
460
433
|
|
|
461
434
|
/**
|
|
@@ -464,14 +437,14 @@ private:
|
|
|
464
437
|
struct PriorityWorker : public BaseWorker {
|
|
465
438
|
PriorityWorker (napi_env env, Database* database, napi_value callback, const char* resourceName)
|
|
466
439
|
: BaseWorker(env, database, callback, resourceName) {
|
|
467
|
-
|
|
440
|
+
database_->IncrementPriorityWork(env);
|
|
468
441
|
}
|
|
469
442
|
|
|
470
443
|
virtual ~PriorityWorker () {}
|
|
471
444
|
|
|
472
|
-
void
|
|
445
|
+
void Finally (napi_env env) override {
|
|
473
446
|
database_->DecrementPriorityWork(env);
|
|
474
|
-
BaseWorker::
|
|
447
|
+
BaseWorker::Finally(env);
|
|
475
448
|
}
|
|
476
449
|
};
|
|
477
450
|
|
|
@@ -485,77 +458,63 @@ struct BaseIterator {
|
|
|
485
458
|
const int limit,
|
|
486
459
|
const bool fillCache)
|
|
487
460
|
: database_(database),
|
|
488
|
-
|
|
489
|
-
|
|
461
|
+
lt_(lt),
|
|
462
|
+
lte_(lte),
|
|
463
|
+
gt_(gt),
|
|
464
|
+
gte_(gte),
|
|
465
|
+
snapshot_(database->NewSnapshot(), [this](const rocksdb::Snapshot* ptr) {
|
|
466
|
+
database_->ReleaseSnapshot(ptr);
|
|
467
|
+
}),
|
|
468
|
+
iterator_(database->NewIterator([&]{
|
|
490
469
|
rocksdb::ReadOptions options;
|
|
470
|
+
if (lt_ && !lte_) {
|
|
471
|
+
upper_bound_ = rocksdb::Slice(lt_->data(), lt_->size());
|
|
472
|
+
options.iterate_upper_bound = &upper_bound_;
|
|
473
|
+
}
|
|
474
|
+
if (gte_) {
|
|
475
|
+
lower_bound_ = rocksdb::Slice(gte_->data(), gte_->size());
|
|
476
|
+
options.iterate_lower_bound = &lower_bound_;
|
|
477
|
+
}
|
|
491
478
|
options.fill_cache = fillCache;
|
|
492
|
-
options.
|
|
493
|
-
options.snapshot = snapshot_;
|
|
479
|
+
options.snapshot = snapshot_.get();
|
|
494
480
|
return options;
|
|
495
481
|
}())),
|
|
496
|
-
didSeek_(false),
|
|
497
482
|
reverse_(reverse),
|
|
498
|
-
|
|
499
|
-
lte_(lte),
|
|
500
|
-
gt_(gt),
|
|
501
|
-
gte_(gte),
|
|
502
|
-
limit_(limit),
|
|
503
|
-
count_(0) {
|
|
483
|
+
limit_(limit) {
|
|
504
484
|
}
|
|
505
485
|
|
|
506
486
|
virtual ~BaseIterator () {
|
|
507
|
-
assert(!
|
|
508
|
-
|
|
509
|
-
delete lt_;
|
|
510
|
-
delete lte_;
|
|
511
|
-
delete gt_;
|
|
512
|
-
delete gte_;
|
|
487
|
+
assert(!iterator_);
|
|
513
488
|
}
|
|
514
489
|
|
|
515
490
|
bool DidSeek () const {
|
|
516
491
|
return didSeek_;
|
|
517
492
|
}
|
|
518
493
|
|
|
519
|
-
/**
|
|
520
|
-
* Seek to the first relevant key based on range options.
|
|
521
|
-
*/
|
|
522
494
|
void SeekToRange () {
|
|
523
495
|
didSeek_ = true;
|
|
524
496
|
|
|
525
|
-
if (!reverse_ && gte_) {
|
|
526
|
-
|
|
527
|
-
} else if (!reverse_ && gt_) {
|
|
528
|
-
dbIterator_->Seek(*gt_);
|
|
497
|
+
if (!reverse_ && gt_ && !gte_) {
|
|
498
|
+
iterator_->Seek(*gt_);
|
|
529
499
|
|
|
530
|
-
if (
|
|
531
|
-
|
|
500
|
+
if (iterator_->Valid() && iterator_->key().compare(*gt_) == 0) {
|
|
501
|
+
iterator_->Next();
|
|
532
502
|
}
|
|
533
503
|
} else if (reverse_ && lte_) {
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
if (!dbIterator_->Valid()) {
|
|
537
|
-
dbIterator_->SeekToLast();
|
|
538
|
-
} else if (dbIterator_->key().compare(*lte_) > 0) {
|
|
539
|
-
dbIterator_->Prev();
|
|
540
|
-
}
|
|
541
|
-
} else if (reverse_ && lt_) {
|
|
542
|
-
dbIterator_->Seek(*lt_);
|
|
504
|
+
iterator_->Seek(*lte_);
|
|
543
505
|
|
|
544
|
-
if (!
|
|
545
|
-
|
|
546
|
-
} else if (
|
|
547
|
-
|
|
506
|
+
if (!iterator_->Valid()) {
|
|
507
|
+
iterator_->SeekToLast();
|
|
508
|
+
} else if (iterator_->key().compare(*lte_) > 0) {
|
|
509
|
+
iterator_->Prev();
|
|
548
510
|
}
|
|
549
511
|
} else if (reverse_) {
|
|
550
|
-
|
|
512
|
+
iterator_->SeekToLast();
|
|
551
513
|
} else {
|
|
552
|
-
|
|
514
|
+
iterator_->SeekToFirst();
|
|
553
515
|
}
|
|
554
516
|
}
|
|
555
517
|
|
|
556
|
-
/**
|
|
557
|
-
* Seek manually (during iteration).
|
|
558
|
-
*/
|
|
559
518
|
void Seek (const std::string& target) {
|
|
560
519
|
didSeek_ = true;
|
|
561
520
|
|
|
@@ -563,17 +522,17 @@ struct BaseIterator {
|
|
|
563
522
|
return SeekToEnd();
|
|
564
523
|
}
|
|
565
524
|
|
|
566
|
-
|
|
525
|
+
iterator_->Seek(target);
|
|
567
526
|
|
|
568
|
-
if (
|
|
569
|
-
const auto cmp =
|
|
527
|
+
if (iterator_->Valid()) {
|
|
528
|
+
const auto cmp = iterator_->key().compare(target);
|
|
570
529
|
if (reverse_ ? cmp > 0 : cmp < 0) {
|
|
571
530
|
Next();
|
|
572
531
|
}
|
|
573
532
|
} else {
|
|
574
533
|
SeekToFirst();
|
|
575
|
-
if (
|
|
576
|
-
const auto cmp =
|
|
534
|
+
if (iterator_->Valid()) {
|
|
535
|
+
const auto cmp = iterator_->key().compare(target);
|
|
577
536
|
if (reverse_ ? cmp > 0 : cmp < 0) {
|
|
578
537
|
SeekToEnd();
|
|
579
538
|
}
|
|
@@ -582,15 +541,24 @@ struct BaseIterator {
|
|
|
582
541
|
}
|
|
583
542
|
|
|
584
543
|
void Close () {
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
dbIterator_ = nullptr;
|
|
588
|
-
database_->ReleaseSnapshot(snapshot_);
|
|
589
|
-
}
|
|
544
|
+
snapshot_.reset();
|
|
545
|
+
iterator_.reset();
|
|
590
546
|
}
|
|
591
547
|
|
|
592
548
|
bool Valid () const {
|
|
593
|
-
|
|
549
|
+
if (!iterator_->Valid()) {
|
|
550
|
+
return false;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
if (lte_ && iterator_->key().compare(*lte_) > 0) {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
if (!gte_ && gt_ && iterator_->key().compare(*gt_) <= 0) {
|
|
558
|
+
return false;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
return true;
|
|
594
562
|
}
|
|
595
563
|
|
|
596
564
|
bool Increment () {
|
|
@@ -598,18 +566,18 @@ struct BaseIterator {
|
|
|
598
566
|
}
|
|
599
567
|
|
|
600
568
|
void Next () {
|
|
601
|
-
if (reverse_)
|
|
602
|
-
else
|
|
569
|
+
if (reverse_) iterator_->Prev();
|
|
570
|
+
else iterator_->Next();
|
|
603
571
|
}
|
|
604
572
|
|
|
605
573
|
void SeekToFirst () {
|
|
606
|
-
if (reverse_)
|
|
607
|
-
else
|
|
574
|
+
if (reverse_) iterator_->SeekToLast();
|
|
575
|
+
else iterator_->SeekToFirst();
|
|
608
576
|
}
|
|
609
577
|
|
|
610
578
|
void SeekToLast () {
|
|
611
|
-
if (reverse_)
|
|
612
|
-
else
|
|
579
|
+
if (reverse_) iterator_->SeekToFirst();
|
|
580
|
+
else iterator_->SeekToLast();
|
|
613
581
|
}
|
|
614
582
|
|
|
615
583
|
void SeekToEnd () {
|
|
@@ -618,15 +586,15 @@ struct BaseIterator {
|
|
|
618
586
|
}
|
|
619
587
|
|
|
620
588
|
rocksdb::Slice CurrentKey () const {
|
|
621
|
-
return
|
|
589
|
+
return iterator_->key();
|
|
622
590
|
}
|
|
623
591
|
|
|
624
592
|
rocksdb::Slice CurrentValue () const {
|
|
625
|
-
return
|
|
593
|
+
return iterator_->value();
|
|
626
594
|
}
|
|
627
595
|
|
|
628
596
|
rocksdb::Status Status () const {
|
|
629
|
-
return
|
|
597
|
+
return iterator_->status();
|
|
630
598
|
}
|
|
631
599
|
|
|
632
600
|
bool OutOfRange (const rocksdb::Slice& target) const {
|
|
@@ -648,16 +616,18 @@ struct BaseIterator {
|
|
|
648
616
|
Database* database_;
|
|
649
617
|
|
|
650
618
|
private:
|
|
651
|
-
const
|
|
652
|
-
|
|
653
|
-
|
|
619
|
+
const std::unique_ptr<const std::string> lt_;
|
|
620
|
+
const std::unique_ptr<const std::string> lte_;
|
|
621
|
+
const std::unique_ptr<const std::string> gt_;
|
|
622
|
+
const std::unique_ptr<const std::string> gte_;
|
|
623
|
+
rocksdb::Slice lower_bound_;
|
|
624
|
+
rocksdb::Slice upper_bound_;
|
|
625
|
+
std::shared_ptr<const rocksdb::Snapshot> snapshot_;
|
|
626
|
+
std::unique_ptr<rocksdb::Iterator> iterator_;
|
|
627
|
+
bool didSeek_ = false;
|
|
654
628
|
const bool reverse_;
|
|
655
|
-
const std::string* lt_;
|
|
656
|
-
const std::string* lte_;
|
|
657
|
-
const std::string* gt_;
|
|
658
|
-
const std::string* gte_;
|
|
659
629
|
const int limit_;
|
|
660
|
-
int count_;
|
|
630
|
+
int count_ = 0;
|
|
661
631
|
};
|
|
662
632
|
|
|
663
633
|
struct Iterator final : public BaseIterator {
|
|
@@ -694,50 +664,12 @@ struct Iterator final : public BaseIterator {
|
|
|
694
664
|
if (ref_) napi_delete_reference(env, ref_);
|
|
695
665
|
}
|
|
696
666
|
|
|
697
|
-
bool ReadMany (uint32_t size) {
|
|
698
|
-
cache_.clear();
|
|
699
|
-
cache_.reserve(size * 2);
|
|
700
|
-
size_t bytesRead = 0;
|
|
701
|
-
|
|
702
|
-
while (true) {
|
|
703
|
-
if (!first_) Next();
|
|
704
|
-
else first_ = false;
|
|
705
|
-
|
|
706
|
-
if (!Valid() || !Increment()) break;
|
|
707
|
-
|
|
708
|
-
if (keys_ && values_) {
|
|
709
|
-
auto k = CurrentKey();
|
|
710
|
-
auto v = CurrentValue();
|
|
711
|
-
cache_.emplace_back(k.data(), k.size());
|
|
712
|
-
cache_.emplace_back(v.data(), v.size());
|
|
713
|
-
bytesRead += k.size() + v.size();
|
|
714
|
-
} else if (keys_) {
|
|
715
|
-
auto k = CurrentKey();
|
|
716
|
-
cache_.emplace_back(k.data(), k.size());
|
|
717
|
-
cache_.push_back({});
|
|
718
|
-
bytesRead += k.size();
|
|
719
|
-
} else if (values_) {
|
|
720
|
-
auto v = CurrentValue();
|
|
721
|
-
cache_.push_back({});
|
|
722
|
-
cache_.emplace_back(v.data(), v.size());
|
|
723
|
-
bytesRead += v.size();
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
if (bytesRead > highWaterMarkBytes_ || cache_.size() / 2 >= size) {
|
|
727
|
-
return true;
|
|
728
|
-
}
|
|
729
|
-
}
|
|
730
|
-
|
|
731
|
-
return false;
|
|
732
|
-
}
|
|
733
|
-
|
|
734
667
|
const bool keys_;
|
|
735
668
|
const bool values_;
|
|
736
669
|
const bool keyAsBuffer_;
|
|
737
670
|
const bool valueAsBuffer_;
|
|
738
671
|
const uint32_t highWaterMarkBytes_;
|
|
739
672
|
bool first_;
|
|
740
|
-
std::vector<std::string> cache_;
|
|
741
673
|
|
|
742
674
|
private:
|
|
743
675
|
napi_ref ref_;
|
|
@@ -772,7 +704,7 @@ static void FinalizeDatabase (napi_env env, void* data, void* hint) {
|
|
|
772
704
|
if (data) {
|
|
773
705
|
auto database = reinterpret_cast<Database*>(data);
|
|
774
706
|
napi_remove_env_cleanup_hook(env, env_cleanup_hook, database);
|
|
775
|
-
if (database->
|
|
707
|
+
if (database->prioritRef_) napi_delete_reference(env, database->prioritRef_);
|
|
776
708
|
delete database;
|
|
777
709
|
}
|
|
778
710
|
}
|
|
@@ -786,8 +718,7 @@ NAPI_METHOD(db_init) {
|
|
|
786
718
|
FinalizeDatabase,
|
|
787
719
|
nullptr, &result));
|
|
788
720
|
|
|
789
|
-
|
|
790
|
-
NAPI_STATUS_THROWS(napi_create_reference(env, result, 0, &database->ref_));
|
|
721
|
+
NAPI_STATUS_THROWS(napi_create_reference(env, result, 0, &database->prioritRef_));
|
|
791
722
|
|
|
792
723
|
return result;
|
|
793
724
|
}
|
|
@@ -819,7 +750,7 @@ struct OpenWorker final : public PriorityWorker {
|
|
|
819
750
|
options_.write_buffer_size = writeBufferSize;
|
|
820
751
|
options_.max_open_files = maxOpenFiles;
|
|
821
752
|
options_.max_log_file_size = maxFileSize;
|
|
822
|
-
options_.
|
|
753
|
+
options_.use_adaptive_mutex = true;
|
|
823
754
|
|
|
824
755
|
if (infoLogLevel.size() > 0) {
|
|
825
756
|
rocksdb::InfoLogLevel lvl = {};
|
|
@@ -859,8 +790,8 @@ struct OpenWorker final : public PriorityWorker {
|
|
|
859
790
|
);
|
|
860
791
|
}
|
|
861
792
|
|
|
862
|
-
|
|
863
|
-
|
|
793
|
+
rocksdb::Status Execute () override {
|
|
794
|
+
return database_->Open(options_, readOnly_, location_.c_str());
|
|
864
795
|
}
|
|
865
796
|
|
|
866
797
|
rocksdb::Options options_;
|
|
@@ -908,8 +839,9 @@ struct CloseWorker final : public BaseWorker {
|
|
|
908
839
|
napi_value callback)
|
|
909
840
|
: BaseWorker(env, database, callback, "leveldown.db.close") {}
|
|
910
841
|
|
|
911
|
-
|
|
842
|
+
rocksdb::Status Execute () override {
|
|
912
843
|
database_->CloseDatabase();
|
|
844
|
+
return rocksdb::Status::OK();
|
|
913
845
|
}
|
|
914
846
|
};
|
|
915
847
|
|
|
@@ -945,10 +877,10 @@ struct PutWorker final : public PriorityWorker {
|
|
|
945
877
|
key_(key), value_(value), sync_(sync) {
|
|
946
878
|
}
|
|
947
879
|
|
|
948
|
-
|
|
880
|
+
rocksdb::Status Execute () override {
|
|
949
881
|
rocksdb::WriteOptions options;
|
|
950
882
|
options.sync = sync_;
|
|
951
|
-
|
|
883
|
+
return database_->Put(options, key_, value_);
|
|
952
884
|
}
|
|
953
885
|
|
|
954
886
|
const std::string key_;
|
|
@@ -982,13 +914,13 @@ struct GetWorker final : public PriorityWorker {
|
|
|
982
914
|
key_(key), asBuffer_(asBuffer), fillCache_(fillCache) {
|
|
983
915
|
}
|
|
984
916
|
|
|
985
|
-
|
|
917
|
+
rocksdb::Status Execute () override {
|
|
986
918
|
rocksdb::ReadOptions options;
|
|
987
919
|
options.fill_cache = fillCache_;
|
|
988
|
-
|
|
920
|
+
return database_->Get(options, key_, value_);
|
|
989
921
|
}
|
|
990
922
|
|
|
991
|
-
void
|
|
923
|
+
void Then (napi_env env, napi_value callback) override {
|
|
992
924
|
napi_value argv[2];
|
|
993
925
|
napi_get_null(env, &argv[0]);
|
|
994
926
|
Convert(env, std::move(value_), asBuffer_, argv[1]);
|
|
@@ -1037,44 +969,39 @@ struct GetManyWorker final : public PriorityWorker {
|
|
|
1037
969
|
}
|
|
1038
970
|
}
|
|
1039
971
|
|
|
1040
|
-
|
|
1041
|
-
cache_.reserve(keys_.size());
|
|
1042
|
-
|
|
972
|
+
rocksdb::Status Execute () override {
|
|
1043
973
|
rocksdb::ReadOptions options;
|
|
1044
974
|
options.snapshot = snapshot_;
|
|
1045
975
|
options.fill_cache = fillCache_;
|
|
1046
976
|
|
|
1047
|
-
|
|
977
|
+
status_ = database_->db_->MultiGet(
|
|
978
|
+
options,
|
|
979
|
+
std::vector<rocksdb::Slice>(keys_.begin(), keys_.end()),
|
|
980
|
+
&values_
|
|
981
|
+
);
|
|
1048
982
|
|
|
1049
|
-
|
|
1050
|
-
|
|
983
|
+
database_->ReleaseSnapshot(snapshot_);
|
|
984
|
+
snapshot_ = nullptr;
|
|
1051
985
|
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
cache_.emplace_back(nullptr);
|
|
1056
|
-
} else {
|
|
1057
|
-
SetStatus(status);
|
|
1058
|
-
break;
|
|
986
|
+
for (auto status : status_) {
|
|
987
|
+
if (!status.ok() && !status.IsNotFound()) {
|
|
988
|
+
return status;
|
|
1059
989
|
}
|
|
1060
|
-
|
|
1061
|
-
value.Reset();
|
|
1062
990
|
}
|
|
1063
991
|
|
|
1064
|
-
|
|
1065
|
-
snapshot_ = nullptr;
|
|
992
|
+
return rocksdb::Status::OK();
|
|
1066
993
|
}
|
|
1067
994
|
|
|
1068
|
-
void
|
|
1069
|
-
const auto size =
|
|
995
|
+
void Then (napi_env env, napi_value callback) override {
|
|
996
|
+
const auto size = values_.size();
|
|
1070
997
|
|
|
1071
998
|
napi_value array;
|
|
1072
999
|
napi_create_array_with_length(env, size, &array);
|
|
1073
1000
|
|
|
1074
1001
|
for (size_t idx = 0; idx < size; idx++) {
|
|
1075
1002
|
napi_value element;
|
|
1076
|
-
if (
|
|
1077
|
-
Convert(env,
|
|
1003
|
+
if (status_[idx].ok()) {
|
|
1004
|
+
Convert(env, values_[idx], valueAsBuffer_, element);
|
|
1078
1005
|
} else {
|
|
1079
1006
|
napi_get_undefined(env, &element);
|
|
1080
1007
|
}
|
|
@@ -1089,8 +1016,9 @@ struct GetManyWorker final : public PriorityWorker {
|
|
|
1089
1016
|
|
|
1090
1017
|
private:
|
|
1091
1018
|
const std::vector<std::string> keys_;
|
|
1019
|
+
std::vector<std::string> values_;
|
|
1020
|
+
std::vector<rocksdb::Status> status_;
|
|
1092
1021
|
const bool valueAsBuffer_;
|
|
1093
|
-
std::vector<rocksdb::PinnableSlice> cache_;
|
|
1094
1022
|
const bool fillCache_;
|
|
1095
1023
|
const rocksdb::Snapshot* snapshot_;
|
|
1096
1024
|
};
|
|
@@ -1121,10 +1049,10 @@ struct DelWorker final : public PriorityWorker {
|
|
|
1121
1049
|
key_(key), sync_(sync) {
|
|
1122
1050
|
}
|
|
1123
1051
|
|
|
1124
|
-
|
|
1052
|
+
rocksdb::Status Execute () override {
|
|
1125
1053
|
rocksdb::WriteOptions options;
|
|
1126
1054
|
options.sync = sync_;
|
|
1127
|
-
|
|
1055
|
+
return database_->Del(options, key_);
|
|
1128
1056
|
}
|
|
1129
1057
|
|
|
1130
1058
|
const std::string key_;
|
|
@@ -1159,7 +1087,7 @@ struct ClearWorker final : public PriorityWorker {
|
|
|
1159
1087
|
iterator_(database, reverse, lt, lte, gt, gte, limit, false) {
|
|
1160
1088
|
}
|
|
1161
1089
|
|
|
1162
|
-
|
|
1090
|
+
rocksdb::Status Execute () override {
|
|
1163
1091
|
iterator_.SeekToRange();
|
|
1164
1092
|
|
|
1165
1093
|
// TODO: add option
|
|
@@ -1167,7 +1095,8 @@ struct ClearWorker final : public PriorityWorker {
|
|
|
1167
1095
|
|
|
1168
1096
|
rocksdb::WriteBatch batch;
|
|
1169
1097
|
rocksdb::WriteOptions options;
|
|
1170
|
-
|
|
1098
|
+
rocksdb::Status status;
|
|
1099
|
+
|
|
1171
1100
|
while (true) {
|
|
1172
1101
|
size_t bytesRead = 0;
|
|
1173
1102
|
|
|
@@ -1178,11 +1107,13 @@ struct ClearWorker final : public PriorityWorker {
|
|
|
1178
1107
|
iterator_.Next();
|
|
1179
1108
|
}
|
|
1180
1109
|
|
|
1181
|
-
|
|
1110
|
+
status = iterator_.Status();
|
|
1111
|
+
if (!status.ok() || bytesRead == 0) {
|
|
1182
1112
|
break;
|
|
1183
1113
|
}
|
|
1184
1114
|
|
|
1185
|
-
|
|
1115
|
+
status = database_->WriteBatch(options, &batch);
|
|
1116
|
+
if (!status.ok()) {
|
|
1186
1117
|
break;
|
|
1187
1118
|
}
|
|
1188
1119
|
|
|
@@ -1190,6 +1121,8 @@ struct ClearWorker final : public PriorityWorker {
|
|
|
1190
1121
|
}
|
|
1191
1122
|
|
|
1192
1123
|
iterator_.Close();
|
|
1124
|
+
|
|
1125
|
+
return status;
|
|
1193
1126
|
}
|
|
1194
1127
|
|
|
1195
1128
|
private:
|
|
@@ -1226,12 +1159,13 @@ struct ApproximateSizeWorker final : public PriorityWorker {
|
|
|
1226
1159
|
: PriorityWorker(env, database, callback, "rocks_level.db.approximate_size"),
|
|
1227
1160
|
start_(start), end_(end) {}
|
|
1228
1161
|
|
|
1229
|
-
|
|
1162
|
+
rocksdb::Status Execute () override {
|
|
1230
1163
|
rocksdb::Range range(start_, end_);
|
|
1231
1164
|
size_ = database_->ApproximateSize(&range);
|
|
1165
|
+
return rocksdb::Status::OK();
|
|
1232
1166
|
}
|
|
1233
1167
|
|
|
1234
|
-
void
|
|
1168
|
+
void Then (napi_env env, napi_value callback) override {
|
|
1235
1169
|
napi_value argv[2];
|
|
1236
1170
|
napi_get_null(env, &argv[0]);
|
|
1237
1171
|
napi_create_int64(env, size_, &argv[1]);
|
|
@@ -1266,10 +1200,11 @@ struct CompactRangeWorker final : public PriorityWorker {
|
|
|
1266
1200
|
: PriorityWorker(env, database, callback, "rocks_level.db.compact_range"),
|
|
1267
1201
|
start_(start), end_(end) {}
|
|
1268
1202
|
|
|
1269
|
-
|
|
1203
|
+
rocksdb::Status Execute () override {
|
|
1270
1204
|
rocksdb::Slice start = start_;
|
|
1271
1205
|
rocksdb::Slice end = end_;
|
|
1272
1206
|
database_->CompactRange(&start, &end);
|
|
1207
|
+
return rocksdb::Status::OK();
|
|
1273
1208
|
}
|
|
1274
1209
|
|
|
1275
1210
|
const std::string start_;
|
|
@@ -1314,9 +1249,9 @@ struct DestroyWorker final : public BaseWorker {
|
|
|
1314
1249
|
|
|
1315
1250
|
~DestroyWorker () {}
|
|
1316
1251
|
|
|
1317
|
-
|
|
1252
|
+
rocksdb::Status Execute () override {
|
|
1318
1253
|
rocksdb::Options options;
|
|
1319
|
-
|
|
1254
|
+
return rocksdb::DestroyDB(location_, options);
|
|
1320
1255
|
}
|
|
1321
1256
|
|
|
1322
1257
|
const std::string location_;
|
|
@@ -1341,9 +1276,9 @@ struct RepairWorker final : public BaseWorker {
|
|
|
1341
1276
|
: BaseWorker(env, nullptr, callback, "rocks_level.repair_db"),
|
|
1342
1277
|
location_(location) {}
|
|
1343
1278
|
|
|
1344
|
-
|
|
1279
|
+
rocksdb::Status Execute () override {
|
|
1345
1280
|
rocksdb::Options options;
|
|
1346
|
-
|
|
1281
|
+
return rocksdb::RepairDB(location_, options);
|
|
1347
1282
|
}
|
|
1348
1283
|
|
|
1349
1284
|
const std::string location_;
|
|
@@ -1420,13 +1355,14 @@ struct CloseIteratorWorker final : public BaseWorker {
|
|
|
1420
1355
|
: BaseWorker(env, iterator->database_, callback, "leveldown.iterator.end"),
|
|
1421
1356
|
iterator_(iterator) {}
|
|
1422
1357
|
|
|
1423
|
-
|
|
1358
|
+
rocksdb::Status Execute () override {
|
|
1424
1359
|
iterator_->Close();
|
|
1360
|
+
return rocksdb::Status::OK();
|
|
1425
1361
|
}
|
|
1426
1362
|
|
|
1427
|
-
void
|
|
1363
|
+
void Finally (napi_env env) override {
|
|
1428
1364
|
iterator_->Detach(env);
|
|
1429
|
-
BaseWorker::
|
|
1365
|
+
BaseWorker::Finally(env);
|
|
1430
1366
|
}
|
|
1431
1367
|
|
|
1432
1368
|
private:
|
|
@@ -1452,55 +1388,83 @@ struct NextWorker final : public BaseWorker {
|
|
|
1452
1388
|
napi_value callback)
|
|
1453
1389
|
: BaseWorker(env, iterator->database_, callback,
|
|
1454
1390
|
"leveldown.iterator.next"),
|
|
1455
|
-
iterator_(iterator), size_(size)
|
|
1391
|
+
iterator_(iterator), size_(size) {}
|
|
1456
1392
|
|
|
1457
|
-
|
|
1393
|
+
rocksdb::Status Execute () override {
|
|
1458
1394
|
if (!iterator_->DidSeek()) {
|
|
1459
1395
|
iterator_->SeekToRange();
|
|
1460
1396
|
}
|
|
1461
1397
|
|
|
1462
1398
|
// Limit the size of the cache to prevent starving the event loop
|
|
1463
1399
|
// in JS-land while we're recursively calling process.nextTick().
|
|
1464
|
-
ok_ = iterator_->ReadMany(size_);
|
|
1465
1400
|
|
|
1466
|
-
|
|
1467
|
-
|
|
1401
|
+
finished_ = false;
|
|
1402
|
+
cache_.reserve(size_ * 2);
|
|
1403
|
+
size_t bytesRead = 0;
|
|
1404
|
+
|
|
1405
|
+
while (true) {
|
|
1406
|
+
if (!iterator_->first_) iterator_->Next();
|
|
1407
|
+
else iterator_->first_ = false;
|
|
1408
|
+
|
|
1409
|
+
if (!iterator_->Valid() || !iterator_->Increment()) break;
|
|
1410
|
+
|
|
1411
|
+
if (iterator_->keys_ && iterator_->values_) {
|
|
1412
|
+
auto k = iterator_->CurrentKey();
|
|
1413
|
+
auto v = iterator_->CurrentValue();
|
|
1414
|
+
cache_.emplace_back(k.data(), k.size());
|
|
1415
|
+
cache_.emplace_back(v.data(), v.size());
|
|
1416
|
+
bytesRead += k.size() + v.size();
|
|
1417
|
+
} else if (iterator_->keys_) {
|
|
1418
|
+
auto k = iterator_->CurrentKey();
|
|
1419
|
+
cache_.emplace_back(k.data(), k.size());
|
|
1420
|
+
cache_.push_back({});
|
|
1421
|
+
bytesRead += k.size();
|
|
1422
|
+
} else if (iterator_->values_) {
|
|
1423
|
+
auto v = iterator_->CurrentValue();
|
|
1424
|
+
cache_.push_back({});
|
|
1425
|
+
cache_.emplace_back(v.data(), v.size());
|
|
1426
|
+
bytesRead += v.size();
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
if (bytesRead > iterator_->highWaterMarkBytes_ || cache_.size() / 2 >= size_) {
|
|
1430
|
+
finished_ = true;
|
|
1431
|
+
return rocksdb::Status::OK();
|
|
1432
|
+
}
|
|
1468
1433
|
}
|
|
1434
|
+
|
|
1435
|
+
return iterator_->Status();
|
|
1469
1436
|
}
|
|
1470
1437
|
|
|
1471
|
-
void
|
|
1472
|
-
const auto size =
|
|
1438
|
+
void Then (napi_env env, napi_value callback) override {
|
|
1439
|
+
const auto size = cache_.size();
|
|
1473
1440
|
napi_value result;
|
|
1474
1441
|
napi_create_array_with_length(env, size, &result);
|
|
1475
1442
|
|
|
1476
|
-
for (size_t idx = 0; idx <
|
|
1443
|
+
for (size_t idx = 0; idx < cache_.size(); idx += 2) {
|
|
1477
1444
|
napi_value key;
|
|
1478
1445
|
napi_value val;
|
|
1479
1446
|
|
|
1480
|
-
Convert(env,
|
|
1481
|
-
Convert(env,
|
|
1447
|
+
Convert(env, cache_[idx + 0], iterator_->keyAsBuffer_, key);
|
|
1448
|
+
Convert(env, cache_[idx + 1], iterator_->valueAsBuffer_, val);
|
|
1482
1449
|
|
|
1483
1450
|
napi_set_element(env, result, static_cast<int>(idx + 0), key);
|
|
1484
1451
|
napi_set_element(env, result, static_cast<int>(idx + 1), val);
|
|
1485
1452
|
}
|
|
1486
1453
|
|
|
1487
|
-
|
|
1454
|
+
cache_.clear();
|
|
1488
1455
|
|
|
1489
1456
|
napi_value argv[3];
|
|
1490
1457
|
napi_get_null(env, &argv[0]);
|
|
1491
1458
|
argv[1] = result;
|
|
1492
|
-
napi_get_boolean(env, !
|
|
1459
|
+
napi_get_boolean(env, !finished_, &argv[2]);
|
|
1493
1460
|
CallFunction(env, callback, 3, argv);
|
|
1494
1461
|
}
|
|
1495
1462
|
|
|
1496
|
-
void DoFinally (napi_env env) override {
|
|
1497
|
-
BaseWorker::DoFinally(env);
|
|
1498
|
-
}
|
|
1499
|
-
|
|
1500
1463
|
private:
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1464
|
+
std::vector<std::string> cache_;
|
|
1465
|
+
Iterator* iterator_ = nullptr;
|
|
1466
|
+
uint32_t size_ = 0;
|
|
1467
|
+
bool finished_ = false;
|
|
1504
1468
|
};
|
|
1505
1469
|
|
|
1506
1470
|
NAPI_METHOD(iterator_nextv) {
|
|
@@ -1556,14 +1520,14 @@ struct BatchWorker final : public PriorityWorker {
|
|
|
1556
1520
|
}
|
|
1557
1521
|
}
|
|
1558
1522
|
|
|
1559
|
-
|
|
1560
|
-
if (hasData_) {
|
|
1561
|
-
rocksdb::
|
|
1562
|
-
options.sync = sync_;
|
|
1563
|
-
SetStatus(database_->WriteBatch(options, &batch_));
|
|
1564
|
-
} else {
|
|
1565
|
-
SetStatus(rocksdb::Status::OK());
|
|
1523
|
+
rocksdb::Status Execute () override {
|
|
1524
|
+
if (!hasData_) {
|
|
1525
|
+
return rocksdb::Status::OK();
|
|
1566
1526
|
}
|
|
1527
|
+
|
|
1528
|
+
rocksdb::WriteOptions options;
|
|
1529
|
+
options.sync = sync_;
|
|
1530
|
+
return database_->WriteBatch(options, &batch_);
|
|
1567
1531
|
}
|
|
1568
1532
|
|
|
1569
1533
|
private:
|
|
@@ -1650,15 +1614,15 @@ struct BatchWriteWorker final : public PriorityWorker {
|
|
|
1650
1614
|
NAPI_STATUS_THROWS_VOID(napi_create_reference(env, batch, 1, &batchRef_));
|
|
1651
1615
|
}
|
|
1652
1616
|
|
|
1653
|
-
|
|
1617
|
+
rocksdb::Status Execute () override {
|
|
1654
1618
|
rocksdb::WriteOptions options;
|
|
1655
1619
|
options.sync = sync_;
|
|
1656
|
-
|
|
1620
|
+
return database_->WriteBatch(options, batch_);
|
|
1657
1621
|
}
|
|
1658
1622
|
|
|
1659
|
-
void
|
|
1623
|
+
void Finally (napi_env env) override {
|
|
1660
1624
|
napi_delete_reference(env, batchRef_);
|
|
1661
|
-
PriorityWorker::
|
|
1625
|
+
PriorityWorker::Finally(env);
|
|
1662
1626
|
}
|
|
1663
1627
|
|
|
1664
1628
|
private:
|