@nxtedition/rocksdb 5.2.21 → 5.2.28
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 +510 -967
- package/binding.gyp +78 -72
- package/chained-batch.js +1 -2
- 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/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/cmake/modules/CxxFlags.cmake +7 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindJeMalloc.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindNUMA.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindSnappy.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/FindTBB.cmake +33 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findgflags.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findlz4.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Finduring.cmake +26 -0
- package/deps/rocksdb/rocksdb/cmake/modules/Findzstd.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
- 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/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/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/index.js +5 -87
- package/package-lock.json +23687 -0
- package/package.json +8 -9
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/prebuilds/darwin-x64/node.napi.node +0 -0
- package/prebuilds/{darwin-x64+arm64 → linux-x64}/node.napi.node +0 -0
- package/deps/rocksdb/rocksdb/README.md +0 -32
- 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/port/README +0 -10
- 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/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/README +0 -13
- package/deps/snappy/snappy-1.1.7/README.md +0 -149
- package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
-
|
|
6
|
-
#pragma once
|
|
7
|
-
|
|
8
|
-
#include <memory>
|
|
9
|
-
#include <string>
|
|
10
|
-
|
|
11
|
-
#include "rocksdb/status.h"
|
|
12
|
-
#include "rocksdb/utilities/env_mirror.h"
|
|
13
|
-
|
|
14
|
-
#include <rados/librados.hpp>
|
|
15
|
-
|
|
16
|
-
namespace ROCKSDB_NAMESPACE {
|
|
17
|
-
class LibradosWritableFile;
|
|
18
|
-
|
|
19
|
-
class EnvLibrados : public EnvWrapper {
|
|
20
|
-
public:
|
|
21
|
-
// Create a brand new sequentially-readable file with the specified name.
|
|
22
|
-
// On success, stores a pointer to the new file in *result and returns OK.
|
|
23
|
-
// On failure stores nullptr in *result and returns non-OK. If the file does
|
|
24
|
-
// not exist, returns a non-OK status.
|
|
25
|
-
//
|
|
26
|
-
// The returned file will only be accessed by one thread at a time.
|
|
27
|
-
Status NewSequentialFile(const std::string& fname,
|
|
28
|
-
std::unique_ptr<SequentialFile>* result,
|
|
29
|
-
const EnvOptions& options) override;
|
|
30
|
-
|
|
31
|
-
// Create a brand new random access read-only file with the
|
|
32
|
-
// specified name. On success, stores a pointer to the new file in
|
|
33
|
-
// *result and returns OK. On failure stores nullptr in *result and
|
|
34
|
-
// returns non-OK. If the file does not exist, returns a non-OK
|
|
35
|
-
// status.
|
|
36
|
-
//
|
|
37
|
-
// The returned file may be concurrently accessed by multiple threads.
|
|
38
|
-
Status NewRandomAccessFile(const std::string& fname,
|
|
39
|
-
std::unique_ptr<RandomAccessFile>* result,
|
|
40
|
-
const EnvOptions& options) override;
|
|
41
|
-
|
|
42
|
-
// Create an object that writes to a new file with the specified
|
|
43
|
-
// name. Deletes any existing file with the same name and creates a
|
|
44
|
-
// new file. On success, stores a pointer to the new file in
|
|
45
|
-
// *result and returns OK. On failure stores nullptr in *result and
|
|
46
|
-
// returns non-OK.
|
|
47
|
-
//
|
|
48
|
-
// The returned file will only be accessed by one thread at a time.
|
|
49
|
-
Status NewWritableFile(const std::string& fname,
|
|
50
|
-
std::unique_ptr<WritableFile>* result,
|
|
51
|
-
const EnvOptions& options) override;
|
|
52
|
-
|
|
53
|
-
// Reuse an existing file by renaming it and opening it as writable.
|
|
54
|
-
Status ReuseWritableFile(const std::string& fname,
|
|
55
|
-
const std::string& old_fname,
|
|
56
|
-
std::unique_ptr<WritableFile>* result,
|
|
57
|
-
const EnvOptions& options) override;
|
|
58
|
-
|
|
59
|
-
// Create an object that represents a directory. Will fail if directory
|
|
60
|
-
// doesn't exist. If the directory exists, it will open the directory
|
|
61
|
-
// and create a new Directory object.
|
|
62
|
-
//
|
|
63
|
-
// On success, stores a pointer to the new Directory in
|
|
64
|
-
// *result and returns OK. On failure stores nullptr in *result and
|
|
65
|
-
// returns non-OK.
|
|
66
|
-
Status NewDirectory(const std::string& name,
|
|
67
|
-
std::unique_ptr<Directory>* result) override;
|
|
68
|
-
|
|
69
|
-
// Returns OK if the named file exists.
|
|
70
|
-
// NotFound if the named file does not exist,
|
|
71
|
-
// the calling process does not have permission to determine
|
|
72
|
-
// whether this file exists, or if the path is invalid.
|
|
73
|
-
// IOError if an IO Error was encountered
|
|
74
|
-
Status FileExists(const std::string& fname) override;
|
|
75
|
-
|
|
76
|
-
// Store in *result the names of the children of the specified directory.
|
|
77
|
-
// The names are relative to "dir".
|
|
78
|
-
// Original contents of *results are dropped.
|
|
79
|
-
Status GetChildren(const std::string& dir, std::vector<std::string>* result);
|
|
80
|
-
|
|
81
|
-
// Delete the named file.
|
|
82
|
-
Status DeleteFile(const std::string& fname) override;
|
|
83
|
-
|
|
84
|
-
// Create the specified directory. Returns error if directory exists.
|
|
85
|
-
Status CreateDir(const std::string& dirname) override;
|
|
86
|
-
|
|
87
|
-
// Creates directory if missing. Return Ok if it exists, or successful in
|
|
88
|
-
// Creating.
|
|
89
|
-
Status CreateDirIfMissing(const std::string& dirname) override;
|
|
90
|
-
|
|
91
|
-
// Delete the specified directory.
|
|
92
|
-
Status DeleteDir(const std::string& dirname) override;
|
|
93
|
-
|
|
94
|
-
// Store the size of fname in *file_size.
|
|
95
|
-
Status GetFileSize(const std::string& fname, uint64_t* file_size) override;
|
|
96
|
-
|
|
97
|
-
// Store the last modification time of fname in *file_mtime.
|
|
98
|
-
Status GetFileModificationTime(const std::string& fname,
|
|
99
|
-
uint64_t* file_mtime) override;
|
|
100
|
-
// Rename file src to target.
|
|
101
|
-
Status RenameFile(const std::string& src, const std::string& target) override;
|
|
102
|
-
// Hard Link file src to target.
|
|
103
|
-
Status LinkFile(const std::string& src, const std::string& target) override;
|
|
104
|
-
|
|
105
|
-
// Lock the specified file. Used to prevent concurrent access to
|
|
106
|
-
// the same db by multiple processes. On failure, stores nullptr in
|
|
107
|
-
// *lock and returns non-OK.
|
|
108
|
-
//
|
|
109
|
-
// On success, stores a pointer to the object that represents the
|
|
110
|
-
// acquired lock in *lock and returns OK. The caller should call
|
|
111
|
-
// UnlockFile(*lock) to release the lock. If the process exits,
|
|
112
|
-
// the lock will be automatically released.
|
|
113
|
-
//
|
|
114
|
-
// If somebody else already holds the lock, finishes immediately
|
|
115
|
-
// with a failure. I.e., this call does not wait for existing locks
|
|
116
|
-
// to go away.
|
|
117
|
-
//
|
|
118
|
-
// May create the named file if it does not already exist.
|
|
119
|
-
Status LockFile(const std::string& fname, FileLock** lock);
|
|
120
|
-
|
|
121
|
-
// Release the lock acquired by a previous successful call to LockFile.
|
|
122
|
-
// REQUIRES: lock was returned by a successful LockFile() call
|
|
123
|
-
// REQUIRES: lock has not already been unlocked.
|
|
124
|
-
Status UnlockFile(FileLock* lock);
|
|
125
|
-
|
|
126
|
-
// Get full directory name for this db.
|
|
127
|
-
Status GetAbsolutePath(const std::string& db_path, std::string* output_path);
|
|
128
|
-
|
|
129
|
-
// Generate unique id
|
|
130
|
-
std::string GenerateUniqueId();
|
|
131
|
-
|
|
132
|
-
// Get default EnvLibrados
|
|
133
|
-
static EnvLibrados* Default();
|
|
134
|
-
|
|
135
|
-
explicit EnvLibrados(const std::string& db_name,
|
|
136
|
-
const std::string& config_path,
|
|
137
|
-
const std::string& db_pool);
|
|
138
|
-
|
|
139
|
-
explicit EnvLibrados(
|
|
140
|
-
const std::string& client_name, // first 3 parameters are
|
|
141
|
-
// for RADOS client init
|
|
142
|
-
const std::string& cluster_name, const uint64_t flags,
|
|
143
|
-
const std::string& db_name, const std::string& config_path,
|
|
144
|
-
const std::string& db_pool, const std::string& wal_dir,
|
|
145
|
-
const std::string& wal_pool, const uint64_t write_buffer_size);
|
|
146
|
-
~EnvLibrados() { _rados.shutdown(); }
|
|
147
|
-
|
|
148
|
-
private:
|
|
149
|
-
std::string _client_name;
|
|
150
|
-
std::string _cluster_name;
|
|
151
|
-
uint64_t _flags;
|
|
152
|
-
std::string _db_name; // get from user, readable string; Also used as db_id
|
|
153
|
-
// for db metadata
|
|
154
|
-
std::string _config_path;
|
|
155
|
-
librados::Rados _rados; // RADOS client
|
|
156
|
-
std::string _db_pool_name;
|
|
157
|
-
librados::IoCtx _db_pool_ioctx; // IoCtx for connecting db_pool
|
|
158
|
-
std::string _wal_dir; // WAL dir path
|
|
159
|
-
std::string _wal_pool_name;
|
|
160
|
-
librados::IoCtx _wal_pool_ioctx; // IoCtx for connecting wal_pool
|
|
161
|
-
uint64_t _write_buffer_size; // WritableFile buffer max size
|
|
162
|
-
|
|
163
|
-
/* private function to communicate with rados */
|
|
164
|
-
std::string _CreateFid();
|
|
165
|
-
Status _GetFid(const std::string& fname, std::string& fid);
|
|
166
|
-
Status _GetFid(const std::string& fname, std::string& fid, int fid_len);
|
|
167
|
-
Status _RenameFid(const std::string& old_fname, const std::string& new_fname);
|
|
168
|
-
Status _AddFid(const std::string& fname, const std::string& fid);
|
|
169
|
-
Status _DelFid(const std::string& fname);
|
|
170
|
-
Status _GetSubFnames(const std::string& dirname,
|
|
171
|
-
std::vector<std::string>* result);
|
|
172
|
-
librados::IoCtx* _GetIoctx(const std::string& prefix);
|
|
173
|
-
friend class LibradosWritableFile;
|
|
174
|
-
};
|
|
175
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
|
|
2
|
-
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
3
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
4
|
-
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
5
|
-
|
|
6
|
-
#pragma once
|
|
7
|
-
#ifndef ROCKSDB_LITE
|
|
8
|
-
#include <string>
|
|
9
|
-
#include <vector>
|
|
10
|
-
|
|
11
|
-
#include "rocksdb/db.h"
|
|
12
|
-
#include "rocksdb/utilities/db_ttl.h"
|
|
13
|
-
#include "rocksdb/utilities/stackable_db.h"
|
|
14
|
-
|
|
15
|
-
namespace ROCKSDB_NAMESPACE {
|
|
16
|
-
|
|
17
|
-
// Please don't use this class. It's deprecated
|
|
18
|
-
class UtilityDB {
|
|
19
|
-
public:
|
|
20
|
-
// This function is here only for backwards compatibility. Please use the
|
|
21
|
-
// functions defined in DBWithTTl (rocksdb/utilities/db_ttl.h)
|
|
22
|
-
// (deprecated)
|
|
23
|
-
#if defined(__GNUC__) || defined(__clang__)
|
|
24
|
-
__attribute__((deprecated))
|
|
25
|
-
#elif _WIN32
|
|
26
|
-
__declspec(deprecated)
|
|
27
|
-
#endif
|
|
28
|
-
static Status
|
|
29
|
-
OpenTtlDB(const Options& options, const std::string& name,
|
|
30
|
-
StackableDB** dbptr, int32_t ttl = 0, bool read_only = false);
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
34
|
-
#endif // ROCKSDB_LITE
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// Copyright (c) 2019 Intel Corporation
|
|
3
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
4
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
5
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
6
|
-
|
|
7
|
-
#include <cstdio>
|
|
8
|
-
|
|
9
|
-
#ifdef MEMKIND
|
|
10
|
-
#include "memkind_kmem_allocator.h"
|
|
11
|
-
#include "rocksdb/cache.h"
|
|
12
|
-
#include "rocksdb/db.h"
|
|
13
|
-
#include "rocksdb/options.h"
|
|
14
|
-
#include "table/block_based/block_based_table_factory.h"
|
|
15
|
-
#include "test_util/testharness.h"
|
|
16
|
-
|
|
17
|
-
namespace rocksdb {
|
|
18
|
-
TEST(MemkindKmemAllocatorTest, Allocate) {
|
|
19
|
-
MemkindKmemAllocator allocator;
|
|
20
|
-
void* p;
|
|
21
|
-
try {
|
|
22
|
-
p = allocator.Allocate(1024);
|
|
23
|
-
} catch (const std::bad_alloc& e) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
ASSERT_NE(p, nullptr);
|
|
27
|
-
size_t size = allocator.UsableSize(p, 1024);
|
|
28
|
-
ASSERT_GE(size, 1024);
|
|
29
|
-
allocator.Deallocate(p);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
TEST(MemkindKmemAllocatorTest, DatabaseBlockCache) {
|
|
33
|
-
// Check if a memory node is available for allocation
|
|
34
|
-
try {
|
|
35
|
-
MemkindKmemAllocator allocator;
|
|
36
|
-
allocator.Allocate(1024);
|
|
37
|
-
} catch (const std::bad_alloc& e) {
|
|
38
|
-
return; // if no node available, skip the test
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// Create database with block cache using MemkindKmemAllocator
|
|
42
|
-
Options options;
|
|
43
|
-
std::string dbname = test::PerThreadDBPath("memkind_kmem_allocator_test");
|
|
44
|
-
ASSERT_OK(DestroyDB(dbname, options));
|
|
45
|
-
|
|
46
|
-
options.create_if_missing = true;
|
|
47
|
-
std::shared_ptr<Cache> cache = NewLRUCache(
|
|
48
|
-
1024 * 1024, 6, false, false, std::make_shared<MemkindKmemAllocator>());
|
|
49
|
-
BlockBasedTableOptions table_options;
|
|
50
|
-
table_options.block_cache = cache;
|
|
51
|
-
options.table_factory.reset(NewBlockBasedTableFactory(table_options));
|
|
52
|
-
|
|
53
|
-
DB* db = nullptr;
|
|
54
|
-
Status s = DB::Open(options, dbname, &db);
|
|
55
|
-
ASSERT_OK(s);
|
|
56
|
-
ASSERT_NE(db, nullptr);
|
|
57
|
-
ASSERT_EQ(cache->GetUsage(), 0);
|
|
58
|
-
|
|
59
|
-
// Write 2kB (200 values, each 10 bytes)
|
|
60
|
-
int num_keys = 200;
|
|
61
|
-
WriteOptions wo;
|
|
62
|
-
std::string val = "0123456789";
|
|
63
|
-
for (int i = 0; i < num_keys; i++) {
|
|
64
|
-
std::string key = std::to_string(i);
|
|
65
|
-
s = db->Put(wo, Slice(key), Slice(val));
|
|
66
|
-
ASSERT_OK(s);
|
|
67
|
-
}
|
|
68
|
-
ASSERT_OK(db->Flush(FlushOptions())); // Flush all data from memtable so that
|
|
69
|
-
// reads are from block cache
|
|
70
|
-
|
|
71
|
-
// Read and check block cache usage
|
|
72
|
-
ReadOptions ro;
|
|
73
|
-
std::string result;
|
|
74
|
-
for (int i = 0; i < num_keys; i++) {
|
|
75
|
-
std::string key = std::to_string(i);
|
|
76
|
-
s = db->Get(ro, key, &result);
|
|
77
|
-
ASSERT_OK(s);
|
|
78
|
-
ASSERT_EQ(result, val);
|
|
79
|
-
}
|
|
80
|
-
ASSERT_GT(cache->GetUsage(), 2000);
|
|
81
|
-
|
|
82
|
-
// Close database
|
|
83
|
-
s = db->Close();
|
|
84
|
-
ASSERT_OK(s);
|
|
85
|
-
ASSERT_OK(DestroyDB(dbname, options));
|
|
86
|
-
}
|
|
87
|
-
} // namespace rocksdb
|
|
88
|
-
|
|
89
|
-
int main(int argc, char** argv) {
|
|
90
|
-
::testing::InitGoogleTest(&argc, argv);
|
|
91
|
-
return RUN_ALL_TESTS();
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
#else
|
|
95
|
-
|
|
96
|
-
int main(int /*argc*/, char** /*argv*/) {
|
|
97
|
-
printf(
|
|
98
|
-
"Skip memkind_kmem_allocator_test as the required library memkind is "
|
|
99
|
-
"missing.");
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
#endif // MEMKIND
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
-
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
6
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
7
|
-
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
#ifndef ROCKSDB_LITE
|
|
11
|
-
#include "rocksdb/slice_transform.h"
|
|
12
|
-
#include "rocksdb/memtablerep.h"
|
|
13
|
-
|
|
14
|
-
namespace ROCKSDB_NAMESPACE {
|
|
15
|
-
|
|
16
|
-
class HashLinkListRepFactory : public MemTableRepFactory {
|
|
17
|
-
public:
|
|
18
|
-
explicit HashLinkListRepFactory(size_t bucket_count,
|
|
19
|
-
uint32_t threshold_use_skiplist,
|
|
20
|
-
size_t huge_page_tlb_size,
|
|
21
|
-
int bucket_entries_logging_threshold,
|
|
22
|
-
bool if_log_bucket_dist_when_flash)
|
|
23
|
-
: bucket_count_(bucket_count),
|
|
24
|
-
threshold_use_skiplist_(threshold_use_skiplist),
|
|
25
|
-
huge_page_tlb_size_(huge_page_tlb_size),
|
|
26
|
-
bucket_entries_logging_threshold_(bucket_entries_logging_threshold),
|
|
27
|
-
if_log_bucket_dist_when_flash_(if_log_bucket_dist_when_flash) {}
|
|
28
|
-
|
|
29
|
-
virtual ~HashLinkListRepFactory() {}
|
|
30
|
-
|
|
31
|
-
using MemTableRepFactory::CreateMemTableRep;
|
|
32
|
-
virtual MemTableRep* CreateMemTableRep(
|
|
33
|
-
const MemTableRep::KeyComparator& compare, Allocator* allocator,
|
|
34
|
-
const SliceTransform* transform, Logger* logger) override;
|
|
35
|
-
|
|
36
|
-
virtual const char* Name() const override {
|
|
37
|
-
return "HashLinkListRepFactory";
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
private:
|
|
41
|
-
const size_t bucket_count_;
|
|
42
|
-
const uint32_t threshold_use_skiplist_;
|
|
43
|
-
const size_t huge_page_tlb_size_;
|
|
44
|
-
int bucket_entries_logging_threshold_;
|
|
45
|
-
bool if_log_bucket_dist_when_flash_;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
49
|
-
#endif // ROCKSDB_LITE
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
-
// Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
|
6
|
-
// Use of this source code is governed by a BSD-style license that can be
|
|
7
|
-
// found in the LICENSE file. See the AUTHORS file for names of contributors.
|
|
8
|
-
|
|
9
|
-
#pragma once
|
|
10
|
-
#ifndef ROCKSDB_LITE
|
|
11
|
-
#include "rocksdb/slice_transform.h"
|
|
12
|
-
#include "rocksdb/memtablerep.h"
|
|
13
|
-
|
|
14
|
-
namespace ROCKSDB_NAMESPACE {
|
|
15
|
-
|
|
16
|
-
class HashSkipListRepFactory : public MemTableRepFactory {
|
|
17
|
-
public:
|
|
18
|
-
explicit HashSkipListRepFactory(
|
|
19
|
-
size_t bucket_count,
|
|
20
|
-
int32_t skiplist_height,
|
|
21
|
-
int32_t skiplist_branching_factor)
|
|
22
|
-
: bucket_count_(bucket_count),
|
|
23
|
-
skiplist_height_(skiplist_height),
|
|
24
|
-
skiplist_branching_factor_(skiplist_branching_factor) { }
|
|
25
|
-
|
|
26
|
-
virtual ~HashSkipListRepFactory() {}
|
|
27
|
-
|
|
28
|
-
using MemTableRepFactory::CreateMemTableRep;
|
|
29
|
-
virtual MemTableRep* CreateMemTableRep(
|
|
30
|
-
const MemTableRep::KeyComparator& compare, Allocator* allocator,
|
|
31
|
-
const SliceTransform* transform, Logger* logger) override;
|
|
32
|
-
|
|
33
|
-
virtual const char* Name() const override {
|
|
34
|
-
return "HashSkipListRepFactory";
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
private:
|
|
38
|
-
const size_t bucket_count_;
|
|
39
|
-
const int32_t skiplist_height_;
|
|
40
|
-
const int32_t skiplist_branching_factor_;
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
44
|
-
#endif // ROCKSDB_LITE
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
-
|
|
6
|
-
#pragma once
|
|
7
|
-
#include <functional>
|
|
8
|
-
#include <memory>
|
|
9
|
-
#include <unordered_map>
|
|
10
|
-
|
|
11
|
-
#include "options/configurable_helper.h"
|
|
12
|
-
#include "options/options_helper.h"
|
|
13
|
-
#include "rocksdb/convenience.h"
|
|
14
|
-
#include "rocksdb/customizable.h"
|
|
15
|
-
#include "rocksdb/status.h"
|
|
16
|
-
#include "rocksdb/utilities/object_registry.h"
|
|
17
|
-
|
|
18
|
-
namespace ROCKSDB_NAMESPACE {
|
|
19
|
-
template <typename T>
|
|
20
|
-
using SharedFactoryFunc =
|
|
21
|
-
std::function<bool(const std::string&, std::shared_ptr<T>*)>;
|
|
22
|
-
|
|
23
|
-
template <typename T>
|
|
24
|
-
using UniqueFactoryFunc =
|
|
25
|
-
std::function<bool(const std::string&, std::unique_ptr<T>*)>;
|
|
26
|
-
|
|
27
|
-
template <typename T>
|
|
28
|
-
using StaticFactoryFunc = std::function<bool(const std::string&, T**)>;
|
|
29
|
-
|
|
30
|
-
// Creates a new shared Customizable object based on the input parameters.
|
|
31
|
-
// This method parses the input value to determine the type of instance to
|
|
32
|
-
// create. If there is an existing instance (in result) and it is the same type
|
|
33
|
-
// as the object being created, the existing configuration is stored and used as
|
|
34
|
-
// the default for the new object.
|
|
35
|
-
//
|
|
36
|
-
// The value parameter specified the instance class of the object to create.
|
|
37
|
-
// If it is a simple string (e.g. BlockBasedTable), then the instance will be
|
|
38
|
-
// created using the default settings. If the value is a set of name-value
|
|
39
|
-
// pairs, then the "id" value is used to determine the instance to create and
|
|
40
|
-
// the remaining parameters are used to configure the object. Id name-value
|
|
41
|
-
// pairs are specified, there must be an "id=value" pairing or an error will
|
|
42
|
-
// result.
|
|
43
|
-
//
|
|
44
|
-
// The config_options parameter controls the process and how errors are
|
|
45
|
-
// returned. If ignore_unknown_options=true, unknown values are ignored during
|
|
46
|
-
// the configuration If ignore_unsupported_options=true, unknown instance types
|
|
47
|
-
// are ignored If invoke_prepare_options=true, the resulting instance wll be
|
|
48
|
-
// initialized (via PrepareOptions
|
|
49
|
-
//
|
|
50
|
-
// @param config_options Controls how the instance is created and errors are
|
|
51
|
-
// handled
|
|
52
|
-
// @param value Either the simple name of the instance to create, or a set of
|
|
53
|
-
// name-value pairs to
|
|
54
|
-
// create and initailzie the object
|
|
55
|
-
// @param func Optional function to call to attempt to create an instance
|
|
56
|
-
// @param result The newly created instance.
|
|
57
|
-
template <typename T>
|
|
58
|
-
static Status LoadSharedObject(const ConfigOptions& config_options,
|
|
59
|
-
const std::string& value,
|
|
60
|
-
const SharedFactoryFunc<T>& func,
|
|
61
|
-
std::shared_ptr<T>* result) {
|
|
62
|
-
std::string id;
|
|
63
|
-
std::unordered_map<std::string, std::string> opt_map;
|
|
64
|
-
Status status = ConfigurableHelper::GetOptionsMap(value, &id, &opt_map);
|
|
65
|
-
if (!status.ok()) { // GetOptionsMap failed
|
|
66
|
-
return status;
|
|
67
|
-
}
|
|
68
|
-
std::string curr_opts;
|
|
69
|
-
#ifndef ROCKSDB_LITE
|
|
70
|
-
if (result->get() != nullptr && result->get()->GetId() == id) {
|
|
71
|
-
// Try to get the existing options, ignoring any errors
|
|
72
|
-
ConfigOptions embedded = config_options;
|
|
73
|
-
embedded.delimiter = ";";
|
|
74
|
-
result->get()->GetOptionString(embedded, &curr_opts).PermitUncheckedError();
|
|
75
|
-
}
|
|
76
|
-
#endif
|
|
77
|
-
if (func == nullptr || !func(id, result)) { // No factory, or it failed
|
|
78
|
-
if (id.empty() && opt_map.empty()) {
|
|
79
|
-
// No Id and no options. Clear the object
|
|
80
|
-
result->reset();
|
|
81
|
-
return Status::OK();
|
|
82
|
-
} else if (id.empty()) { // We have no Id but have options. Not good
|
|
83
|
-
return Status::NotSupported("Cannot reset object ", id);
|
|
84
|
-
} else {
|
|
85
|
-
#ifndef ROCKSDB_LITE
|
|
86
|
-
status = ObjectRegistry::NewInstance()->NewSharedObject(id, result);
|
|
87
|
-
#else
|
|
88
|
-
status = Status::NotSupported("Cannot load object in LITE mode ", id);
|
|
89
|
-
#endif
|
|
90
|
-
if (!status.ok()) {
|
|
91
|
-
if (config_options.ignore_unsupported_options) {
|
|
92
|
-
return Status::OK();
|
|
93
|
-
} else {
|
|
94
|
-
return status;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return ConfigurableHelper::ConfigureNewObject(config_options, result->get(),
|
|
100
|
-
id, curr_opts, opt_map);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Creates a new unique customizable instance object based on the input
|
|
104
|
-
// parameters.
|
|
105
|
-
// @see LoadSharedObject for more information on the inner workings of this
|
|
106
|
-
// method.
|
|
107
|
-
//
|
|
108
|
-
// @param config_options Controls how the instance is created and errors are
|
|
109
|
-
// handled
|
|
110
|
-
// @param value Either the simple name of the instance to create, or a set of
|
|
111
|
-
// name-value pairs to
|
|
112
|
-
// create and initailzie the object
|
|
113
|
-
// @param func Optional function to call to attempt to create an instance
|
|
114
|
-
// @param result The newly created instance.
|
|
115
|
-
template <typename T>
|
|
116
|
-
static Status LoadUniqueObject(const ConfigOptions& config_options,
|
|
117
|
-
const std::string& value,
|
|
118
|
-
const UniqueFactoryFunc<T>& func,
|
|
119
|
-
std::unique_ptr<T>* result) {
|
|
120
|
-
std::string id;
|
|
121
|
-
std::unordered_map<std::string, std::string> opt_map;
|
|
122
|
-
Status status = ConfigurableHelper::GetOptionsMap(value, &id, &opt_map);
|
|
123
|
-
if (!status.ok()) { // GetOptionsMap failed
|
|
124
|
-
return status;
|
|
125
|
-
}
|
|
126
|
-
std::string curr_opts;
|
|
127
|
-
#ifndef ROCKSDB_LITE
|
|
128
|
-
if (result->get() != nullptr && result->get()->GetId() == id) {
|
|
129
|
-
// Try to get the existing options, ignoring any errors
|
|
130
|
-
ConfigOptions embedded = config_options;
|
|
131
|
-
embedded.delimiter = ";";
|
|
132
|
-
result->get()->GetOptionString(embedded, &curr_opts).PermitUncheckedError();
|
|
133
|
-
}
|
|
134
|
-
#endif
|
|
135
|
-
if (func == nullptr || !func(id, result)) { // No factory, or it failed
|
|
136
|
-
if (id.empty() && opt_map.empty()) {
|
|
137
|
-
// No Id and no options. Clear the object
|
|
138
|
-
result->reset();
|
|
139
|
-
return Status::OK();
|
|
140
|
-
} else if (id.empty()) { // We have no Id but have options. Not good
|
|
141
|
-
return Status::NotSupported("Cannot reset object ", id);
|
|
142
|
-
} else {
|
|
143
|
-
#ifndef ROCKSDB_LITE
|
|
144
|
-
status = ObjectRegistry::NewInstance()->NewUniqueObject(id, result);
|
|
145
|
-
#else
|
|
146
|
-
status = Status::NotSupported("Cannot load object in LITE mode ", id);
|
|
147
|
-
#endif // ROCKSDB_LITE
|
|
148
|
-
if (!status.ok()) {
|
|
149
|
-
if (config_options.ignore_unsupported_options) {
|
|
150
|
-
return Status::OK();
|
|
151
|
-
} else {
|
|
152
|
-
return status;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return ConfigurableHelper::ConfigureNewObject(config_options, result->get(),
|
|
158
|
-
id, curr_opts, opt_map);
|
|
159
|
-
}
|
|
160
|
-
// Creates a new static (raw pointer) customizable instance object based on the
|
|
161
|
-
// input parameters.
|
|
162
|
-
// @see LoadSharedObject for more information on the inner workings of this
|
|
163
|
-
// method.
|
|
164
|
-
//
|
|
165
|
-
// @param config_options Controls how the instance is created and errors are
|
|
166
|
-
// handled
|
|
167
|
-
// @param value Either the simple name of the instance to create, or a set of
|
|
168
|
-
// name-value pairs to
|
|
169
|
-
// create and initailzie the object
|
|
170
|
-
// @param func Optional function to call to attempt to create an instance
|
|
171
|
-
// @param result The newly created instance.
|
|
172
|
-
template <typename T>
|
|
173
|
-
static Status LoadStaticObject(const ConfigOptions& config_options,
|
|
174
|
-
const std::string& value,
|
|
175
|
-
const StaticFactoryFunc<T>& func, T** result) {
|
|
176
|
-
std::string id;
|
|
177
|
-
std::unordered_map<std::string, std::string> opt_map;
|
|
178
|
-
Status status = ConfigurableHelper::GetOptionsMap(value, &id, &opt_map);
|
|
179
|
-
if (!status.ok()) { // GetOptionsMap failed
|
|
180
|
-
return status;
|
|
181
|
-
}
|
|
182
|
-
std::string curr_opts;
|
|
183
|
-
#ifndef ROCKSDB_LITE
|
|
184
|
-
if (*result != nullptr && (*result)->GetId() == id) {
|
|
185
|
-
// Try to get the existing options, ignoring any errors
|
|
186
|
-
ConfigOptions embedded = config_options;
|
|
187
|
-
embedded.delimiter = ";";
|
|
188
|
-
(*result)->GetOptionString(embedded, &curr_opts).PermitUncheckedError();
|
|
189
|
-
}
|
|
190
|
-
#endif
|
|
191
|
-
if (func == nullptr || !func(id, result)) { // No factory, or it failed
|
|
192
|
-
if (id.empty() && opt_map.empty()) {
|
|
193
|
-
// No Id and no options. Clear the object
|
|
194
|
-
*result = nullptr;
|
|
195
|
-
return Status::OK();
|
|
196
|
-
} else if (id.empty()) { // We have no Id but have options. Not good
|
|
197
|
-
return Status::NotSupported("Cannot reset object ", id);
|
|
198
|
-
} else {
|
|
199
|
-
#ifndef ROCKSDB_LITE
|
|
200
|
-
status = ObjectRegistry::NewInstance()->NewStaticObject(id, result);
|
|
201
|
-
#else
|
|
202
|
-
status = Status::NotSupported("Cannot load object in LITE mode ", id);
|
|
203
|
-
#endif // ROCKSDB_LITE
|
|
204
|
-
if (!status.ok()) {
|
|
205
|
-
if (config_options.ignore_unsupported_options) {
|
|
206
|
-
return Status::OK();
|
|
207
|
-
} else {
|
|
208
|
-
return status;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
return ConfigurableHelper::ConfigureNewObject(config_options, *result, id,
|
|
214
|
-
curr_opts, opt_map);
|
|
215
|
-
}
|
|
216
|
-
} // namespace ROCKSDB_NAMESPACE
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
This directory contains interfaces and implementations that isolate the
|
|
2
|
-
rest of the package from platform details.
|
|
3
|
-
|
|
4
|
-
Code in the rest of the package includes "port.h" from this directory.
|
|
5
|
-
"port.h" in turn includes a platform specific "port_<platform>.h" file
|
|
6
|
-
that provides the platform specific implementation.
|
|
7
|
-
|
|
8
|
-
See port_posix.h for an example of what must be provided in a platform
|
|
9
|
-
specific header file.
|
|
10
|
-
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
|
2
|
-
// This source code is licensed under both the GPLv2 (found in the
|
|
3
|
-
// COPYING file in the root directory) and Apache 2.0 License
|
|
4
|
-
// (found in the LICENSE.Apache file in the root directory).
|
|
5
|
-
|
|
6
|
-
#pragma once
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Macro for marking functions as having public visibility.
|
|
10
|
-
*/
|
|
11
|
-
#if defined(__GNUC__)
|
|
12
|
-
#define FOLLY_EXPORT __attribute__((__visibility__("default")))
|
|
13
|
-
#else
|
|
14
|
-
#define FOLLY_EXPORT
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
|
-
#if defined(__has_feature)
|
|
18
|
-
#define FOLLY_HAS_FEATURE(...) __has_feature(__VA_ARGS__)
|
|
19
|
-
#else
|
|
20
|
-
#define FOLLY_HAS_FEATURE(...) 0
|
|
21
|
-
#endif
|
|
22
|
-
|
|
23
|
-
#if FOLLY_HAS_FEATURE(thread_sanitizer) || __SANITIZE_THREAD__
|
|
24
|
-
#ifndef FOLLY_SANITIZE_THREAD
|
|
25
|
-
#define FOLLY_SANITIZE_THREAD 1
|
|
26
|
-
#endif
|
|
27
|
-
#endif
|