@nxtedition/rocksdb 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +294 -0
- package/LICENSE +21 -0
- package/README.md +102 -0
- package/UPGRADING.md +91 -0
- package/binding.cc +1276 -0
- package/binding.gyp +73 -0
- package/binding.js +1 -0
- package/chained-batch.js +44 -0
- package/deps/rocksdb/build_version.cc +4 -0
- package/deps/rocksdb/rocksdb/CMakeLists.txt +1356 -0
- package/deps/rocksdb/rocksdb/COPYING +339 -0
- package/deps/rocksdb/rocksdb/LICENSE.Apache +202 -0
- package/deps/rocksdb/rocksdb/LICENSE.leveldb +29 -0
- package/deps/rocksdb/rocksdb/Makefile +2521 -0
- package/deps/rocksdb/rocksdb/TARGETS +2100 -0
- package/deps/rocksdb/rocksdb/cache/cache.cc +63 -0
- package/deps/rocksdb/rocksdb/cache/cache_bench.cc +381 -0
- package/deps/rocksdb/rocksdb/cache/cache_helpers.h +114 -0
- package/deps/rocksdb/rocksdb/cache/cache_test.cc +775 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.cc +769 -0
- package/deps/rocksdb/rocksdb/cache/clock_cache.h +16 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.cc +574 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache.h +339 -0
- package/deps/rocksdb/rocksdb/cache/lru_cache_test.cc +199 -0
- package/deps/rocksdb/rocksdb/cache/sharded_cache.cc +162 -0
- package/deps/rocksdb/rocksdb/cache/sharded_cache.h +111 -0
- package/deps/rocksdb/rocksdb/cmake/RocksDBConfig.cmake.in +54 -0
- 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/Findzstd.cmake +29 -0
- package/deps/rocksdb/rocksdb/cmake/modules/ReadVersion.cmake +10 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.cc +108 -0
- package/deps/rocksdb/rocksdb/db/arena_wrapped_db_iter.h +115 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_constants.h +16 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.cc +154 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition.h +67 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_addition_test.cc +206 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.cc +316 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder.h +91 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_builder_test.cc +660 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.cc +99 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache.h +49 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_cache_test.cc +268 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_garbage.cc +134 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_garbage.h +57 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_garbage_test.cc +173 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.cc +55 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_meta.h +164 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.cc +423 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader.h +81 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_file_reader_test.cc +771 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_index.h +184 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.cc +145 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_format.h +148 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.cc +132 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_sequential_reader.h +76 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.cc +168 -0
- package/deps/rocksdb/rocksdb/db/blob/blob_log_writer.h +83 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_basic_test.cc +307 -0
- package/deps/rocksdb/rocksdb/db/blob/db_blob_index_test.cc +464 -0
- package/deps/rocksdb/rocksdb/db/builder.cc +358 -0
- package/deps/rocksdb/rocksdb/db/builder.h +95 -0
- package/deps/rocksdb/rocksdb/db/c.cc +5281 -0
- package/deps/rocksdb/rocksdb/db/c_test.c +2883 -0
- package/deps/rocksdb/rocksdb/db/column_family.cc +1602 -0
- package/deps/rocksdb/rocksdb/db/column_family.h +787 -0
- package/deps/rocksdb/rocksdb/db/column_family_test.cc +3427 -0
- package/deps/rocksdb/rocksdb/db/compact_files_test.cc +425 -0
- package/deps/rocksdb/rocksdb/db/compacted_db_impl.cc +169 -0
- package/deps/rocksdb/rocksdb/db/compacted_db_impl.h +118 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.cc +591 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction.h +389 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h +37 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.cc +1023 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator.h +353 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_iterator_test.cc +1254 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.cc +1917 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job.h +208 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_stats_test.cc +1037 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_job_test.cc +1224 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.cc +1135 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker.h +318 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.cc +255 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_fifo.h +57 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.cc +510 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_level.h +33 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_test.cc +2190 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.cc +1103 -0
- package/deps/rocksdb/rocksdb/db/compaction/compaction_picker_universal.h +32 -0
- package/deps/rocksdb/rocksdb/db/compaction/sst_partitioner.cc +44 -0
- package/deps/rocksdb/rocksdb/db/comparator_db_test.cc +660 -0
- package/deps/rocksdb/rocksdb/db/convenience.cc +78 -0
- package/deps/rocksdb/rocksdb/db/corruption_test.cc +921 -0
- package/deps/rocksdb/rocksdb/db/cuckoo_table_db_test.cc +359 -0
- package/deps/rocksdb/rocksdb/db/db_basic_test.cc +3820 -0
- package/deps/rocksdb/rocksdb/db/db_block_cache_test.cc +1058 -0
- package/deps/rocksdb/rocksdb/db/db_bloom_filter_test.cc +2128 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_filter_test.cc +851 -0
- package/deps/rocksdb/rocksdb/db/db_compaction_test.cc +6292 -0
- package/deps/rocksdb/rocksdb/db/db_dynamic_level_test.cc +509 -0
- package/deps/rocksdb/rocksdb/db/db_encryption_test.cc +130 -0
- package/deps/rocksdb/rocksdb/db/db_filesnapshot.cc +137 -0
- package/deps/rocksdb/rocksdb/db/db_flush_test.cc +1119 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.cc +5057 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl.h +2274 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_compaction_flush.cc +3421 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_debug.cc +298 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_experimental.cc +151 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_files.cc +967 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_open.cc +1806 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.cc +270 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_readonly.h +146 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.cc +683 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_secondary.h +333 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_impl_write.cc +2024 -0
- package/deps/rocksdb/rocksdb/db/db_impl/db_secondary_test.cc +932 -0
- package/deps/rocksdb/rocksdb/db/db_info_dumper.cc +137 -0
- package/deps/rocksdb/rocksdb/db/db_info_dumper.h +15 -0
- package/deps/rocksdb/rocksdb/db/db_inplace_update_test.cc +178 -0
- package/deps/rocksdb/rocksdb/db/db_io_failure_test.cc +592 -0
- package/deps/rocksdb/rocksdb/db/db_iter.cc +1493 -0
- package/deps/rocksdb/rocksdb/db/db_iter.h +390 -0
- package/deps/rocksdb/rocksdb/db/db_iter_stress_test.cc +657 -0
- package/deps/rocksdb/rocksdb/db/db_iter_test.cc +3268 -0
- package/deps/rocksdb/rocksdb/db/db_iterator_test.cc +3197 -0
- package/deps/rocksdb/rocksdb/db/db_log_iter_test.cc +299 -0
- package/deps/rocksdb/rocksdb/db/db_logical_block_size_cache_test.cc +513 -0
- package/deps/rocksdb/rocksdb/db/db_memtable_test.cc +329 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operand_test.cc +241 -0
- package/deps/rocksdb/rocksdb/db/db_merge_operator_test.cc +671 -0
- package/deps/rocksdb/rocksdb/db/db_options_test.cc +1022 -0
- package/deps/rocksdb/rocksdb/db/db_properties_test.cc +1723 -0
- package/deps/rocksdb/rocksdb/db/db_range_del_test.cc +1694 -0
- package/deps/rocksdb/rocksdb/db/db_sst_test.cc +1261 -0
- package/deps/rocksdb/rocksdb/db/db_statistics_test.cc +164 -0
- package/deps/rocksdb/rocksdb/db/db_table_properties_test.cc +488 -0
- package/deps/rocksdb/rocksdb/db/db_tailing_iter_test.cc +567 -0
- package/deps/rocksdb/rocksdb/db/db_test.cc +6736 -0
- package/deps/rocksdb/rocksdb/db/db_test2.cc +5408 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.cc +1633 -0
- package/deps/rocksdb/rocksdb/db/db_test_util.h +1194 -0
- package/deps/rocksdb/rocksdb/db/db_universal_compaction_test.cc +2235 -0
- package/deps/rocksdb/rocksdb/db/db_wal_test.cc +1780 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_basic_test.cc +2520 -0
- package/deps/rocksdb/rocksdb/db/db_with_timestamp_compaction_test.cc +119 -0
- package/deps/rocksdb/rocksdb/db/db_write_test.cc +465 -0
- package/deps/rocksdb/rocksdb/db/dbformat.cc +222 -0
- package/deps/rocksdb/rocksdb/db/dbformat.h +786 -0
- package/deps/rocksdb/rocksdb/db/dbformat_test.cc +206 -0
- package/deps/rocksdb/rocksdb/db/deletefile_test.cc +580 -0
- package/deps/rocksdb/rocksdb/db/error_handler.cc +726 -0
- package/deps/rocksdb/rocksdb/db/error_handler.h +117 -0
- package/deps/rocksdb/rocksdb/db/error_handler_fs_test.cc +2598 -0
- package/deps/rocksdb/rocksdb/db/event_helpers.cc +233 -0
- package/deps/rocksdb/rocksdb/db/event_helpers.h +57 -0
- package/deps/rocksdb/rocksdb/db/experimental.cc +50 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_basic_test.cc +1559 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.cc +910 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_ingestion_job.h +195 -0
- package/deps/rocksdb/rocksdb/db/external_sst_file_test.cc +2936 -0
- package/deps/rocksdb/rocksdb/db/fault_injection_test.cc +556 -0
- package/deps/rocksdb/rocksdb/db/file_indexer.cc +216 -0
- package/deps/rocksdb/rocksdb/db/file_indexer.h +142 -0
- package/deps/rocksdb/rocksdb/db/file_indexer_test.cc +350 -0
- package/deps/rocksdb/rocksdb/db/filename_test.cc +179 -0
- package/deps/rocksdb/rocksdb/db/flush_job.cc +514 -0
- package/deps/rocksdb/rocksdb/db/flush_job.h +169 -0
- package/deps/rocksdb/rocksdb/db/flush_job_test.cc +647 -0
- package/deps/rocksdb/rocksdb/db/flush_scheduler.cc +86 -0
- package/deps/rocksdb/rocksdb/db/flush_scheduler.h +54 -0
- package/deps/rocksdb/rocksdb/db/forward_iterator.cc +1023 -0
- package/deps/rocksdb/rocksdb/db/forward_iterator.h +163 -0
- package/deps/rocksdb/rocksdb/db/forward_iterator_bench.cc +377 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.cc +282 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_job.h +75 -0
- package/deps/rocksdb/rocksdb/db/import_column_family_test.cc +632 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.cc +1461 -0
- package/deps/rocksdb/rocksdb/db/internal_stats.h +712 -0
- package/deps/rocksdb/rocksdb/db/job_context.h +226 -0
- package/deps/rocksdb/rocksdb/db/listener_test.cc +1118 -0
- package/deps/rocksdb/rocksdb/db/log_format.h +48 -0
- package/deps/rocksdb/rocksdb/db/log_reader.cc +654 -0
- package/deps/rocksdb/rocksdb/db/log_reader.h +192 -0
- package/deps/rocksdb/rocksdb/db/log_test.cc +901 -0
- package/deps/rocksdb/rocksdb/db/log_writer.cc +164 -0
- package/deps/rocksdb/rocksdb/db/log_writer.h +115 -0
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.cc +67 -0
- package/deps/rocksdb/rocksdb/db/logs_with_prep_tracker.h +63 -0
- package/deps/rocksdb/rocksdb/db/lookup_key.h +66 -0
- package/deps/rocksdb/rocksdb/db/malloc_stats.cc +54 -0
- package/deps/rocksdb/rocksdb/db/malloc_stats.h +24 -0
- package/deps/rocksdb/rocksdb/db/manual_compaction_test.cc +296 -0
- package/deps/rocksdb/rocksdb/db/memtable.cc +1169 -0
- package/deps/rocksdb/rocksdb/db/memtable.h +554 -0
- package/deps/rocksdb/rocksdb/db/memtable_list.cc +888 -0
- package/deps/rocksdb/rocksdb/db/memtable_list.h +438 -0
- package/deps/rocksdb/rocksdb/db/memtable_list_test.cc +935 -0
- package/deps/rocksdb/rocksdb/db/merge_context.h +134 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.cc +421 -0
- package/deps/rocksdb/rocksdb/db/merge_helper.h +197 -0
- package/deps/rocksdb/rocksdb/db/merge_helper_test.cc +290 -0
- package/deps/rocksdb/rocksdb/db/merge_operator.cc +86 -0
- package/deps/rocksdb/rocksdb/db/merge_test.cc +608 -0
- package/deps/rocksdb/rocksdb/db/obsolete_files_test.cc +338 -0
- package/deps/rocksdb/rocksdb/db/options_file_test.cc +119 -0
- package/deps/rocksdb/rocksdb/db/output_validator.cc +30 -0
- package/deps/rocksdb/rocksdb/db/output_validator.h +47 -0
- package/deps/rocksdb/rocksdb/db/perf_context_test.cc +993 -0
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.cc +113 -0
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler.h +76 -0
- package/deps/rocksdb/rocksdb/db/periodic_work_scheduler_test.cc +231 -0
- package/deps/rocksdb/rocksdb/db/pinned_iterators_manager.h +87 -0
- package/deps/rocksdb/rocksdb/db/plain_table_db_test.cc +1374 -0
- package/deps/rocksdb/rocksdb/db/pre_release_callback.h +38 -0
- package/deps/rocksdb/rocksdb/db/prefix_test.cc +910 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.cc +489 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator.h +446 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_bench.cc +260 -0
- package/deps/rocksdb/rocksdb/db/range_del_aggregator_test.cc +709 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.cc +439 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter.h +256 -0
- package/deps/rocksdb/rocksdb/db/range_tombstone_fragmenter_test.cc +552 -0
- package/deps/rocksdb/rocksdb/db/read_callback.h +53 -0
- package/deps/rocksdb/rocksdb/db/repair.cc +722 -0
- package/deps/rocksdb/rocksdb/db/repair_test.cc +390 -0
- package/deps/rocksdb/rocksdb/db/snapshot_checker.h +61 -0
- package/deps/rocksdb/rocksdb/db/snapshot_impl.cc +26 -0
- package/deps/rocksdb/rocksdb/db/snapshot_impl.h +167 -0
- package/deps/rocksdb/rocksdb/db/table_cache.cc +704 -0
- package/deps/rocksdb/rocksdb/db/table_cache.h +233 -0
- package/deps/rocksdb/rocksdb/db/table_properties_collector.cc +75 -0
- package/deps/rocksdb/rocksdb/db/table_properties_collector.h +107 -0
- package/deps/rocksdb/rocksdb/db/table_properties_collector_test.cc +517 -0
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.cc +318 -0
- package/deps/rocksdb/rocksdb/db/transaction_log_impl.h +128 -0
- package/deps/rocksdb/rocksdb/db/trim_history_scheduler.cc +54 -0
- package/deps/rocksdb/rocksdb/db/trim_history_scheduler.h +44 -0
- package/deps/rocksdb/rocksdb/db/version_builder.cc +1078 -0
- package/deps/rocksdb/rocksdb/db/version_builder.h +69 -0
- package/deps/rocksdb/rocksdb/db/version_builder_test.cc +1551 -0
- package/deps/rocksdb/rocksdb/db/version_edit.cc +955 -0
- package/deps/rocksdb/rocksdb/db/version_edit.h +609 -0
- package/deps/rocksdb/rocksdb/db/version_edit_handler.cc +699 -0
- package/deps/rocksdb/rocksdb/db/version_edit_handler.h +252 -0
- package/deps/rocksdb/rocksdb/db/version_edit_test.cc +597 -0
- package/deps/rocksdb/rocksdb/db/version_set.cc +6333 -0
- package/deps/rocksdb/rocksdb/db/version_set.h +1485 -0
- package/deps/rocksdb/rocksdb/db/version_set_test.cc +3035 -0
- package/deps/rocksdb/rocksdb/db/wal_edit.cc +204 -0
- package/deps/rocksdb/rocksdb/db/wal_edit.h +166 -0
- package/deps/rocksdb/rocksdb/db/wal_edit_test.cc +214 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.cc +517 -0
- package/deps/rocksdb/rocksdb/db/wal_manager.h +119 -0
- package/deps/rocksdb/rocksdb/db/wal_manager_test.cc +340 -0
- package/deps/rocksdb/rocksdb/db/write_batch.cc +2174 -0
- package/deps/rocksdb/rocksdb/db/write_batch_base.cc +94 -0
- package/deps/rocksdb/rocksdb/db/write_batch_internal.h +250 -0
- package/deps/rocksdb/rocksdb/db/write_batch_test.cc +907 -0
- package/deps/rocksdb/rocksdb/db/write_callback.h +27 -0
- package/deps/rocksdb/rocksdb/db/write_callback_test.cc +457 -0
- package/deps/rocksdb/rocksdb/db/write_controller.cc +128 -0
- package/deps/rocksdb/rocksdb/db/write_controller.h +144 -0
- package/deps/rocksdb/rocksdb/db/write_controller_test.cc +135 -0
- package/deps/rocksdb/rocksdb/db/write_thread.cc +796 -0
- package/deps/rocksdb/rocksdb/db/write_thread.h +433 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/CMakeLists.txt +14 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/batched_ops_stress.cc +341 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/cf_consistency_stress.cc +520 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress.cc +23 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.cc +337 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_common.h +554 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_compaction_filter.h +79 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.cc +173 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_driver.h +17 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_env_wrapper.h +38 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_gflags.cc +763 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_listener.h +222 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.cc +27 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_shared_state.h +428 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_stat.h +218 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_table_properties_collector.h +64 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.cc +2430 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_test_base.h +237 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/db_stress_tool.cc +343 -0
- package/deps/rocksdb/rocksdb/db_stress_tool/no_batched_ops_stress.cc +800 -0
- package/deps/rocksdb/rocksdb/env/composite_env_wrapper.h +920 -0
- package/deps/rocksdb/rocksdb/env/env.cc +733 -0
- package/deps/rocksdb/rocksdb/env/env_basic_test.cc +352 -0
- package/deps/rocksdb/rocksdb/env/env_chroot.cc +346 -0
- package/deps/rocksdb/rocksdb/env/env_chroot.h +22 -0
- package/deps/rocksdb/rocksdb/env/env_encryption.cc +1148 -0
- package/deps/rocksdb/rocksdb/env/env_encryption_ctr.h +137 -0
- package/deps/rocksdb/rocksdb/env/env_hdfs.cc +648 -0
- package/deps/rocksdb/rocksdb/env/env_posix.cc +514 -0
- package/deps/rocksdb/rocksdb/env/env_test.cc +2230 -0
- package/deps/rocksdb/rocksdb/env/file_system.cc +132 -0
- package/deps/rocksdb/rocksdb/env/file_system_tracer.cc +448 -0
- package/deps/rocksdb/rocksdb/env/file_system_tracer.h +415 -0
- package/deps/rocksdb/rocksdb/env/fs_posix.cc +1086 -0
- package/deps/rocksdb/rocksdb/env/io_posix.cc +1499 -0
- package/deps/rocksdb/rocksdb/env/io_posix.h +402 -0
- package/deps/rocksdb/rocksdb/env/io_posix_test.cc +140 -0
- package/deps/rocksdb/rocksdb/env/mock_env.cc +1066 -0
- package/deps/rocksdb/rocksdb/env/mock_env.h +41 -0
- package/deps/rocksdb/rocksdb/env/mock_env_test.cc +85 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.cc +402 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler.h +150 -0
- package/deps/rocksdb/rocksdb/file/delete_scheduler_test.cc +717 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.cc +156 -0
- package/deps/rocksdb/rocksdb/file/file_prefetch_buffer.h +99 -0
- package/deps/rocksdb/rocksdb/file/file_util.cc +268 -0
- package/deps/rocksdb/rocksdb/file/file_util.h +96 -0
- package/deps/rocksdb/rocksdb/file/filename.cc +473 -0
- package/deps/rocksdb/rocksdb/file/filename.h +182 -0
- package/deps/rocksdb/rocksdb/file/prefetch_test.cc +188 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.cc +315 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader.h +142 -0
- package/deps/rocksdb/rocksdb/file/random_access_file_reader_test.cc +482 -0
- package/deps/rocksdb/rocksdb/file/read_write_util.cc +67 -0
- package/deps/rocksdb/rocksdb/file/read_write_util.h +34 -0
- package/deps/rocksdb/rocksdb/file/readahead_raf.cc +169 -0
- package/deps/rocksdb/rocksdb/file/readahead_raf.h +29 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.cc +237 -0
- package/deps/rocksdb/rocksdb/file/sequence_file_reader.h +63 -0
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.cc +552 -0
- package/deps/rocksdb/rocksdb/file/sst_file_manager_impl.h +203 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.cc +523 -0
- package/deps/rocksdb/rocksdb/file/writable_file_writer.h +251 -0
- package/deps/rocksdb/rocksdb/hdfs/env_hdfs.h +386 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/advanced_options.h +839 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/c.h +2218 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cache.h +294 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/cleanable.h +71 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_filter.h +214 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compaction_job_stats.h +98 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/comparator.h +137 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/compression_type.h +40 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/concurrent_task_limiter.h +46 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/configurable.h +359 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/convenience.h +499 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/customizable.h +138 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db.h +1697 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db_bench_tool.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db_dump_tool.h +45 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/db_stress_tool.h +11 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env.h +1671 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/env_encryption.h +405 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/experimental.h +29 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_checksum.h +129 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/file_system.h +1472 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/filter_policy.h +238 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/flush_block_policy.h +61 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/io_status.h +269 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iostats_context.h +56 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/iterator.h +128 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/ldb_tool.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/listener.h +556 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memory_allocator.h +77 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/memtablerep.h +385 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/merge_operator.h +257 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/metadata.h +155 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/options.h +1702 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_context.h +237 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/perf_level.h +35 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/persistent_cache.h +73 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rate_limiter.h +139 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/rocksdb_namespace.h +10 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice.h +269 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/slice_transform.h +103 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/snapshot.h +48 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_dump_tool.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_manager.h +136 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_reader.h +47 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_file_writer.h +145 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/sst_partitioner.h +135 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/statistics.h +592 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/stats_history.h +69 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/status.h +608 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table.h +711 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/table_properties.h +280 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/thread_status.h +188 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/threadpool.h +58 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/trace_reader_writer.h +48 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/transaction_log.h +121 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/types.h +74 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/universal_compaction.h +86 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/backupable_db.h +535 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h +61 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/convenience.h +10 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/db_ttl.h +72 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/debug.h +49 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_librados.h +175 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/env_mirror.h +180 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/info_log_finder.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd.h +288 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/ldb_cmd_execute_result.h +71 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/leveldb_options.h +145 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_custom_library.h +43 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/lua/rocks_lua_util.h +55 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/memory_util.h +50 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/object_registry.h +205 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/optimistic_transaction_db.h +100 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/option_change_migration.h +19 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_type.h +876 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/options_util.h +128 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/sim_cache.h +94 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/stackable_db.h +504 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/table_properties_collectors.h +95 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction.h +626 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db.h +432 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/transaction_db_mutex.h +92 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/utility_db.h +34 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/utilities/write_batch_with_index.h +279 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/version.h +16 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/wal_filter.h +102 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch.h +377 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_batch_base.h +127 -0
- package/deps/rocksdb/rocksdb/include/rocksdb/write_buffer_manager.h +106 -0
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.cc +300 -0
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger.h +165 -0
- package/deps/rocksdb/rocksdb/logging/auto_roll_logger_test.cc +684 -0
- package/deps/rocksdb/rocksdb/logging/env_logger.h +165 -0
- package/deps/rocksdb/rocksdb/logging/env_logger_test.cc +162 -0
- package/deps/rocksdb/rocksdb/logging/event_logger.cc +70 -0
- package/deps/rocksdb/rocksdb/logging/event_logger.h +203 -0
- package/deps/rocksdb/rocksdb/logging/event_logger_test.cc +43 -0
- package/deps/rocksdb/rocksdb/logging/log_buffer.cc +92 -0
- package/deps/rocksdb/rocksdb/logging/log_buffer.h +56 -0
- package/deps/rocksdb/rocksdb/logging/logging.h +68 -0
- package/deps/rocksdb/rocksdb/logging/posix_logger.h +185 -0
- package/deps/rocksdb/rocksdb/memory/allocator.h +57 -0
- package/deps/rocksdb/rocksdb/memory/arena.cc +233 -0
- package/deps/rocksdb/rocksdb/memory/arena.h +141 -0
- package/deps/rocksdb/rocksdb/memory/arena_test.cc +204 -0
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.cc +47 -0
- package/deps/rocksdb/rocksdb/memory/concurrent_arena.h +218 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.cc +206 -0
- package/deps/rocksdb/rocksdb/memory/jemalloc_nodump_allocator.h +78 -0
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.cc +33 -0
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator.h +27 -0
- package/deps/rocksdb/rocksdb/memory/memkind_kmem_allocator_test.cc +102 -0
- package/deps/rocksdb/rocksdb/memory/memory_allocator.h +38 -0
- package/deps/rocksdb/rocksdb/memory/memory_usage.h +25 -0
- package/deps/rocksdb/rocksdb/memtable/alloc_tracker.cc +62 -0
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.cc +844 -0
- package/deps/rocksdb/rocksdb/memtable/hash_linklist_rep.h +49 -0
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.cc +349 -0
- package/deps/rocksdb/rocksdb/memtable/hash_skiplist_rep.h +44 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist.h +997 -0
- package/deps/rocksdb/rocksdb/memtable/inlineskiplist_test.cc +663 -0
- package/deps/rocksdb/rocksdb/memtable/memtablerep_bench.cc +677 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist.h +496 -0
- package/deps/rocksdb/rocksdb/memtable/skiplist_test.cc +388 -0
- package/deps/rocksdb/rocksdb/memtable/skiplistrep.cc +280 -0
- package/deps/rocksdb/rocksdb/memtable/stl_wrappers.h +33 -0
- package/deps/rocksdb/rocksdb/memtable/vectorrep.cc +301 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager.cc +148 -0
- package/deps/rocksdb/rocksdb/memtable/write_buffer_manager_test.cc +203 -0
- package/deps/rocksdb/rocksdb/monitoring/file_read_sample.h +23 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.cc +287 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram.h +149 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram_test.cc +231 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.cc +200 -0
- package/deps/rocksdb/rocksdb/monitoring/histogram_windowing.h +84 -0
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.cc +49 -0
- package/deps/rocksdb/rocksdb/monitoring/in_memory_stats_history.h +74 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.cc +71 -0
- package/deps/rocksdb/rocksdb/monitoring/instrumented_mutex.h +98 -0
- package/deps/rocksdb/rocksdb/monitoring/iostats_context.cc +62 -0
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_imp.h +60 -0
- package/deps/rocksdb/rocksdb/monitoring/iostats_context_test.cc +29 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context.cc +566 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_context_imp.h +97 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_level.cc +28 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_level_imp.h +18 -0
- package/deps/rocksdb/rocksdb/monitoring/perf_step_timer.h +79 -0
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.cc +169 -0
- package/deps/rocksdb/rocksdb/monitoring/persistent_stats_history.h +83 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.cc +431 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics.h +138 -0
- package/deps/rocksdb/rocksdb/monitoring/statistics_test.cc +47 -0
- package/deps/rocksdb/rocksdb/monitoring/stats_history_test.cc +652 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_impl.cc +163 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.cc +314 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater.h +233 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_updater_debug.cc +43 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.cc +206 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util.h +134 -0
- package/deps/rocksdb/rocksdb/monitoring/thread_status_util_debug.cc +32 -0
- package/deps/rocksdb/rocksdb/options/cf_options.cc +1026 -0
- package/deps/rocksdb/rocksdb/options/cf_options.h +308 -0
- package/deps/rocksdb/rocksdb/options/configurable.cc +681 -0
- package/deps/rocksdb/rocksdb/options/configurable_helper.h +251 -0
- package/deps/rocksdb/rocksdb/options/configurable_test.cc +757 -0
- package/deps/rocksdb/rocksdb/options/configurable_test.h +127 -0
- package/deps/rocksdb/rocksdb/options/customizable.cc +77 -0
- package/deps/rocksdb/rocksdb/options/customizable_helper.h +216 -0
- package/deps/rocksdb/rocksdb/options/customizable_test.cc +625 -0
- package/deps/rocksdb/rocksdb/options/db_options.cc +835 -0
- package/deps/rocksdb/rocksdb/options/db_options.h +126 -0
- package/deps/rocksdb/rocksdb/options/options.cc +664 -0
- package/deps/rocksdb/rocksdb/options/options_helper.cc +1391 -0
- package/deps/rocksdb/rocksdb/options/options_helper.h +118 -0
- package/deps/rocksdb/rocksdb/options/options_parser.cc +721 -0
- package/deps/rocksdb/rocksdb/options/options_parser.h +151 -0
- package/deps/rocksdb/rocksdb/options/options_settable_test.cc +583 -0
- package/deps/rocksdb/rocksdb/options/options_test.cc +3794 -0
- package/deps/rocksdb/rocksdb/port/jemalloc_helper.h +106 -0
- package/deps/rocksdb/rocksdb/port/lang.h +16 -0
- package/deps/rocksdb/rocksdb/port/likely.h +18 -0
- package/deps/rocksdb/rocksdb/port/malloc.h +17 -0
- package/deps/rocksdb/rocksdb/port/port.h +21 -0
- package/deps/rocksdb/rocksdb/port/port_dirent.h +44 -0
- package/deps/rocksdb/rocksdb/port/port_example.h +101 -0
- package/deps/rocksdb/rocksdb/port/port_posix.cc +266 -0
- package/deps/rocksdb/rocksdb/port/port_posix.h +223 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.cc +179 -0
- package/deps/rocksdb/rocksdb/port/stack_trace.h +28 -0
- package/deps/rocksdb/rocksdb/port/sys_time.h +47 -0
- package/deps/rocksdb/rocksdb/port/util_logger.h +20 -0
- package/deps/rocksdb/rocksdb/port/win/env_default.cc +45 -0
- package/deps/rocksdb/rocksdb/port/win/env_win.cc +1449 -0
- package/deps/rocksdb/rocksdb/port/win/env_win.h +294 -0
- package/deps/rocksdb/rocksdb/port/win/io_win.cc +1084 -0
- package/deps/rocksdb/rocksdb/port/win/io_win.h +494 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.cc +283 -0
- package/deps/rocksdb/rocksdb/port/win/port_win.h +411 -0
- package/deps/rocksdb/rocksdb/port/win/win_jemalloc.cc +79 -0
- package/deps/rocksdb/rocksdb/port/win/win_logger.cc +194 -0
- package/deps/rocksdb/rocksdb/port/win/win_logger.h +67 -0
- package/deps/rocksdb/rocksdb/port/win/win_thread.cc +183 -0
- package/deps/rocksdb/rocksdb/port/win/win_thread.h +122 -0
- package/deps/rocksdb/rocksdb/port/win/xpress_win.cc +221 -0
- package/deps/rocksdb/rocksdb/port/win/xpress_win.h +26 -0
- package/deps/rocksdb/rocksdb/port/xpress.h +17 -0
- package/deps/rocksdb/rocksdb/src.mk +631 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.cc +126 -0
- package/deps/rocksdb/rocksdb/table/adaptive/adaptive_table_factory.h +57 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.cc +73 -0
- package/deps/rocksdb/rocksdb/table/block_based/binary_search_index_reader.h +48 -0
- package/deps/rocksdb/rocksdb/table/block_based/block.cc +1049 -0
- package/deps/rocksdb/rocksdb/table/block_based/block.h +720 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.cc +348 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block.h +119 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_filter_block_test.cc +434 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.cc +1835 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_builder.h +193 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.cc +839 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_factory.h +95 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.cc +383 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_iterator.h +251 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.cc +3563 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader.h +681 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_impl.h +190 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_based_table_reader_test.cc +347 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.cc +201 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_builder.h +78 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.cc +66 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefetcher.h +32 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefix_index.cc +232 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_prefix_index.h +66 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_test.cc +623 -0
- package/deps/rocksdb/rocksdb/table/block_based/block_type.h +30 -0
- package/deps/rocksdb/rocksdb/table/block_based/cachable_entry.h +220 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.cc +59 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_footer.h +25 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.cc +93 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index.h +136 -0
- package/deps/rocksdb/rocksdb/table/block_based/data_block_hash_index_test.cc +717 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_block.h +180 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.cc +102 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_block_reader_common.h +55 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy.cc +1407 -0
- package/deps/rocksdb/rocksdb/table/block_based/filter_policy_internal.h +168 -0
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.cc +88 -0
- package/deps/rocksdb/rocksdb/table/block_based/flush_block_policy.h +41 -0
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.cc +344 -0
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block.h +139 -0
- package/deps/rocksdb/rocksdb/table/block_based/full_filter_block_test.cc +333 -0
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.cc +147 -0
- package/deps/rocksdb/rocksdb/table/block_based/hash_index_reader.h +49 -0
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.cc +248 -0
- package/deps/rocksdb/rocksdb/table/block_based/index_builder.h +444 -0
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.cc +54 -0
- package/deps/rocksdb/rocksdb/table/block_based/index_reader_common.h +85 -0
- package/deps/rocksdb/rocksdb/table/block_based/mock_block_based_table.h +56 -0
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.cc +22 -0
- package/deps/rocksdb/rocksdb/table/block_based/parsed_full_filter_block.h +40 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.cc +521 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block.h +144 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_filter_block_test.cc +424 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.cc +163 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_iterator.h +142 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.cc +186 -0
- package/deps/rocksdb/rocksdb/table/block_based/partitioned_index_reader.h +51 -0
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.cc +64 -0
- package/deps/rocksdb/rocksdb/table/block_based/reader_common.h +38 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.cc +120 -0
- package/deps/rocksdb/rocksdb/table/block_based/uncompression_dict_reader.h +59 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher.cc +324 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher.h +129 -0
- package/deps/rocksdb/rocksdb/table/block_fetcher_test.cc +534 -0
- package/deps/rocksdb/rocksdb/table/cleanable_test.cc +277 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.cc +543 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder.h +136 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_builder_test.cc +663 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.cc +107 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_factory.h +81 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.cc +404 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader.h +101 -0
- package/deps/rocksdb/rocksdb/table/cuckoo/cuckoo_table_reader_test.cc +585 -0
- package/deps/rocksdb/rocksdb/table/format.cc +422 -0
- package/deps/rocksdb/rocksdb/table/format.h +348 -0
- package/deps/rocksdb/rocksdb/table/get_context.cc +408 -0
- package/deps/rocksdb/rocksdb/table/get_context.h +212 -0
- package/deps/rocksdb/rocksdb/table/internal_iterator.h +205 -0
- package/deps/rocksdb/rocksdb/table/iter_heap.h +42 -0
- package/deps/rocksdb/rocksdb/table/iterator.cc +210 -0
- package/deps/rocksdb/rocksdb/table/iterator_wrapper.h +180 -0
- package/deps/rocksdb/rocksdb/table/merger_test.cc +180 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.cc +481 -0
- package/deps/rocksdb/rocksdb/table/merging_iterator.h +64 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.cc +541 -0
- package/deps/rocksdb/rocksdb/table/meta_blocks.h +154 -0
- package/deps/rocksdb/rocksdb/table/mock_table.cc +328 -0
- package/deps/rocksdb/rocksdb/table/mock_table.h +89 -0
- package/deps/rocksdb/rocksdb/table/multiget_context.h +282 -0
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.cc +116 -0
- package/deps/rocksdb/rocksdb/table/persistent_cache_helper.h +44 -0
- package/deps/rocksdb/rocksdb/table/persistent_cache_options.h +34 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.cc +78 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_bloom.h +135 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.cc +332 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_builder.h +153 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.cc +263 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_factory.h +182 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.cc +211 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_index.h +249 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.cc +506 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_key_coding.h +201 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.cc +781 -0
- package/deps/rocksdb/rocksdb/table/plain/plain_table_reader.h +247 -0
- package/deps/rocksdb/rocksdb/table/scoped_arena_iterator.h +61 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.cc +502 -0
- package/deps/rocksdb/rocksdb/table/sst_file_dumper.h +96 -0
- package/deps/rocksdb/rocksdb/table/sst_file_reader.cc +98 -0
- package/deps/rocksdb/rocksdb/table/sst_file_reader_test.cc +228 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer.cc +340 -0
- package/deps/rocksdb/rocksdb/table/sst_file_writer_collectors.h +94 -0
- package/deps/rocksdb/rocksdb/table/table_builder.h +203 -0
- package/deps/rocksdb/rocksdb/table/table_factory.cc +38 -0
- package/deps/rocksdb/rocksdb/table/table_properties.cc +300 -0
- package/deps/rocksdb/rocksdb/table/table_properties_internal.h +30 -0
- package/deps/rocksdb/rocksdb/table/table_reader.h +147 -0
- package/deps/rocksdb/rocksdb/table/table_reader_bench.cc +347 -0
- package/deps/rocksdb/rocksdb/table/table_reader_caller.h +39 -0
- package/deps/rocksdb/rocksdb/table/table_test.cc +4769 -0
- package/deps/rocksdb/rocksdb/table/two_level_iterator.cc +215 -0
- package/deps/rocksdb/rocksdb/table/two_level_iterator.h +43 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.cc +38 -0
- package/deps/rocksdb/rocksdb/test_util/mock_time_env.h +74 -0
- package/deps/rocksdb/rocksdb/test_util/sync_point.cc +93 -0
- package/deps/rocksdb/rocksdb/test_util/sync_point.h +161 -0
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.cc +129 -0
- package/deps/rocksdb/rocksdb/test_util/sync_point_impl.h +74 -0
- package/deps/rocksdb/rocksdb/test_util/testharness.cc +56 -0
- package/deps/rocksdb/rocksdb/test_util/testharness.h +53 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.cc +566 -0
- package/deps/rocksdb/rocksdb/test_util/testutil.h +887 -0
- package/deps/rocksdb/rocksdb/test_util/testutil_test.cc +43 -0
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.cc +388 -0
- package/deps/rocksdb/rocksdb/test_util/transaction_test_util.h +132 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/CPortability.h +27 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ConstexprMath.h +45 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Indestructible.h +166 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Optional.h +570 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Portability.h +92 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/ScopeGuard.h +54 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Traits.h +152 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Unit.h +59 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/Utility.h +141 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/chrono/Hardware.h +33 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/container/Array.h +74 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex-inl.h +117 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.cpp +263 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/detail/Futex.h +96 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/functional/Invoke.h +40 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/hash/Hash.h +29 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Align.h +144 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Bits.h +30 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/lang/Launder.h +51 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/Asm.h +28 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysSyscall.h +10 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/portability/SysTypes.h +26 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification-inl.h +138 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.cpp +23 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicNotification.h +57 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil-inl.h +260 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/AtomicUtil.h +52 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/Baton.h +328 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex-inl.h +1703 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.cpp +16 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutex.h +304 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/DistributedMutexSpecializations.h +39 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.cpp +26 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/ParkingLot.h +318 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.cpp +12 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/WaitOptions.h +57 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/InlineFunctionRef.h +219 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable-inl.h +207 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/ProxyLockable.h +164 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Sleeper.h +57 -0
- package/deps/rocksdb/rocksdb/third-party/folly/folly/synchronization/detail/Spin.h +77 -0
- package/deps/rocksdb/rocksdb/third-party/gcc/ppc-asm.h +390 -0
- package/deps/rocksdb/rocksdb/thirdparty.inc +268 -0
- package/deps/rocksdb/rocksdb/tools/CMakeLists.txt +30 -0
- package/deps/rocksdb/rocksdb/tools/blob_dump.cc +110 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/__init__.py +2 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.py +2000 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim.sh +156 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_pysim_test.py +734 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.cc +2307 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer.h +395 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_plot.py +721 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_test.cc +719 -0
- package/deps/rocksdb/rocksdb/tools/block_cache_analyzer/block_cache_trace_analyzer_tool.cc +25 -0
- package/deps/rocksdb/rocksdb/tools/db_bench.cc +21 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool.cc +7416 -0
- package/deps/rocksdb/rocksdb/tools/db_bench_tool_test.cc +328 -0
- package/deps/rocksdb/rocksdb/tools/db_repl_stress.cc +130 -0
- package/deps/rocksdb/rocksdb/tools/db_sanity_test.cc +297 -0
- package/deps/rocksdb/rocksdb/tools/dump/db_dump_tool.cc +259 -0
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_dump.cc +63 -0
- package/deps/rocksdb/rocksdb/tools/dump/rocksdb_undump.cc +62 -0
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser.cc +25 -0
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_test.cc +187 -0
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.cc +120 -0
- package/deps/rocksdb/rocksdb/tools/io_tracer_parser_tool.h +40 -0
- package/deps/rocksdb/rocksdb/tools/ldb.cc +21 -0
- package/deps/rocksdb/rocksdb/tools/ldb_cmd.cc +3609 -0
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_impl.h +665 -0
- package/deps/rocksdb/rocksdb/tools/ldb_cmd_test.cc +746 -0
- package/deps/rocksdb/rocksdb/tools/ldb_tool.cc +159 -0
- package/deps/rocksdb/rocksdb/tools/reduce_levels_test.cc +221 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump.cc +20 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_test.cc +427 -0
- package/deps/rocksdb/rocksdb/tools/sst_dump_tool.cc +541 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer.cc +25 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_test.cc +752 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.cc +2001 -0
- package/deps/rocksdb/rocksdb/tools/trace_analyzer_tool.h +292 -0
- package/deps/rocksdb/rocksdb/tools/write_stress.cc +305 -0
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.cc +496 -0
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer.h +294 -0
- package/deps/rocksdb/rocksdb/trace_replay/block_cache_tracer_test.cc +379 -0
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.cc +229 -0
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer.h +174 -0
- package/deps/rocksdb/rocksdb/trace_replay/io_tracer_test.cc +215 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.cc +491 -0
- package/deps/rocksdb/rocksdb/trace_replay/trace_replay.h +195 -0
- package/deps/rocksdb/rocksdb/util/aligned_buffer.h +255 -0
- package/deps/rocksdb/rocksdb/util/autovector.h +367 -0
- package/deps/rocksdb/rocksdb/util/autovector_test.cc +330 -0
- package/deps/rocksdb/rocksdb/util/bloom_impl.h +485 -0
- package/deps/rocksdb/rocksdb/util/bloom_test.cc +1191 -0
- package/deps/rocksdb/rocksdb/util/build_version.cc.in +5 -0
- package/deps/rocksdb/rocksdb/util/build_version.h +15 -0
- package/deps/rocksdb/rocksdb/util/cast_util.h +20 -0
- package/deps/rocksdb/rocksdb/util/channel.h +67 -0
- package/deps/rocksdb/rocksdb/util/coding.cc +89 -0
- package/deps/rocksdb/rocksdb/util/coding.h +419 -0
- package/deps/rocksdb/rocksdb/util/coding_lean.h +101 -0
- package/deps/rocksdb/rocksdb/util/coding_test.cc +217 -0
- package/deps/rocksdb/rocksdb/util/compaction_job_stats_impl.cc +92 -0
- package/deps/rocksdb/rocksdb/util/comparator.cc +219 -0
- package/deps/rocksdb/rocksdb/util/compression.h +1529 -0
- package/deps/rocksdb/rocksdb/util/compression_context_cache.cc +108 -0
- package/deps/rocksdb/rocksdb/util/compression_context_cache.h +47 -0
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.cc +67 -0
- package/deps/rocksdb/rocksdb/util/concurrent_task_limiter_impl.h +67 -0
- package/deps/rocksdb/rocksdb/util/core_local.h +83 -0
- package/deps/rocksdb/rocksdb/util/crc32c.cc +1283 -0
- package/deps/rocksdb/rocksdb/util/crc32c.h +51 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.cc +169 -0
- package/deps/rocksdb/rocksdb/util/crc32c_arm64.h +50 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.c +94 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc.h +19 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc_asm.S +756 -0
- package/deps/rocksdb/rocksdb/util/crc32c_ppc_constants.h +900 -0
- package/deps/rocksdb/rocksdb/util/crc32c_test.cc +180 -0
- package/deps/rocksdb/rocksdb/util/defer.h +52 -0
- package/deps/rocksdb/rocksdb/util/defer_test.cc +39 -0
- package/deps/rocksdb/rocksdb/util/duplicate_detector.h +68 -0
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.cc +70 -0
- package/deps/rocksdb/rocksdb/util/dynamic_bloom.h +214 -0
- package/deps/rocksdb/rocksdb/util/dynamic_bloom_test.cc +323 -0
- package/deps/rocksdb/rocksdb/util/fastrange.h +112 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.cc +136 -0
- package/deps/rocksdb/rocksdb/util/file_checksum_helper.h +98 -0
- package/deps/rocksdb/rocksdb/util/file_reader_writer_test.cc +449 -0
- package/deps/rocksdb/rocksdb/util/filelock_test.cc +152 -0
- package/deps/rocksdb/rocksdb/util/filter_bench.cc +781 -0
- package/deps/rocksdb/rocksdb/util/gflags_compat.h +20 -0
- package/deps/rocksdb/rocksdb/util/hash.cc +83 -0
- package/deps/rocksdb/rocksdb/util/hash.h +107 -0
- package/deps/rocksdb/rocksdb/util/hash_map.h +67 -0
- package/deps/rocksdb/rocksdb/util/hash_test.cc +593 -0
- package/deps/rocksdb/rocksdb/util/heap.h +166 -0
- package/deps/rocksdb/rocksdb/util/heap_test.cc +139 -0
- package/deps/rocksdb/rocksdb/util/kv_map.h +33 -0
- package/deps/rocksdb/rocksdb/util/log_write_bench.cc +86 -0
- package/deps/rocksdb/rocksdb/util/math.h +186 -0
- package/deps/rocksdb/rocksdb/util/math128.h +298 -0
- package/deps/rocksdb/rocksdb/util/murmurhash.cc +191 -0
- package/deps/rocksdb/rocksdb/util/murmurhash.h +42 -0
- package/deps/rocksdb/rocksdb/util/mutexlock.h +186 -0
- package/deps/rocksdb/rocksdb/util/ppc-opcode.h +27 -0
- package/deps/rocksdb/rocksdb/util/random.cc +56 -0
- package/deps/rocksdb/rocksdb/util/random.h +186 -0
- package/deps/rocksdb/rocksdb/util/random_test.cc +105 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.cc +340 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter.h +113 -0
- package/deps/rocksdb/rocksdb/util/rate_limiter_test.cc +251 -0
- package/deps/rocksdb/rocksdb/util/repeatable_thread.h +151 -0
- package/deps/rocksdb/rocksdb/util/repeatable_thread_test.cc +107 -0
- package/deps/rocksdb/rocksdb/util/ribbon_alg.h +1201 -0
- package/deps/rocksdb/rocksdb/util/ribbon_impl.h +1062 -0
- package/deps/rocksdb/rocksdb/util/ribbon_test.cc +931 -0
- package/deps/rocksdb/rocksdb/util/set_comparator.h +22 -0
- package/deps/rocksdb/rocksdb/util/slice.cc +243 -0
- package/deps/rocksdb/rocksdb/util/slice_test.cc +163 -0
- package/deps/rocksdb/rocksdb/util/slice_transform_test.cc +153 -0
- package/deps/rocksdb/rocksdb/util/status.cc +149 -0
- package/deps/rocksdb/rocksdb/util/stderr_logger.h +31 -0
- package/deps/rocksdb/rocksdb/util/stop_watch.h +118 -0
- package/deps/rocksdb/rocksdb/util/string_util.cc +422 -0
- package/deps/rocksdb/rocksdb/util/string_util.h +144 -0
- package/deps/rocksdb/rocksdb/util/thread_list_test.cc +354 -0
- package/deps/rocksdb/rocksdb/util/thread_local.cc +554 -0
- package/deps/rocksdb/rocksdb/util/thread_local.h +101 -0
- package/deps/rocksdb/rocksdb/util/thread_local_test.cc +583 -0
- package/deps/rocksdb/rocksdb/util/thread_operation.h +121 -0
- package/deps/rocksdb/rocksdb/util/threadpool_imp.cc +506 -0
- package/deps/rocksdb/rocksdb/util/threadpool_imp.h +112 -0
- package/deps/rocksdb/rocksdb/util/timer.h +331 -0
- package/deps/rocksdb/rocksdb/util/timer_queue.h +230 -0
- package/deps/rocksdb/rocksdb/util/timer_queue_test.cc +72 -0
- package/deps/rocksdb/rocksdb/util/timer_test.cc +399 -0
- package/deps/rocksdb/rocksdb/util/user_comparator_wrapper.h +80 -0
- package/deps/rocksdb/rocksdb/util/vector_iterator.h +101 -0
- package/deps/rocksdb/rocksdb/util/work_queue.h +148 -0
- package/deps/rocksdb/rocksdb/util/work_queue_test.cc +268 -0
- package/deps/rocksdb/rocksdb/util/xxh3p.h +1392 -0
- package/deps/rocksdb/rocksdb/util/xxhash.cc +1158 -0
- package/deps/rocksdb/rocksdb/util/xxhash.h +598 -0
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db.cc +2354 -0
- package/deps/rocksdb/rocksdb/utilities/backupable/backupable_db_test.cc +2955 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.cc +488 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_compaction_filter.h +199 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.cc +112 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db.h +266 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_gc_stats.h +52 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.cc +2167 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl.h +500 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_impl_filesnapshot.cc +113 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_iterator.h +147 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_listener.h +66 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_db_test.cc +2386 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.cc +281 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_dump_tool.h +58 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.cc +314 -0
- package/deps/rocksdb/rocksdb/utilities/blob_db/blob_file.h +244 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.cc +47 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_compaction_filter.h +42 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_format_test.cc +375 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_functional_test.cc +327 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_row_merge_test.cc +114 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/cassandra_serialize_test.cc +187 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.cc +390 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/format.h +184 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.cc +67 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/merge_operator.h +44 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/serialize.h +75 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.cc +72 -0
- package/deps/rocksdb/rocksdb/utilities/cassandra/test_utils.h +43 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.cc +588 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_impl.h +82 -0
- package/deps/rocksdb/rocksdb/utilities/checkpoint/checkpoint_test.cc +821 -0
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/layered_compaction_filter_base.h +37 -0
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc +29 -0
- package/deps/rocksdb/rocksdb/utilities/compaction_filters/remove_emptyvalue_compactionfilter.h +27 -0
- package/deps/rocksdb/rocksdb/utilities/convenience/info_log_finder.cc +25 -0
- package/deps/rocksdb/rocksdb/utilities/debug.cc +82 -0
- package/deps/rocksdb/rocksdb/utilities/env_librados.cc +1497 -0
- package/deps/rocksdb/rocksdb/utilities/env_librados_test.cc +1146 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror.cc +262 -0
- package/deps/rocksdb/rocksdb/utilities/env_mirror_test.cc +223 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed.cc +145 -0
- package/deps/rocksdb/rocksdb/utilities/env_timed_test.cc +44 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.cc +490 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_env.h +242 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.cc +581 -0
- package/deps/rocksdb/rocksdb/utilities/fault_injection_fs.h +437 -0
- package/deps/rocksdb/rocksdb/utilities/leveldb_options/leveldb_options.cc +56 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_test.cc +275 -0
- package/deps/rocksdb/rocksdb/utilities/memory/memory_util.cc +52 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.cc +59 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/bytesxor.h +39 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/max.cc +77 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/put.cc +83 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.cc +97 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/sortlist.h +38 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.cc +59 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend.h +31 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.cc +117 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend2.h +49 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/string_append/stringappend_test.cc +598 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators/uint64add.cc +69 -0
- package/deps/rocksdb/rocksdb/utilities/merge_operators.h +55 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry.cc +87 -0
- package/deps/rocksdb/rocksdb/utilities/object_registry_test.cc +174 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration.cc +168 -0
- package/deps/rocksdb/rocksdb/utilities/option_change_migration/option_change_migration_test.cc +431 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util.cc +159 -0
- package/deps/rocksdb/rocksdb/utilities/options/options_util_test.cc +655 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.cc +425 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier.h +156 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.cc +609 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file.h +296 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_file_buffer.h +127 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.cc +86 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/block_cache_tier_metadata.h +125 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table.h +238 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_bench.cc +308 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_evictable.h +168 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/hash_table_test.cc +160 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/lrulist.h +174 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_bench.cc +360 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.cc +456 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_test.h +286 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.cc +167 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_tier.h +339 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/persistent_cache_util.h +67 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.cc +140 -0
- package/deps/rocksdb/rocksdb/utilities/persistent_cache/volatile_tier_impl.h +142 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.cc +285 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator.h +231 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/cache_simulator_test.cc +494 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache.cc +356 -0
- package/deps/rocksdb/rocksdb/utilities/simulator_cache/sim_cache_test.cc +224 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.cc +122 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector.h +72 -0
- package/deps/rocksdb/rocksdb/utilities/table_properties_collectors/compact_on_deletion_collector_test.cc +244 -0
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.cc +125 -0
- package/deps/rocksdb/rocksdb/utilities/trace/file_trace_reader_writer.h +48 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.cc +29 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_manager.h +82 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/lock_tracker.h +209 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.cc +720 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager.h +223 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.cc +181 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_manager_test.h +319 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.cc +270 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/point/point_lock_tracker.h +99 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_lock_manager.h +30 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_locking_test.cc +306 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.AGPLv3 +661 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.APACHEv2 +174 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/COPYING.GPLv2 +339 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/db.h +76 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/comparator.h +138 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/ft/ft-status.h +102 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.cc +139 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/concurrent_tree.h +174 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.cc +222 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/keyrange.h +141 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.cc +525 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/lock_request.h +253 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.cc +1007 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/locktree.h +560 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/manager.cc +527 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.cc +265 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/range_buffer.h +178 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.cc +520 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/treenode.h +302 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.cc +120 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/txnid_set.h +92 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.cc +213 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/locktree/wfg.h +124 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/memory.h +215 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_assert_subst.h +39 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_atomic.h +130 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_external_pthread.h +82 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_instrumentation.h +286 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_portability.h +87 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_pthread.h +520 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_race_tools.h +179 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/toku_time.h +172 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/portability/txn_subst.h +27 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/standalone_port.cc +132 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.cc +153 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/dbt.h +98 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/growable_array.h +144 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.cc +201 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/memarena.h +141 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt.h +794 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/omt_impl.h +1295 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/partitioned_counter.h +165 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/lib/util/status.h +76 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.cc +479 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_manager.h +130 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.cc +156 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/lock/range/range_tree/range_tree_lock_tracker.h +146 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.cc +196 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction.h +101 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.cc +111 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_db_impl.h +87 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/optimistic_transaction_test.cc +1418 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.cc +752 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction.h +232 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.cc +628 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/pessimistic_transaction_db.h +228 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/snapshot_checker.cc +49 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.cc +678 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_base.h +373 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.cc +135 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_db_mutex_impl.h +26 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.cc +6350 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_test.h +522 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.cc +188 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/transaction_util.h +80 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_transaction_test.cc +3531 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.cc +483 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn.h +119 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.cc +999 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_prepared_txn_db.h +1109 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_transaction_test.cc +786 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.cc +1039 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn.h +341 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.cc +470 -0
- package/deps/rocksdb/rocksdb/utilities/transactions/write_unprepared_txn_db.h +108 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.cc +332 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/db_ttl_impl.h +353 -0
- package/deps/rocksdb/rocksdb/utilities/ttl/ttl_test.cc +703 -0
- package/deps/rocksdb/rocksdb/utilities/util_merge_operators_test.cc +99 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index.cc +617 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.cc +345 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_internal.h +569 -0
- package/deps/rocksdb/rocksdb/utilities/write_batch_with_index/write_batch_with_index_test.cc +1867 -0
- package/deps/rocksdb/rocksdb.gyp +475 -0
- package/deps/snappy/freebsd/config.h +135 -0
- package/deps/snappy/freebsd/snappy-stubs-public.h +100 -0
- package/deps/snappy/linux/config.h +135 -0
- package/deps/snappy/linux/snappy-stubs-public.h +100 -0
- package/deps/snappy/mac/config.h +137 -0
- package/deps/snappy/mac/snappy-stubs-public.h +100 -0
- package/deps/snappy/openbsd/config.h +135 -0
- package/deps/snappy/openbsd/snappy-stubs-public.h +100 -0
- package/deps/snappy/snappy-1.1.7/COPYING +54 -0
- package/deps/snappy/snappy-1.1.7/cmake/SnappyConfig.cmake +1 -0
- package/deps/snappy/snappy-1.1.7/cmake/config.h.in +62 -0
- package/deps/snappy/snappy-1.1.7/snappy-c.cc +90 -0
- package/deps/snappy/snappy-1.1.7/snappy-c.h +138 -0
- package/deps/snappy/snappy-1.1.7/snappy-internal.h +224 -0
- package/deps/snappy/snappy-1.1.7/snappy-sinksource.cc +104 -0
- package/deps/snappy/snappy-1.1.7/snappy-sinksource.h +182 -0
- package/deps/snappy/snappy-1.1.7/snappy-stubs-internal.cc +42 -0
- package/deps/snappy/snappy-1.1.7/snappy-stubs-internal.h +561 -0
- package/deps/snappy/snappy-1.1.7/snappy-stubs-public.h.in +94 -0
- package/deps/snappy/snappy-1.1.7/snappy-test.cc +612 -0
- package/deps/snappy/snappy-1.1.7/snappy-test.h +573 -0
- package/deps/snappy/snappy-1.1.7/snappy.cc +1515 -0
- package/deps/snappy/snappy-1.1.7/snappy.h +203 -0
- package/deps/snappy/snappy-1.1.7/snappy_unittest.cc +1410 -0
- package/deps/snappy/snappy.gyp +90 -0
- package/deps/snappy/solaris/config.h +135 -0
- package/deps/snappy/solaris/snappy-stubs-public.h +100 -0
- package/deps/snappy/win32/config.h +29 -0
- package/deps/snappy/win32/snappy-stubs-public.h +100 -0
- package/iterator.js +55 -0
- package/leveldown.js +113 -0
- package/package-lock.json +23687 -0
- package/package.json +70 -0
|
@@ -0,0 +1,876 @@
|
|
|
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 <functional>
|
|
9
|
+
#include <memory>
|
|
10
|
+
#include <unordered_map>
|
|
11
|
+
|
|
12
|
+
#include "rocksdb/convenience.h"
|
|
13
|
+
#include "rocksdb/rocksdb_namespace.h"
|
|
14
|
+
#include "rocksdb/status.h"
|
|
15
|
+
|
|
16
|
+
namespace ROCKSDB_NAMESPACE {
|
|
17
|
+
class OptionTypeInfo;
|
|
18
|
+
|
|
19
|
+
// The underlying "class/type" of the option.
|
|
20
|
+
// This enum is used to determine how the option should
|
|
21
|
+
// be converted to/from strings and compared.
|
|
22
|
+
enum class OptionType {
|
|
23
|
+
kBoolean,
|
|
24
|
+
kInt,
|
|
25
|
+
kInt32T,
|
|
26
|
+
kInt64T,
|
|
27
|
+
kUInt,
|
|
28
|
+
kUInt32T,
|
|
29
|
+
kUInt64T,
|
|
30
|
+
kSizeT,
|
|
31
|
+
kString,
|
|
32
|
+
kDouble,
|
|
33
|
+
kCompactionStyle,
|
|
34
|
+
kCompactionPri,
|
|
35
|
+
kSliceTransform,
|
|
36
|
+
kCompressionType,
|
|
37
|
+
kComparator,
|
|
38
|
+
kCompactionFilter,
|
|
39
|
+
kCompactionFilterFactory,
|
|
40
|
+
kCompactionStopStyle,
|
|
41
|
+
kMergeOperator,
|
|
42
|
+
kMemTableRepFactory,
|
|
43
|
+
kFilterPolicy,
|
|
44
|
+
kFlushBlockPolicyFactory,
|
|
45
|
+
kChecksumType,
|
|
46
|
+
kEncodingType,
|
|
47
|
+
kEnv,
|
|
48
|
+
kEnum,
|
|
49
|
+
kStruct,
|
|
50
|
+
kVector,
|
|
51
|
+
kConfigurable,
|
|
52
|
+
kCustomizable,
|
|
53
|
+
kUnknown,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
enum class OptionVerificationType {
|
|
57
|
+
kNormal,
|
|
58
|
+
kByName, // The option is pointer typed so we can only verify
|
|
59
|
+
// based on it's name.
|
|
60
|
+
kByNameAllowNull, // Same as kByName, but it also allows the case
|
|
61
|
+
// where one of them is a nullptr.
|
|
62
|
+
kByNameAllowFromNull, // Same as kByName, but it also allows the case
|
|
63
|
+
// where the old option is nullptr.
|
|
64
|
+
kDeprecated, // The option is no longer used in rocksdb. The RocksDB
|
|
65
|
+
// OptionsParser will still accept this option if it
|
|
66
|
+
// happen to exists in some Options file. However,
|
|
67
|
+
// the parser will not include it in serialization
|
|
68
|
+
// and verification processes.
|
|
69
|
+
kAlias, // This option represents is a name/shortcut for
|
|
70
|
+
// another option and should not be written or verified
|
|
71
|
+
// independently
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
// A set of modifier flags used to alter how an option is evaluated or
|
|
75
|
+
// processed. These flags can be combined together (e.g. kMutable | kShared).
|
|
76
|
+
// The kCompare flags can be used to control if/when options are compared.
|
|
77
|
+
// If kCompareNever is set, two related options would never be compared (always
|
|
78
|
+
// equal) If kCompareExact is set, the options will only be compared if the
|
|
79
|
+
// sanity mode
|
|
80
|
+
// is exact
|
|
81
|
+
// kMutable means the option can be changed after it is prepared
|
|
82
|
+
// kShared means the option is contained in a std::shared_ptr
|
|
83
|
+
// kUnique means the option is contained in a std::uniqued_ptr
|
|
84
|
+
// kRawPointer means the option is a raw pointer value.
|
|
85
|
+
// kAllowNull means that an option is allowed to be null for verification
|
|
86
|
+
// purposes.
|
|
87
|
+
// kDontSerialize means this option should not be serialized and included in
|
|
88
|
+
// the string representation.
|
|
89
|
+
// kDontPrepare means do not call PrepareOptions for this pointer value.
|
|
90
|
+
enum class OptionTypeFlags : uint32_t {
|
|
91
|
+
kNone = 0x00, // No flags
|
|
92
|
+
kCompareDefault = 0x0,
|
|
93
|
+
kCompareNever = ConfigOptions::kSanityLevelNone,
|
|
94
|
+
kCompareLoose = ConfigOptions::kSanityLevelLooselyCompatible,
|
|
95
|
+
kCompareExact = ConfigOptions::kSanityLevelExactMatch,
|
|
96
|
+
|
|
97
|
+
kMutable = 0x0100, // Option is mutable
|
|
98
|
+
kRawPointer = 0x0200, // The option is stored as a raw pointer
|
|
99
|
+
kShared = 0x0400, // The option is stored as a shared_ptr
|
|
100
|
+
kUnique = 0x0800, // The option is stored as a unique_ptr
|
|
101
|
+
kAllowNull = 0x1000, // The option can be null
|
|
102
|
+
kDontSerialize = 0x2000, // Don't serialize the option
|
|
103
|
+
kDontPrepare = 0x4000, // Don't prepare or sanitize this option
|
|
104
|
+
kStringNameOnly = 0x8000, // The option serializes to a name only
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
inline OptionTypeFlags operator|(const OptionTypeFlags &a,
|
|
108
|
+
const OptionTypeFlags &b) {
|
|
109
|
+
return static_cast<OptionTypeFlags>(static_cast<uint32_t>(a) |
|
|
110
|
+
static_cast<uint32_t>(b));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
inline OptionTypeFlags operator&(const OptionTypeFlags &a,
|
|
114
|
+
const OptionTypeFlags &b) {
|
|
115
|
+
return static_cast<OptionTypeFlags>(static_cast<uint32_t>(a) &
|
|
116
|
+
static_cast<uint32_t>(b));
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Converts an string into its enumerated value.
|
|
120
|
+
// @param type_map Mapping between strings and enum values
|
|
121
|
+
// @param type The string representation of the enum
|
|
122
|
+
// @param value Returns the enum value represented by the string
|
|
123
|
+
// @return true if the string was found in the enum map, false otherwise.
|
|
124
|
+
template <typename T>
|
|
125
|
+
bool ParseEnum(const std::unordered_map<std::string, T>& type_map,
|
|
126
|
+
const std::string& type, T* value) {
|
|
127
|
+
auto iter = type_map.find(type);
|
|
128
|
+
if (iter != type_map.end()) {
|
|
129
|
+
*value = iter->second;
|
|
130
|
+
return true;
|
|
131
|
+
}
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Converts an enum into its string representation.
|
|
136
|
+
// @param type_map Mapping between strings and enum values
|
|
137
|
+
// @param type The enum
|
|
138
|
+
// @param value Returned as the string representation of the enum
|
|
139
|
+
// @return true if the enum was found in the enum map, false otherwise.
|
|
140
|
+
template <typename T>
|
|
141
|
+
bool SerializeEnum(const std::unordered_map<std::string, T>& type_map,
|
|
142
|
+
const T& type, std::string* value) {
|
|
143
|
+
for (const auto& pair : type_map) {
|
|
144
|
+
if (pair.second == type) {
|
|
145
|
+
*value = pair.first;
|
|
146
|
+
return true;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
template <typename T>
|
|
153
|
+
Status ParseVector(const ConfigOptions& config_options,
|
|
154
|
+
const OptionTypeInfo& elem_info, char separator,
|
|
155
|
+
const std::string& name, const std::string& value,
|
|
156
|
+
std::vector<T>* result);
|
|
157
|
+
|
|
158
|
+
template <typename T>
|
|
159
|
+
Status SerializeVector(const ConfigOptions& config_options,
|
|
160
|
+
const OptionTypeInfo& elem_info, char separator,
|
|
161
|
+
const std::string& name, const std::vector<T>& vec,
|
|
162
|
+
std::string* value);
|
|
163
|
+
template <typename T>
|
|
164
|
+
bool VectorsAreEqual(const ConfigOptions& config_options,
|
|
165
|
+
const OptionTypeInfo& elem_info, const std::string& name,
|
|
166
|
+
const std::vector<T>& vec1, const std::vector<T>& vec2,
|
|
167
|
+
std::string* mismatch);
|
|
168
|
+
|
|
169
|
+
// Function for converting a option string value into its underlying
|
|
170
|
+
// representation in "addr"
|
|
171
|
+
// On success, Status::OK is returned and addr is set to the parsed form
|
|
172
|
+
// On failure, a non-OK status is returned
|
|
173
|
+
// @param opts The ConfigOptions controlling how the value is parsed
|
|
174
|
+
// @param name The name of the options being parsed
|
|
175
|
+
// @param value The string representation of the option
|
|
176
|
+
// @param addr Pointer to the object
|
|
177
|
+
using ParseFunc = std::function<Status(
|
|
178
|
+
const ConfigOptions& /*opts*/, const std::string& /*name*/,
|
|
179
|
+
const std::string& /*value*/, char* /*addr*/)>;
|
|
180
|
+
|
|
181
|
+
// Function for converting an option "addr" into its string representation.
|
|
182
|
+
// On success, Status::OK is returned and value is the serialized form.
|
|
183
|
+
// On failure, a non-OK status is returned
|
|
184
|
+
// @param opts The ConfigOptions controlling how the values are serialized
|
|
185
|
+
// @param name The name of the options being serialized
|
|
186
|
+
// @param addr Pointer to the value being serialized
|
|
187
|
+
// @param value The result of the serialization.
|
|
188
|
+
using SerializeFunc = std::function<Status(
|
|
189
|
+
const ConfigOptions& /*opts*/, const std::string& /*name*/,
|
|
190
|
+
const char* /*addr*/, std::string* /*value*/)>;
|
|
191
|
+
|
|
192
|
+
// Function for comparing two option values
|
|
193
|
+
// If they are not equal, updates "mismatch" with the name of the bad option
|
|
194
|
+
// @param opts The ConfigOptions controlling how the values are compared
|
|
195
|
+
// @param name The name of the options being compared
|
|
196
|
+
// @param addr1 The first address to compare
|
|
197
|
+
// @param addr2 The address to compare to
|
|
198
|
+
// @param mismatch If the values are not equal, the name of the option that
|
|
199
|
+
// first differs
|
|
200
|
+
using EqualsFunc = std::function<bool(
|
|
201
|
+
const ConfigOptions& /*opts*/, const std::string& /*name*/,
|
|
202
|
+
const char* /*addr1*/, const char* /*addr2*/, std::string* mismatch)>;
|
|
203
|
+
|
|
204
|
+
// A struct for storing constant option information such as option name,
|
|
205
|
+
// option type, and offset.
|
|
206
|
+
class OptionTypeInfo {
|
|
207
|
+
public:
|
|
208
|
+
// A simple "normal", non-mutable Type "type" at offset
|
|
209
|
+
OptionTypeInfo(int offset, OptionType type)
|
|
210
|
+
: offset_(offset),
|
|
211
|
+
parse_func_(nullptr),
|
|
212
|
+
serialize_func_(nullptr),
|
|
213
|
+
equals_func_(nullptr),
|
|
214
|
+
type_(type),
|
|
215
|
+
verification_(OptionVerificationType::kNormal),
|
|
216
|
+
flags_(OptionTypeFlags::kNone) {}
|
|
217
|
+
|
|
218
|
+
OptionTypeInfo(int offset, OptionType type,
|
|
219
|
+
OptionVerificationType verification, OptionTypeFlags flags)
|
|
220
|
+
: offset_(offset),
|
|
221
|
+
parse_func_(nullptr),
|
|
222
|
+
serialize_func_(nullptr),
|
|
223
|
+
equals_func_(nullptr),
|
|
224
|
+
type_(type),
|
|
225
|
+
verification_(verification),
|
|
226
|
+
flags_(flags) {}
|
|
227
|
+
|
|
228
|
+
OptionTypeInfo(int offset, OptionType type,
|
|
229
|
+
OptionVerificationType verification, OptionTypeFlags flags,
|
|
230
|
+
const ParseFunc& parse_func)
|
|
231
|
+
: offset_(offset),
|
|
232
|
+
parse_func_(parse_func),
|
|
233
|
+
serialize_func_(nullptr),
|
|
234
|
+
equals_func_(nullptr),
|
|
235
|
+
type_(type),
|
|
236
|
+
verification_(verification),
|
|
237
|
+
flags_(flags) {}
|
|
238
|
+
|
|
239
|
+
OptionTypeInfo(int offset, OptionType type,
|
|
240
|
+
OptionVerificationType verification, OptionTypeFlags flags,
|
|
241
|
+
const ParseFunc& parse_func,
|
|
242
|
+
const SerializeFunc& serialize_func,
|
|
243
|
+
const EqualsFunc& equals_func)
|
|
244
|
+
: offset_(offset),
|
|
245
|
+
parse_func_(parse_func),
|
|
246
|
+
serialize_func_(serialize_func),
|
|
247
|
+
equals_func_(equals_func),
|
|
248
|
+
type_(type),
|
|
249
|
+
verification_(verification),
|
|
250
|
+
flags_(flags) {}
|
|
251
|
+
|
|
252
|
+
// Creates an OptionTypeInfo for an enum type. Enums use an additional
|
|
253
|
+
// map to convert the enums to/from their string representation.
|
|
254
|
+
// To create an OptionTypeInfo that is an Enum, one should:
|
|
255
|
+
// - Create a static map of string values to the corresponding enum value
|
|
256
|
+
// - Call this method passing the static map in as a parameter.
|
|
257
|
+
// Note that it is not necessary to add a new OptionType or make any
|
|
258
|
+
// other changes -- the returned object handles parsing, serialiation, and
|
|
259
|
+
// comparisons.
|
|
260
|
+
//
|
|
261
|
+
// @param offset The offset in the option object for this enum
|
|
262
|
+
// @param map The string to enum mapping for this enum
|
|
263
|
+
template <typename T>
|
|
264
|
+
static OptionTypeInfo Enum(
|
|
265
|
+
int offset, const std::unordered_map<std::string, T>* const map) {
|
|
266
|
+
return OptionTypeInfo(
|
|
267
|
+
offset, OptionType::kEnum, OptionVerificationType::kNormal,
|
|
268
|
+
OptionTypeFlags::kNone,
|
|
269
|
+
// Uses the map argument to convert the input string into
|
|
270
|
+
// its corresponding enum value. If value is found in the map,
|
|
271
|
+
// addr is updated to the corresponding map entry.
|
|
272
|
+
// @return OK if the value is found in the map
|
|
273
|
+
// @return InvalidArgument if the value is not found in the map
|
|
274
|
+
[map](const ConfigOptions&, const std::string& name,
|
|
275
|
+
const std::string& value, char* addr) {
|
|
276
|
+
if (map == nullptr) {
|
|
277
|
+
return Status::NotSupported("No enum mapping ", name);
|
|
278
|
+
} else if (ParseEnum<T>(*map, value, reinterpret_cast<T*>(addr))) {
|
|
279
|
+
return Status::OK();
|
|
280
|
+
} else {
|
|
281
|
+
return Status::InvalidArgument("No mapping for enum ", name);
|
|
282
|
+
}
|
|
283
|
+
},
|
|
284
|
+
// Uses the map argument to convert the input enum into
|
|
285
|
+
// its corresponding string value. If enum value is found in the map,
|
|
286
|
+
// value is updated to the corresponding string value in the map.
|
|
287
|
+
// @return OK if the enum is found in the map
|
|
288
|
+
// @return InvalidArgument if the enum is not found in the map
|
|
289
|
+
[map](const ConfigOptions&, const std::string& name, const char* addr,
|
|
290
|
+
std::string* value) {
|
|
291
|
+
if (map == nullptr) {
|
|
292
|
+
return Status::NotSupported("No enum mapping ", name);
|
|
293
|
+
} else if (SerializeEnum<T>(*map, (*reinterpret_cast<const T*>(addr)),
|
|
294
|
+
value)) {
|
|
295
|
+
return Status::OK();
|
|
296
|
+
} else {
|
|
297
|
+
return Status::InvalidArgument("No mapping for enum ", name);
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
// Casts addr1 and addr2 to the enum type and returns true if
|
|
301
|
+
// they are equal, false otherwise.
|
|
302
|
+
[](const ConfigOptions&, const std::string&, const char* addr1,
|
|
303
|
+
const char* addr2, std::string*) {
|
|
304
|
+
return (*reinterpret_cast<const T*>(addr1) ==
|
|
305
|
+
*reinterpret_cast<const T*>(addr2));
|
|
306
|
+
});
|
|
307
|
+
} // End OptionTypeInfo::Enum
|
|
308
|
+
|
|
309
|
+
// Creates an OptionTypeInfo for a Struct type. Structs have a
|
|
310
|
+
// map of string-OptionTypeInfo associated with them that describes how
|
|
311
|
+
// to process the object for parsing, serializing, and matching.
|
|
312
|
+
// Structs also have a struct_name, which is the name of the object
|
|
313
|
+
// as registered in the parent map.
|
|
314
|
+
// When processing a struct, the option name can be specified as:
|
|
315
|
+
// - <struct_name> Meaning to process the entire struct.
|
|
316
|
+
// - <struct_name.field> Meaning to process the single field
|
|
317
|
+
// - <field> Process the single fields
|
|
318
|
+
// The CompactionOptionsFIFO, CompactionOptionsUniversal, and LRUCacheOptions
|
|
319
|
+
// are all examples of Struct options.
|
|
320
|
+
//
|
|
321
|
+
// To create an OptionTypeInfo that is a Struct, one should:
|
|
322
|
+
// - Create a static map of string-OptionTypeInfo corresponding to the
|
|
323
|
+
// properties of the object that can be set via the options.
|
|
324
|
+
// - Call this method passing the name and map in as parameters.
|
|
325
|
+
// Note that it is not necessary to add a new OptionType or make any
|
|
326
|
+
// other changes -- the returned object handles parsing, serialization, and
|
|
327
|
+
// comparisons.
|
|
328
|
+
//
|
|
329
|
+
// @param offset The offset in the option object for this enum
|
|
330
|
+
// @param map The string to enum mapping for this enum
|
|
331
|
+
static OptionTypeInfo Struct(
|
|
332
|
+
const std::string& struct_name,
|
|
333
|
+
const std::unordered_map<std::string, OptionTypeInfo>* struct_map,
|
|
334
|
+
int offset, OptionVerificationType verification, OptionTypeFlags flags) {
|
|
335
|
+
return OptionTypeInfo(
|
|
336
|
+
offset, OptionType::kStruct, verification, flags,
|
|
337
|
+
// Parses the struct and updates the fields at addr
|
|
338
|
+
[struct_name, struct_map](const ConfigOptions& opts,
|
|
339
|
+
const std::string& name,
|
|
340
|
+
const std::string& value, char* addr) {
|
|
341
|
+
return ParseStruct(opts, struct_name, struct_map, name, value, addr);
|
|
342
|
+
},
|
|
343
|
+
// Serializes the struct options into value
|
|
344
|
+
[struct_name, struct_map](const ConfigOptions& opts,
|
|
345
|
+
const std::string& name, const char* addr,
|
|
346
|
+
std::string* value) {
|
|
347
|
+
return SerializeStruct(opts, struct_name, struct_map, name, addr,
|
|
348
|
+
value);
|
|
349
|
+
},
|
|
350
|
+
// Compares the struct fields of addr1 and addr2 for equality
|
|
351
|
+
[struct_name, struct_map](const ConfigOptions& opts,
|
|
352
|
+
const std::string& name, const char* addr1,
|
|
353
|
+
const char* addr2, std::string* mismatch) {
|
|
354
|
+
return StructsAreEqual(opts, struct_name, struct_map, name, addr1,
|
|
355
|
+
addr2, mismatch);
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
static OptionTypeInfo Struct(
|
|
359
|
+
const std::string& struct_name,
|
|
360
|
+
const std::unordered_map<std::string, OptionTypeInfo>* struct_map,
|
|
361
|
+
int offset, OptionVerificationType verification, OptionTypeFlags flags,
|
|
362
|
+
const ParseFunc& parse_func) {
|
|
363
|
+
return OptionTypeInfo(
|
|
364
|
+
offset, OptionType::kStruct, verification, flags, parse_func,
|
|
365
|
+
[struct_name, struct_map](const ConfigOptions& opts,
|
|
366
|
+
const std::string& name, const char* addr,
|
|
367
|
+
std::string* value) {
|
|
368
|
+
return SerializeStruct(opts, struct_name, struct_map, name, addr,
|
|
369
|
+
value);
|
|
370
|
+
},
|
|
371
|
+
[struct_name, struct_map](const ConfigOptions& opts,
|
|
372
|
+
const std::string& name, const char* addr1,
|
|
373
|
+
const char* addr2, std::string* mismatch) {
|
|
374
|
+
return StructsAreEqual(opts, struct_name, struct_map, name, addr1,
|
|
375
|
+
addr2, mismatch);
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
template <typename T>
|
|
380
|
+
static OptionTypeInfo Vector(int _offset,
|
|
381
|
+
OptionVerificationType _verification,
|
|
382
|
+
OptionTypeFlags _flags,
|
|
383
|
+
const OptionTypeInfo& elem_info,
|
|
384
|
+
char separator = ':') {
|
|
385
|
+
return OptionTypeInfo(
|
|
386
|
+
_offset, OptionType::kVector, _verification, _flags,
|
|
387
|
+
[elem_info, separator](const ConfigOptions& opts,
|
|
388
|
+
const std::string& name,
|
|
389
|
+
const std::string& value, char* addr) {
|
|
390
|
+
auto result = reinterpret_cast<std::vector<T>*>(addr);
|
|
391
|
+
return ParseVector<T>(opts, elem_info, separator, name, value,
|
|
392
|
+
result);
|
|
393
|
+
},
|
|
394
|
+
[elem_info, separator](const ConfigOptions& opts,
|
|
395
|
+
const std::string& name, const char* addr,
|
|
396
|
+
std::string* value) {
|
|
397
|
+
const auto& vec = *(reinterpret_cast<const std::vector<T>*>(addr));
|
|
398
|
+
return SerializeVector<T>(opts, elem_info, separator, name, vec,
|
|
399
|
+
value);
|
|
400
|
+
},
|
|
401
|
+
[elem_info](const ConfigOptions& opts, const std::string& name,
|
|
402
|
+
const char* addr1, const char* addr2,
|
|
403
|
+
std::string* mismatch) {
|
|
404
|
+
const auto& vec1 = *(reinterpret_cast<const std::vector<T>*>(addr1));
|
|
405
|
+
const auto& vec2 = *(reinterpret_cast<const std::vector<T>*>(addr2));
|
|
406
|
+
return VectorsAreEqual<T>(opts, elem_info, name, vec1, vec2,
|
|
407
|
+
mismatch);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
// Create a new std::shared_ptr<Customizable> OptionTypeInfo
|
|
412
|
+
// This function will call the T::CreateFromString method to create a new
|
|
413
|
+
// std::shared_ptr<T> object.
|
|
414
|
+
//
|
|
415
|
+
// @param offset The offset for the Customizable from the base pointer
|
|
416
|
+
// @param ovt How to verify this option
|
|
417
|
+
// @param flags, Extra flags specifying the behavior of this option
|
|
418
|
+
// @param _sfunc Optional function for serializing this option
|
|
419
|
+
// @param _efunc Optional function for comparing this option
|
|
420
|
+
template <typename T>
|
|
421
|
+
static OptionTypeInfo AsCustomSharedPtr(int offset,
|
|
422
|
+
OptionVerificationType ovt,
|
|
423
|
+
OptionTypeFlags flags) {
|
|
424
|
+
return AsCustomSharedPtr<T>(offset, ovt, flags, nullptr, nullptr);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
template <typename T>
|
|
428
|
+
static OptionTypeInfo AsCustomSharedPtr(int offset,
|
|
429
|
+
OptionVerificationType ovt,
|
|
430
|
+
OptionTypeFlags flags,
|
|
431
|
+
const SerializeFunc& serialize_func,
|
|
432
|
+
const EqualsFunc& equals_func) {
|
|
433
|
+
return OptionTypeInfo(
|
|
434
|
+
offset, OptionType::kCustomizable, ovt,
|
|
435
|
+
flags | OptionTypeFlags::kShared,
|
|
436
|
+
[](const ConfigOptions& opts, const std::string&,
|
|
437
|
+
const std::string& value, char* addr) {
|
|
438
|
+
auto* shared = reinterpret_cast<std::shared_ptr<T>*>(addr);
|
|
439
|
+
return T::CreateFromString(opts, value, shared);
|
|
440
|
+
},
|
|
441
|
+
serialize_func, equals_func);
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// Create a new std::unique_ptr<Customizable> OptionTypeInfo
|
|
445
|
+
// This function will call the T::CreateFromString method to create a new
|
|
446
|
+
// std::unique_ptr<T> object.
|
|
447
|
+
//
|
|
448
|
+
// @param offset The offset for the Customizable from the base pointer
|
|
449
|
+
// @param ovt How to verify this option
|
|
450
|
+
// @param flags, Extra flags specifying the behavior of this option
|
|
451
|
+
// @param _sfunc Optional function for serializing this option
|
|
452
|
+
// @param _efunc Optional function for comparing this option
|
|
453
|
+
template <typename T>
|
|
454
|
+
static OptionTypeInfo AsCustomUniquePtr(int offset,
|
|
455
|
+
OptionVerificationType ovt,
|
|
456
|
+
OptionTypeFlags flags) {
|
|
457
|
+
return AsCustomUniquePtr<T>(offset, ovt, flags, nullptr, nullptr);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
template <typename T>
|
|
461
|
+
static OptionTypeInfo AsCustomUniquePtr(int offset,
|
|
462
|
+
OptionVerificationType ovt,
|
|
463
|
+
OptionTypeFlags flags,
|
|
464
|
+
const SerializeFunc& serialize_func,
|
|
465
|
+
const EqualsFunc& equals_func) {
|
|
466
|
+
return OptionTypeInfo(
|
|
467
|
+
offset, OptionType::kCustomizable, ovt,
|
|
468
|
+
flags | OptionTypeFlags::kUnique,
|
|
469
|
+
[](const ConfigOptions& opts, const std::string&,
|
|
470
|
+
const std::string& value, char* addr) {
|
|
471
|
+
auto* unique = reinterpret_cast<std::unique_ptr<T>*>(addr);
|
|
472
|
+
return T::CreateFromString(opts, value, unique);
|
|
473
|
+
},
|
|
474
|
+
serialize_func, equals_func);
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
// Create a new Customizable* OptionTypeInfo
|
|
478
|
+
// This function will call the T::CreateFromString method to create a new
|
|
479
|
+
// T object.
|
|
480
|
+
//
|
|
481
|
+
// @param _offset The offset for the Customizable from the base pointer
|
|
482
|
+
// @param ovt How to verify this option
|
|
483
|
+
// @param flags, Extra flags specifying the behavior of this option
|
|
484
|
+
// @param _sfunc Optional function for serializing this option
|
|
485
|
+
// @param _efunc Optional function for comparing this option
|
|
486
|
+
template <typename T>
|
|
487
|
+
static OptionTypeInfo AsCustomRawPtr(int offset, OptionVerificationType ovt,
|
|
488
|
+
OptionTypeFlags flags) {
|
|
489
|
+
return AsCustomRawPtr<T>(offset, ovt, flags, nullptr, nullptr);
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
template <typename T>
|
|
493
|
+
static OptionTypeInfo AsCustomRawPtr(int offset, OptionVerificationType ovt,
|
|
494
|
+
OptionTypeFlags flags,
|
|
495
|
+
const SerializeFunc& serialize_func,
|
|
496
|
+
const EqualsFunc& equals_func) {
|
|
497
|
+
return OptionTypeInfo(
|
|
498
|
+
offset, OptionType::kCustomizable, ovt,
|
|
499
|
+
flags | OptionTypeFlags::kRawPointer,
|
|
500
|
+
[](const ConfigOptions& opts, const std::string&,
|
|
501
|
+
const std::string& value, char* addr) {
|
|
502
|
+
auto** pointer = reinterpret_cast<T**>(addr);
|
|
503
|
+
return T::CreateFromString(opts, value, pointer);
|
|
504
|
+
},
|
|
505
|
+
serialize_func, equals_func);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
bool IsEnabled(OptionTypeFlags otf) const { return (flags_ & otf) == otf; }
|
|
509
|
+
|
|
510
|
+
bool IsMutable() const { return IsEnabled(OptionTypeFlags::kMutable); }
|
|
511
|
+
|
|
512
|
+
bool IsDeprecated() const {
|
|
513
|
+
return IsEnabled(OptionVerificationType::kDeprecated);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// Returns true if the option is marked as an Alias.
|
|
517
|
+
// Aliases are valid options that are parsed but are not converted to strings
|
|
518
|
+
// or compared.
|
|
519
|
+
bool IsAlias() const { return IsEnabled(OptionVerificationType::kAlias); }
|
|
520
|
+
|
|
521
|
+
bool IsEnabled(OptionVerificationType ovf) const {
|
|
522
|
+
return verification_ == ovf;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
// Returns the sanity level for comparing the option.
|
|
526
|
+
// If the options should not be compared, returns None
|
|
527
|
+
// If the option has a compare flag, returns it.
|
|
528
|
+
// Otherwise, returns "exact"
|
|
529
|
+
ConfigOptions::SanityLevel GetSanityLevel() const {
|
|
530
|
+
if (IsDeprecated() || IsAlias()) {
|
|
531
|
+
return ConfigOptions::SanityLevel::kSanityLevelNone;
|
|
532
|
+
} else {
|
|
533
|
+
auto match = (flags_ & OptionTypeFlags::kCompareExact);
|
|
534
|
+
if (match == OptionTypeFlags::kCompareDefault) {
|
|
535
|
+
return ConfigOptions::SanityLevel::kSanityLevelExactMatch;
|
|
536
|
+
} else {
|
|
537
|
+
return (ConfigOptions::SanityLevel)match;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
// Returns true if the option should be serialized.
|
|
543
|
+
// Options should be serialized if the are not deprecated, aliases,
|
|
544
|
+
// or marked as "Don't Serialize".
|
|
545
|
+
bool ShouldSerialize() const {
|
|
546
|
+
if (IsDeprecated() || IsAlias()) {
|
|
547
|
+
return false;
|
|
548
|
+
} else if (IsEnabled(OptionTypeFlags::kDontSerialize)) {
|
|
549
|
+
return false;
|
|
550
|
+
} else {
|
|
551
|
+
return true;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
// Returns true if the option is allowed to be null.
|
|
556
|
+
// Options can be null if the verification type is allow from null
|
|
557
|
+
// or if the flags specify allow null.
|
|
558
|
+
bool CanBeNull() const {
|
|
559
|
+
return (IsEnabled(OptionTypeFlags::kAllowNull) ||
|
|
560
|
+
IsEnabled(OptionVerificationType::kByNameAllowFromNull));
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
bool IsSharedPtr() const { return IsEnabled(OptionTypeFlags::kShared); }
|
|
564
|
+
|
|
565
|
+
bool IsUniquePtr() const { return IsEnabled(OptionTypeFlags::kUnique); }
|
|
566
|
+
|
|
567
|
+
bool IsRawPtr() const { return IsEnabled(OptionTypeFlags::kRawPointer); }
|
|
568
|
+
|
|
569
|
+
bool IsByName() const {
|
|
570
|
+
return (verification_ == OptionVerificationType::kByName ||
|
|
571
|
+
verification_ == OptionVerificationType::kByNameAllowNull ||
|
|
572
|
+
verification_ == OptionVerificationType::kByNameAllowFromNull);
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
bool IsStruct() const { return (type_ == OptionType::kStruct); }
|
|
576
|
+
|
|
577
|
+
bool IsConfigurable() const {
|
|
578
|
+
return (type_ == OptionType::kConfigurable ||
|
|
579
|
+
type_ == OptionType::kCustomizable);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
bool IsCustomizable() const { return (type_ == OptionType::kCustomizable); }
|
|
583
|
+
|
|
584
|
+
// Returns the underlying pointer for the type at base_addr
|
|
585
|
+
// The value returned is the underlying "raw" pointer, offset from base.
|
|
586
|
+
template <typename T>
|
|
587
|
+
const T* AsRawPointer(const void* const base_addr) const {
|
|
588
|
+
if (base_addr == nullptr) {
|
|
589
|
+
return nullptr;
|
|
590
|
+
}
|
|
591
|
+
const auto opt_addr = reinterpret_cast<const char*>(base_addr) + offset_;
|
|
592
|
+
if (IsUniquePtr()) {
|
|
593
|
+
const std::unique_ptr<T>* ptr =
|
|
594
|
+
reinterpret_cast<const std::unique_ptr<T>*>(opt_addr);
|
|
595
|
+
return ptr->get();
|
|
596
|
+
} else if (IsSharedPtr()) {
|
|
597
|
+
const std::shared_ptr<T>* ptr =
|
|
598
|
+
reinterpret_cast<const std::shared_ptr<T>*>(opt_addr);
|
|
599
|
+
return ptr->get();
|
|
600
|
+
} else if (IsRawPtr()) {
|
|
601
|
+
const T* const* ptr = reinterpret_cast<const T* const*>(opt_addr);
|
|
602
|
+
return *ptr;
|
|
603
|
+
} else {
|
|
604
|
+
return reinterpret_cast<const T*>(opt_addr);
|
|
605
|
+
}
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
// Returns the underlying pointer for the type at base_addr
|
|
609
|
+
// The value returned is the underlying "raw" pointer, offset from base.
|
|
610
|
+
template <typename T>
|
|
611
|
+
T* AsRawPointer(void* base_addr) const {
|
|
612
|
+
if (base_addr == nullptr) {
|
|
613
|
+
return nullptr;
|
|
614
|
+
}
|
|
615
|
+
auto opt_addr = reinterpret_cast<char*>(base_addr) + offset_;
|
|
616
|
+
if (IsUniquePtr()) {
|
|
617
|
+
std::unique_ptr<T>* ptr = reinterpret_cast<std::unique_ptr<T>*>(opt_addr);
|
|
618
|
+
return ptr->get();
|
|
619
|
+
} else if (IsSharedPtr()) {
|
|
620
|
+
std::shared_ptr<T>* ptr = reinterpret_cast<std::shared_ptr<T>*>(opt_addr);
|
|
621
|
+
return ptr->get();
|
|
622
|
+
} else if (IsRawPtr()) {
|
|
623
|
+
T** ptr = reinterpret_cast<T**>(opt_addr);
|
|
624
|
+
return *ptr;
|
|
625
|
+
} else {
|
|
626
|
+
return reinterpret_cast<T*>(opt_addr);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
|
|
630
|
+
// Parses the option in "opt_value" according to the rules of this class
|
|
631
|
+
// and updates the value at "opt_ptr".
|
|
632
|
+
// On success, Status::OK() is returned. On failure:
|
|
633
|
+
// NotFound means the opt_name is not valid for this option
|
|
634
|
+
// NotSupported means we do not know how to parse the value for this option
|
|
635
|
+
// InvalidArgument means the opt_value is not valid for this option.
|
|
636
|
+
Status Parse(const ConfigOptions& config_options, const std::string& opt_name,
|
|
637
|
+
const std::string& opt_value, void* const opt_ptr) const;
|
|
638
|
+
|
|
639
|
+
// Serializes the option in "opt_addr" according to the rules of this class
|
|
640
|
+
// into the value at "opt_value".
|
|
641
|
+
Status Serialize(const ConfigOptions& config_options,
|
|
642
|
+
const std::string& opt_name, const void* const opt_ptr,
|
|
643
|
+
std::string* opt_value) const;
|
|
644
|
+
|
|
645
|
+
// Compares the "addr1" and "addr2" values according to the rules of this
|
|
646
|
+
// class and returns true if they match. On a failed match, mismatch is the
|
|
647
|
+
// name of the option that failed to match.
|
|
648
|
+
bool AreEqual(const ConfigOptions& config_options,
|
|
649
|
+
const std::string& opt_name, const void* const addr1,
|
|
650
|
+
const void* const addr2, std::string* mismatch) const;
|
|
651
|
+
|
|
652
|
+
// Used to override the match rules for "ByName" options.
|
|
653
|
+
bool AreEqualByName(const ConfigOptions& config_options,
|
|
654
|
+
const std::string& opt_name, const void* const this_ptr,
|
|
655
|
+
const void* const that_ptr) const;
|
|
656
|
+
bool AreEqualByName(const ConfigOptions& config_options,
|
|
657
|
+
const std::string& opt_name, const void* const this_ptr,
|
|
658
|
+
const std::string& that_value) const;
|
|
659
|
+
|
|
660
|
+
// Parses the input value according to the map for the struct at opt_addr
|
|
661
|
+
// struct_name is the name of the struct option as registered
|
|
662
|
+
// opt_name is the name of the option being evaluated. This may
|
|
663
|
+
// be the whole struct or a sub-element of it, based on struct_name and
|
|
664
|
+
// opt_name.
|
|
665
|
+
static Status ParseStruct(
|
|
666
|
+
const ConfigOptions& config_options, const std::string& struct_name,
|
|
667
|
+
const std::unordered_map<std::string, OptionTypeInfo>* map,
|
|
668
|
+
const std::string& opt_name, const std::string& value, char* opt_addr);
|
|
669
|
+
|
|
670
|
+
// Serializes the input addr according to the map for the struct to value.
|
|
671
|
+
// struct_name is the name of the struct option as registered
|
|
672
|
+
// opt_name is the name of the option being evaluated. This may
|
|
673
|
+
// be the whole struct or a sub-element of it
|
|
674
|
+
static Status SerializeStruct(
|
|
675
|
+
const ConfigOptions& config_options, const std::string& struct_name,
|
|
676
|
+
const std::unordered_map<std::string, OptionTypeInfo>* map,
|
|
677
|
+
const std::string& opt_name, const char* opt_addr, std::string* value);
|
|
678
|
+
|
|
679
|
+
// Compares the input offsets according to the map for the struct and returns
|
|
680
|
+
// true if they are equivalent, false otherwise.
|
|
681
|
+
// struct_name is the name of the struct option as registered
|
|
682
|
+
// opt_name is the name of the option being evaluated. This may
|
|
683
|
+
// be the whole struct or a sub-element of it
|
|
684
|
+
static bool StructsAreEqual(
|
|
685
|
+
const ConfigOptions& config_options, const std::string& struct_name,
|
|
686
|
+
const std::unordered_map<std::string, OptionTypeInfo>* map,
|
|
687
|
+
const std::string& opt_name, const char* this_offset,
|
|
688
|
+
const char* that_offset, std::string* mismatch);
|
|
689
|
+
|
|
690
|
+
// Finds the entry for the opt_name in the opt_map, returning
|
|
691
|
+
// nullptr if not found.
|
|
692
|
+
// If found, elem_name will be the name of option to find.
|
|
693
|
+
// This may be opt_name, or a substring of opt_name.
|
|
694
|
+
// For "simple" options, opt_name will be equal to elem_name. Given the
|
|
695
|
+
// opt_name "opt", elem_name will equal "opt".
|
|
696
|
+
// For "embedded" options (like structs), elem_name may be opt_name
|
|
697
|
+
// or a field within the opt_name. For example, given the struct "struct",
|
|
698
|
+
// and opt_name of "struct.field", elem_name will be "field"
|
|
699
|
+
static const OptionTypeInfo* Find(
|
|
700
|
+
const std::string& opt_name,
|
|
701
|
+
const std::unordered_map<std::string, OptionTypeInfo>& opt_map,
|
|
702
|
+
std::string* elem_name);
|
|
703
|
+
|
|
704
|
+
// Returns the next token marked by the delimiter from "opts" after start in
|
|
705
|
+
// token and updates end to point to where that token stops. Delimiters inside
|
|
706
|
+
// of braces are ignored. Returns OK if a token is found and an error if the
|
|
707
|
+
// input opts string is mis-formatted.
|
|
708
|
+
// Given "a=AA;b=BB;" start=2 and delimiter=";", token is "AA" and end points
|
|
709
|
+
// to "b" Given "{a=A;b=B}", the token would be "a=A;b=B"
|
|
710
|
+
//
|
|
711
|
+
// @param opts The string in which to find the next token
|
|
712
|
+
// @param delimiter The delimiter between tokens
|
|
713
|
+
// @param start The position in opts to start looking for the token
|
|
714
|
+
// @parem ed Returns the end position in opts of the token
|
|
715
|
+
// @param token Returns the token
|
|
716
|
+
// @returns OK if a token was found
|
|
717
|
+
// @return InvalidArgument if the braces mismatch
|
|
718
|
+
// (e.g. "{a={b=c;}" ) -- missing closing brace
|
|
719
|
+
// @return InvalidArgument if an expected delimiter is not found
|
|
720
|
+
// e.g. "{a=b}c=d;" -- missing delimiter before "c"
|
|
721
|
+
static Status NextToken(const std::string& opts, char delimiter, size_t start,
|
|
722
|
+
size_t* end, std::string* token);
|
|
723
|
+
|
|
724
|
+
private:
|
|
725
|
+
int offset_;
|
|
726
|
+
|
|
727
|
+
// The optional function to convert a string to its representation
|
|
728
|
+
ParseFunc parse_func_;
|
|
729
|
+
|
|
730
|
+
// The optional function to convert a value to its string representation
|
|
731
|
+
SerializeFunc serialize_func_;
|
|
732
|
+
|
|
733
|
+
// The optional function to match two option values
|
|
734
|
+
EqualsFunc equals_func_;
|
|
735
|
+
|
|
736
|
+
OptionType type_;
|
|
737
|
+
OptionVerificationType verification_;
|
|
738
|
+
OptionTypeFlags flags_;
|
|
739
|
+
};
|
|
740
|
+
|
|
741
|
+
// Parses the input value into elements of the result vector. This method
|
|
742
|
+
// will break the input value into the individual tokens (based on the
|
|
743
|
+
// separator), where each of those tokens will be parsed based on the rules of
|
|
744
|
+
// elem_info. The result vector will be populated with elements based on the
|
|
745
|
+
// input tokens. For example, if the value=1:2:3:4:5 and elem_info parses
|
|
746
|
+
// integers, the result vector will contain the integers 1,2,3,4,5
|
|
747
|
+
// @param config_options Controls how the option value is parsed.
|
|
748
|
+
// @param elem_info Controls how individual tokens in value are parsed
|
|
749
|
+
// @param separator Character separating tokens in values (':' in the above
|
|
750
|
+
// example)
|
|
751
|
+
// @param name The name associated with this vector option
|
|
752
|
+
// @param value The input string to parse into tokens
|
|
753
|
+
// @param result Returns the results of parsing value into its elements.
|
|
754
|
+
// @return OK if the value was successfully parse
|
|
755
|
+
// @return InvalidArgument if the value is improperly formed or if the token
|
|
756
|
+
// could not be parsed
|
|
757
|
+
// @return NotFound If the tokenized value contains unknown options for
|
|
758
|
+
// its type
|
|
759
|
+
template <typename T>
|
|
760
|
+
Status ParseVector(const ConfigOptions& config_options,
|
|
761
|
+
const OptionTypeInfo& elem_info, char separator,
|
|
762
|
+
const std::string& name, const std::string& value,
|
|
763
|
+
std::vector<T>* result) {
|
|
764
|
+
result->clear();
|
|
765
|
+
Status status;
|
|
766
|
+
|
|
767
|
+
// Turn off ignore_unknown_objects so we can tell if the returned
|
|
768
|
+
// object is valid or not.
|
|
769
|
+
ConfigOptions copy = config_options;
|
|
770
|
+
copy.ignore_unsupported_options = false;
|
|
771
|
+
for (size_t start = 0, end = 0;
|
|
772
|
+
status.ok() && start < value.size() && end != std::string::npos;
|
|
773
|
+
start = end + 1) {
|
|
774
|
+
std::string token;
|
|
775
|
+
status = OptionTypeInfo::NextToken(value, separator, start, &end, &token);
|
|
776
|
+
if (status.ok()) {
|
|
777
|
+
T elem;
|
|
778
|
+
status =
|
|
779
|
+
elem_info.Parse(copy, name, token, reinterpret_cast<char*>(&elem));
|
|
780
|
+
if (status.ok()) {
|
|
781
|
+
result->emplace_back(elem);
|
|
782
|
+
} else if (config_options.ignore_unsupported_options &&
|
|
783
|
+
status.IsNotSupported()) {
|
|
784
|
+
// If we were ignoring unsupported options and this one should be
|
|
785
|
+
// ignored, ignore it by setting the status to OK
|
|
786
|
+
status = Status::OK();
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
return status;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
// Serializes the input vector into its output value. Elements are
|
|
794
|
+
// separated by the separator character. This element will convert all of the
|
|
795
|
+
// elements in vec into their serialized form, using elem_info to perform the
|
|
796
|
+
// serialization.
|
|
797
|
+
// For example, if the vec contains the integers 1,2,3,4,5 and elem_info
|
|
798
|
+
// serializes the output would be 1:2:3:4:5 for separator ":".
|
|
799
|
+
// @param config_options Controls how the option value is serialized.
|
|
800
|
+
// @param elem_info Controls how individual tokens in value are serialized
|
|
801
|
+
// @param separator Character separating tokens in value (':' in the above
|
|
802
|
+
// example)
|
|
803
|
+
// @param name The name associated with this vector option
|
|
804
|
+
// @param vec The input vector to serialize
|
|
805
|
+
// @param value The output string of serialized options
|
|
806
|
+
// @return OK if the value was successfully parse
|
|
807
|
+
// @return InvalidArgument if the value is improperly formed or if the token
|
|
808
|
+
// could not be parsed
|
|
809
|
+
// @return NotFound If the tokenized value contains unknown options for
|
|
810
|
+
// its type
|
|
811
|
+
template <typename T>
|
|
812
|
+
Status SerializeVector(const ConfigOptions& config_options,
|
|
813
|
+
const OptionTypeInfo& elem_info, char separator,
|
|
814
|
+
const std::string& name, const std::vector<T>& vec,
|
|
815
|
+
std::string* value) {
|
|
816
|
+
std::string result;
|
|
817
|
+
ConfigOptions embedded = config_options;
|
|
818
|
+
embedded.delimiter = ";";
|
|
819
|
+
for (size_t i = 0; i < vec.size(); ++i) {
|
|
820
|
+
std::string elem_str;
|
|
821
|
+
Status s = elem_info.Serialize(
|
|
822
|
+
embedded, name, reinterpret_cast<const char*>(&vec[i]), &elem_str);
|
|
823
|
+
if (!s.ok()) {
|
|
824
|
+
return s;
|
|
825
|
+
} else {
|
|
826
|
+
if (i > 0) {
|
|
827
|
+
result += separator;
|
|
828
|
+
}
|
|
829
|
+
// If the element contains embedded separators, put it inside of brackets
|
|
830
|
+
if (result.find(separator) != std::string::npos) {
|
|
831
|
+
result += "{" + elem_str + "}";
|
|
832
|
+
} else {
|
|
833
|
+
result += elem_str;
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
if (result.find("=") != std::string::npos) {
|
|
838
|
+
*value = "{" + result + "}";
|
|
839
|
+
} else {
|
|
840
|
+
*value = result;
|
|
841
|
+
}
|
|
842
|
+
return Status::OK();
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
// Compares the input vectors vec1 and vec2 for equality
|
|
846
|
+
// If the vectors are the same size, elements of the vectors are compared one by
|
|
847
|
+
// one using elem_info to perform the comparison.
|
|
848
|
+
//
|
|
849
|
+
// @param config_options Controls how the vectors are compared.
|
|
850
|
+
// @param elem_info Controls how individual elements in the vectors are compared
|
|
851
|
+
// @param name The name associated with this vector option
|
|
852
|
+
// @param vec1,vec2 The vectors to compare.
|
|
853
|
+
// @param mismatch If the vectors are not equivalent, mismatch will point to
|
|
854
|
+
// the first
|
|
855
|
+
// element of the comparison tht did not match.
|
|
856
|
+
// @return true If vec1 and vec2 are "equal", false otherwise
|
|
857
|
+
template <typename T>
|
|
858
|
+
bool VectorsAreEqual(const ConfigOptions& config_options,
|
|
859
|
+
const OptionTypeInfo& elem_info, const std::string& name,
|
|
860
|
+
const std::vector<T>& vec1, const std::vector<T>& vec2,
|
|
861
|
+
std::string* mismatch) {
|
|
862
|
+
if (vec1.size() != vec2.size()) {
|
|
863
|
+
*mismatch = name;
|
|
864
|
+
return false;
|
|
865
|
+
} else {
|
|
866
|
+
for (size_t i = 0; i < vec1.size(); ++i) {
|
|
867
|
+
if (!elem_info.AreEqual(
|
|
868
|
+
config_options, name, reinterpret_cast<const char*>(&vec1[i]),
|
|
869
|
+
reinterpret_cast<const char*>(&vec2[i]), mismatch)) {
|
|
870
|
+
return false;
|
|
871
|
+
}
|
|
872
|
+
}
|
|
873
|
+
return true;
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
} // namespace ROCKSDB_NAMESPACE
|