gitextract_4xu5fau8/ ├── .clang-format ├── .github/ │ └── workflows/ │ ├── check_license_header.yaml │ ├── compilation.yaml │ ├── cpp_actions.yaml │ ├── cpp_always_pass_actions.yaml │ ├── issue_ref.yaml │ └── non_cpp_actions.yaml ├── .gitignore ├── .licenserc.yaml ├── CMakeLists.txt ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bin/ │ ├── FindDL.cmake │ ├── FindJemalloc.cmake │ ├── FindRT.cmake │ ├── compiler_info.cmake │ ├── dsn.cmake │ └── thrift_utils.cmake ├── compile_thrift.py ├── include/ │ └── dsn/ │ ├── c/ │ │ ├── api_common.h │ │ ├── api_layer1.h │ │ ├── api_task.h │ │ ├── api_utilities.h │ │ └── app_model.h │ ├── cpp/ │ │ ├── json_helper.h │ │ ├── message_utils.h │ │ ├── pipeline.h │ │ ├── rpc_holder.h │ │ ├── rpc_stream.h │ │ ├── serialization.h │ │ ├── serialization_helper/ │ │ │ ├── dsn.layer2_types.h │ │ │ ├── dsn_types.h │ │ │ └── thrift_helper.h │ │ ├── serverlet.h │ │ └── service_app.h │ ├── dist/ │ │ ├── block_service.h │ │ ├── common.h │ │ ├── distributed_lock_service.h │ │ ├── failure_detector/ │ │ │ ├── failure_detector.h │ │ │ ├── fd.client.h │ │ │ ├── fd.code.definition.h │ │ │ └── fd.server.h │ │ ├── failure_detector.h │ │ ├── failure_detector_multimaster.h │ │ ├── fmt_logging.h │ │ ├── meta_state_service.h │ │ ├── nfs_node.h │ │ ├── remote_command.h │ │ ├── replication/ │ │ │ ├── duplication_common.h │ │ │ ├── meta_service_app.h │ │ │ ├── mutation_duplicator.h │ │ │ ├── mutation_log_tool.h │ │ │ ├── partition_resolver.h │ │ │ ├── replica_base.h │ │ │ ├── replica_envs.h │ │ │ ├── replica_test_utils.h │ │ │ ├── replication.codes.h │ │ │ ├── replication_app_base.h │ │ │ ├── replication_ddl_client.h │ │ │ ├── replication_enums.h │ │ │ ├── replication_other_types.h │ │ │ ├── replication_service_app.h │ │ │ ├── replication_types.h │ │ │ └── storage_serverlet.h │ │ └── replication.h │ ├── http/ │ │ └── http_server.h │ ├── perf_counter/ │ │ ├── perf_counter.h │ │ ├── perf_counter_utils.h │ │ ├── perf_counter_wrapper.h │ │ └── perf_counters.h │ ├── service_api_c.h │ ├── service_api_cpp.h │ ├── tool/ │ │ ├── nativerun.h │ │ ├── node_scoper.h │ │ ├── providers.common.h │ │ └── simulator.h │ ├── tool-api/ │ │ ├── aio_task.h │ │ ├── async_calls.h │ │ ├── auto_codes.h │ │ ├── command_manager.h │ │ ├── env_provider.h │ │ ├── file_io.h │ │ ├── future_types.h │ │ ├── global_config.h │ │ ├── gpid.h │ │ ├── group_address.h │ │ ├── logging_provider.h │ │ ├── message_parser.h │ │ ├── network.h │ │ ├── rpc_address.h │ │ ├── rpc_message.h │ │ ├── task.h │ │ ├── task_code.h │ │ ├── task_queue.h │ │ ├── task_spec.h │ │ ├── task_tracker.h │ │ ├── task_worker.h │ │ ├── thread_access_checker.h │ │ ├── threadpool_code.h │ │ ├── threadpool_spec.h │ │ ├── timer_service.h │ │ ├── uniq_timestamp_us.h │ │ └── zlocks.h │ ├── tool_api.h │ ├── toollet/ │ │ ├── fault_injector.h │ │ ├── profiler.h │ │ └── tracer.h │ ├── utility/ │ │ ├── TokenBucket.h │ │ ├── absl/ │ │ │ ├── base/ │ │ │ │ └── internal/ │ │ │ │ └── invoke.h │ │ │ └── utility/ │ │ │ └── utility.h │ │ ├── alloc.h │ │ ├── apply.h │ │ ├── autoref_ptr.h │ │ ├── binary_reader.h │ │ ├── binary_writer.h │ │ ├── blob.h │ │ ├── casts.h │ │ ├── chrono_literals.h │ │ ├── clock.h │ │ ├── config_api.h │ │ ├── config_helper.h │ │ ├── configuration.h │ │ ├── crc.h │ │ ├── customizable_id.h │ │ ├── defer.h │ │ ├── dlib.h │ │ ├── endians.h │ │ ├── enum_helper.h │ │ ├── error_code.h │ │ ├── errors.h │ │ ├── exp_delay.h │ │ ├── extensible_object.h │ │ ├── factory_store.h │ │ ├── fail_point.h │ │ ├── filesystem.h │ │ ├── fixed_size_buffer_pool.h │ │ ├── flags.h │ │ ├── function_traits.h │ │ ├── hpc_locks/ │ │ │ ├── autoresetevent.h │ │ │ ├── autoreseteventcondvar.h │ │ │ ├── benaphore.h │ │ │ ├── bitfield.h │ │ │ ├── readme.txt │ │ │ ├── rwlock.h │ │ │ └── sema.h │ │ ├── join_point.h │ │ ├── link.h │ │ ├── long_adder.h │ │ ├── math.h │ │ ├── metrics.h │ │ ├── nth_element.h │ │ ├── optional.h │ │ ├── output_utils.h │ │ ├── ports.h │ │ ├── preloadable.h │ │ ├── priority_queue.h │ │ ├── process_utils.h │ │ ├── rand.h │ │ ├── safe_strerror_posix.h │ │ ├── singleton.h │ │ ├── singleton_store.h │ │ ├── smart_pointers.h │ │ ├── string_conv.h │ │ ├── string_splitter.h │ │ ├── string_view.h │ │ ├── strings.h │ │ ├── synchronize.h │ │ ├── sys_exit_hook.h │ │ ├── timer.h │ │ ├── utils.h │ │ └── work_queue.h │ └── utils/ │ ├── latency_tracer.h │ ├── time_utils.h │ ├── token_bucket_throttling_controller.h │ └── token_buckets.h ├── run.sh ├── scripts/ │ └── linux/ │ ├── build.sh │ ├── clear_zk.sh │ ├── install.sh │ ├── learn_stat.py │ ├── run-clang-format.py │ ├── run-clang-format.sh │ ├── start_zk.sh │ └── stop_zk.sh ├── src/ │ ├── CMakeLists.txt │ ├── aio/ │ │ ├── CMakeLists.txt │ │ ├── aio_provider.cpp │ │ ├── aio_provider.h │ │ ├── aio_task.cpp │ │ ├── disk_engine.cpp │ │ ├── disk_engine.h │ │ ├── file_io.cpp │ │ ├── native_linux_aio_provider.cpp │ │ ├── native_linux_aio_provider.h │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── aio.cpp │ │ ├── clear.sh │ │ ├── config.ini │ │ ├── copy_source.txt │ │ ├── main.cpp │ │ └── run.sh │ ├── block_service/ │ │ ├── CMakeLists.txt │ │ ├── block_service_manager.cpp │ │ ├── block_service_manager.h │ │ ├── directio_writable_file.cpp │ │ ├── directio_writable_file.h │ │ ├── fds/ │ │ │ ├── CMakeLists.txt │ │ │ ├── fds_service.cpp │ │ │ └── fds_service.h │ │ ├── hdfs/ │ │ │ ├── CMakeLists.txt │ │ │ ├── hdfs_service.cpp │ │ │ └── hdfs_service.h │ │ ├── local/ │ │ │ ├── CMakeLists.txt │ │ │ ├── local_service.cpp │ │ │ └── local_service.h │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── block_service_manager_test.cpp │ │ ├── block_service_mock.h │ │ ├── clear.sh │ │ ├── config-test.ini │ │ ├── fds_service_test.cpp │ │ ├── hdfs_service_test.cpp │ │ ├── local_service_test.cpp │ │ ├── main.cpp │ │ └── run.sh │ ├── client/ │ │ ├── CMakeLists.txt │ │ ├── partition_resolver.cpp │ │ ├── partition_resolver_manager.cpp │ │ ├── partition_resolver_manager.h │ │ ├── partition_resolver_simple.cpp │ │ ├── partition_resolver_simple.h │ │ └── replication_ddl_client.cpp │ ├── common/ │ │ ├── CMakeLists.txt │ │ ├── backup.thrift │ │ ├── backup_common.cpp │ │ ├── backup_common.h │ │ ├── bulk_load.thrift │ │ ├── bulk_load_common.cpp │ │ ├── bulk_load_common.h │ │ ├── common.cpp │ │ ├── consensus.thrift │ │ ├── duplication.thrift │ │ ├── duplication_common.cpp │ │ ├── fs_manager.cpp │ │ ├── fs_manager.h │ │ ├── manual_compact.h │ │ ├── meta_admin.thrift │ │ ├── metadata.thrift │ │ ├── partition_split.thrift │ │ ├── partition_split_common.h │ │ ├── replica_admin.thrift │ │ ├── replication_common.cpp │ │ ├── replication_common.h │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── common_test.cpp │ │ ├── config-test.ini │ │ ├── duplication_common_test.cpp │ │ ├── fs_manager_test.cpp │ │ ├── main.cpp │ │ ├── replication_common_test.cpp │ │ └── run.sh │ ├── dsn.layer2.thrift │ ├── dsn.thrift │ ├── failure_detector/ │ │ ├── CMakeLists.txt │ │ ├── failure_detector.cpp │ │ ├── failure_detector_multimaster.cpp │ │ ├── fd.thrift │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── clear.sh │ │ ├── config-test.ini │ │ ├── config-whitelist-test-failed.ini │ │ ├── config-whitelist-test.ini │ │ ├── failure_detector.cpp │ │ ├── gtest.filter │ │ ├── main.cpp │ │ └── run.sh │ ├── http/ │ │ ├── CMakeLists.txt │ │ ├── builtin_http_calls.cpp │ │ ├── builtin_http_calls.h │ │ ├── config_http_service.cpp │ │ ├── http_call_registry.h │ │ ├── http_message_parser.cpp │ │ ├── http_message_parser.h │ │ ├── http_server.cpp │ │ ├── http_server_impl.h │ │ ├── perf_counter_http_service.cpp │ │ ├── pprof_http_service.cpp │ │ ├── pprof_http_service.h │ │ ├── service_version.cpp │ │ ├── service_version.h │ │ ├── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── http_server_test.cpp │ │ │ ├── perf_counter_http_service_test.cpp │ │ │ ├── run.sh │ │ │ └── uri_decoder_test.cpp │ │ ├── uri_decoder.cpp │ │ └── uri_decoder.h │ ├── meta/ │ │ ├── CMakeLists.txt │ │ ├── app_balance_policy.cpp │ │ ├── app_balance_policy.h │ │ ├── app_env_validator.cpp │ │ ├── app_env_validator.h │ │ ├── backup_engine.cpp │ │ ├── backup_engine.h │ │ ├── cluster_balance_policy.cpp │ │ ├── cluster_balance_policy.h │ │ ├── distributed_lock_service_simple.cpp │ │ ├── distributed_lock_service_simple.h │ │ ├── dump_file.h │ │ ├── duplication/ │ │ │ ├── duplication_info.cpp │ │ │ ├── duplication_info.h │ │ │ ├── meta_duplication_service.cpp │ │ │ └── meta_duplication_service.h │ │ ├── greedy_load_balancer.cpp │ │ ├── greedy_load_balancer.h │ │ ├── load_balance_policy.cpp │ │ ├── load_balance_policy.h │ │ ├── meta_backup_service.cpp │ │ ├── meta_backup_service.h │ │ ├── meta_bulk_load_ingestion_context.cpp │ │ ├── meta_bulk_load_ingestion_context.h │ │ ├── meta_bulk_load_service.cpp │ │ ├── meta_bulk_load_service.h │ │ ├── meta_data.cpp │ │ ├── meta_data.h │ │ ├── meta_http_service.cpp │ │ ├── meta_http_service.h │ │ ├── meta_options.cpp │ │ ├── meta_options.h │ │ ├── meta_rpc_types.h │ │ ├── meta_server_failure_detector.cpp │ │ ├── meta_server_failure_detector.h │ │ ├── meta_service.cpp │ │ ├── meta_service.h │ │ ├── meta_service_app.cpp │ │ ├── meta_split_service.cpp │ │ ├── meta_split_service.h │ │ ├── meta_state_service_simple.cpp │ │ ├── meta_state_service_simple.h │ │ ├── meta_state_service_utils.cpp │ │ ├── meta_state_service_utils.h │ │ ├── meta_state_service_utils_impl.h │ │ ├── meta_state_service_zookeeper.cpp │ │ ├── meta_state_service_zookeeper.h │ │ ├── partition_guardian.cpp │ │ ├── partition_guardian.h │ │ ├── server_load_balancer.cpp │ │ ├── server_load_balancer.h │ │ ├── server_state.cpp │ │ ├── server_state.h │ │ ├── server_state_restore.cpp │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── backup_test.cpp │ │ ├── balancer_simulator/ │ │ │ ├── CMakeLists.txt │ │ │ └── balancer_simulator.cpp │ │ ├── balancer_validator.cpp │ │ ├── clear.sh │ │ ├── cluster_balance_policy_test.cpp │ │ ├── config-test.ini │ │ ├── copy_replica_operation_test.cpp │ │ ├── dummy_balancer.h │ │ ├── dump_file.cpp │ │ ├── duplication_info_test.cpp │ │ ├── ford_fulkerson_test.cpp │ │ ├── json_compacity.cpp │ │ ├── main.cpp │ │ ├── meta_app_envs_test.cpp │ │ ├── meta_app_operation_test.cpp │ │ ├── meta_backup_test.cpp │ │ ├── meta_bulk_load_ingestion_test.cpp │ │ ├── meta_bulk_load_service_test.cpp │ │ ├── meta_data.cpp │ │ ├── meta_duplication_service_test.cpp │ │ ├── meta_http_service_test.cpp │ │ ├── meta_mauanl_compaction_test.cpp │ │ ├── meta_partition_guardian_test.cpp │ │ ├── meta_service_test.cpp │ │ ├── meta_service_test_app.h │ │ ├── meta_split_service_test.cpp │ │ ├── meta_state/ │ │ │ ├── CMakeLists.txt │ │ │ ├── clear.cmd │ │ │ ├── clear.sh │ │ │ ├── config-test.ini │ │ │ ├── gtest.filter │ │ │ ├── main.cpp │ │ │ ├── meta_state_service.cpp │ │ │ └── run.sh │ │ ├── meta_state_service_utils_test.cpp │ │ ├── meta_test_base.cpp │ │ ├── meta_test_base.h │ │ ├── misc/ │ │ │ ├── misc.cpp │ │ │ └── misc.h │ │ ├── run.sh │ │ ├── server_state_restore_test.cpp │ │ ├── server_state_test.cpp │ │ ├── state_sync_test.cpp │ │ ├── suite1 │ │ ├── suite2 │ │ └── update_configuration_test.cpp │ ├── nfs/ │ │ ├── CMakeLists.txt │ │ ├── nfs.thrift │ │ ├── nfs_client_impl.cpp │ │ ├── nfs_client_impl.h │ │ ├── nfs_code_definition.h │ │ ├── nfs_node.cpp │ │ ├── nfs_node_impl.cpp │ │ ├── nfs_node_simple.h │ │ ├── nfs_server_impl.cpp │ │ ├── nfs_server_impl.h │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── clear.sh │ │ ├── config.ini │ │ ├── main.cpp │ │ ├── nfs_test_file1 │ │ ├── nfs_test_file2 │ │ └── run.sh │ ├── perf_counter/ │ │ ├── CMakeLists.txt │ │ ├── builtin_counters.cpp │ │ ├── builtin_counters.h │ │ ├── perf_counter.cpp │ │ ├── perf_counter_atomic.h │ │ ├── perf_counters.cpp │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── clear.sh │ │ ├── main.cpp │ │ ├── perf_counter_test.cpp │ │ ├── perf_counters_test.cpp │ │ └── run.sh │ ├── remote_cmd/ │ │ ├── CMakeLists.txt │ │ ├── command.thrift │ │ └── remote_command.cpp │ ├── replica/ │ │ ├── CMakeLists.txt │ │ ├── backup/ │ │ │ ├── cold_backup_context.cpp │ │ │ ├── cold_backup_context.h │ │ │ ├── replica_backup_manager.cpp │ │ │ ├── replica_backup_manager.h │ │ │ ├── replica_backup_server.cpp │ │ │ ├── replica_backup_server.h │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── config-test.ini │ │ │ ├── main.cpp │ │ │ ├── replica_backup_manager_test.cpp │ │ │ └── run.sh │ │ ├── bulk_load/ │ │ │ ├── replica_bulk_loader.cpp │ │ │ ├── replica_bulk_loader.h │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── config-test.ini │ │ │ ├── main.cpp │ │ │ ├── replica_bulk_loader_test.cpp │ │ │ └── run.sh │ │ ├── disk_cleaner.cpp │ │ ├── disk_cleaner.h │ │ ├── duplication/ │ │ │ ├── duplication_pipeline.cpp │ │ │ ├── duplication_pipeline.h │ │ │ ├── duplication_sync_timer.cpp │ │ │ ├── duplication_sync_timer.h │ │ │ ├── load_from_private_log.cpp │ │ │ ├── load_from_private_log.h │ │ │ ├── mutation_batch.cpp │ │ │ ├── mutation_batch.h │ │ │ ├── replica_duplicator.cpp │ │ │ ├── replica_duplicator.h │ │ │ ├── replica_duplicator_manager.cpp │ │ │ ├── replica_duplicator_manager.h │ │ │ ├── replica_follower.cpp │ │ │ ├── replica_follower.h │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── config-test.ini │ │ │ ├── duplication_sync_timer_test.cpp │ │ │ ├── duplication_test_base.h │ │ │ ├── load_from_private_log_test.cpp │ │ │ ├── log.1.0.all_loaded_are_write_empties │ │ │ ├── log.1.0.handle_real_private_log │ │ │ ├── log.1.0.handle_real_private_log2 │ │ │ ├── main.cpp │ │ │ ├── mutation_batch_test.cpp │ │ │ ├── replica_duplicator_manager_test.cpp │ │ │ ├── replica_duplicator_test.cpp │ │ │ ├── replica_follower_test.cpp │ │ │ ├── replica_http_service_test.cpp │ │ │ ├── run.sh │ │ │ └── ship_mutation_test.cpp │ │ ├── log_block.cpp │ │ ├── log_block.h │ │ ├── log_file.cpp │ │ ├── log_file.h │ │ ├── log_file_stream.h │ │ ├── mutation.cpp │ │ ├── mutation.h │ │ ├── mutation_cache.cpp │ │ ├── mutation_cache.h │ │ ├── mutation_log.cpp │ │ ├── mutation_log.h │ │ ├── mutation_log_replay.cpp │ │ ├── mutation_log_utils.cpp │ │ ├── mutation_log_utils.h │ │ ├── prepare_list.cpp │ │ ├── prepare_list.h │ │ ├── replica.cpp │ │ ├── replica.h │ │ ├── replica_2pc.cpp │ │ ├── replica_backup.cpp │ │ ├── replica_check.cpp │ │ ├── replica_chkpt.cpp │ │ ├── replica_config.cpp │ │ ├── replica_context.cpp │ │ ├── replica_context.h │ │ ├── replica_disk_migrator.cpp │ │ ├── replica_disk_migrator.h │ │ ├── replica_failover.cpp │ │ ├── replica_http_service.cpp │ │ ├── replica_http_service.h │ │ ├── replica_init.cpp │ │ ├── replica_learn.cpp │ │ ├── replica_restore.cpp │ │ ├── replica_stub.cpp │ │ ├── replica_stub.h │ │ ├── replica_test_utils.cpp │ │ ├── replica_throttle.cpp │ │ ├── replication_app_base.cpp │ │ ├── replication_service_app.cpp │ │ ├── split/ │ │ │ ├── replica_split_manager.cpp │ │ │ ├── replica_split_manager.h │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── config-test.ini │ │ │ ├── main.cpp │ │ │ ├── replica_split_test.cpp │ │ │ └── run.sh │ │ ├── storage/ │ │ │ ├── CMakeLists.txt │ │ │ └── simple_kv/ │ │ │ ├── CMakeLists.txt │ │ │ ├── clear.sh │ │ │ ├── config.ini │ │ │ ├── run.sh │ │ │ ├── simple_kv.app.example.h │ │ │ ├── simple_kv.client.h │ │ │ ├── simple_kv.code.definition.h │ │ │ ├── simple_kv.main.cpp │ │ │ ├── simple_kv.server.h │ │ │ ├── simple_kv.server.impl.cpp │ │ │ ├── simple_kv.server.impl.h │ │ │ ├── simple_kv.thrift │ │ │ └── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── README.md │ │ │ ├── addcase.sh │ │ │ ├── case-000.act │ │ │ ├── case-000.ini │ │ │ ├── case-001.act │ │ │ ├── case-001.ini │ │ │ ├── case-002.act │ │ │ ├── case-002.ini │ │ │ ├── case-003.act │ │ │ ├── case-003.ini │ │ │ ├── case-004.act │ │ │ ├── case-004.ini │ │ │ ├── case-005.act │ │ │ ├── case-005.ini │ │ │ ├── case-006.act │ │ │ ├── case-006.ini │ │ │ ├── case-100.act │ │ │ ├── case-100.ini │ │ │ ├── case-101.act │ │ │ ├── case-101.ini │ │ │ ├── case-102.act │ │ │ ├── case-102.ini │ │ │ ├── case-103.act │ │ │ ├── case-103.ini │ │ │ ├── case-104.act │ │ │ ├── case-104.ini │ │ │ ├── case-105.act │ │ │ ├── case-105.ini │ │ │ ├── case-106.act │ │ │ ├── case-106.ini │ │ │ ├── case-107.act │ │ │ ├── case-107.ini │ │ │ ├── case-108.act │ │ │ ├── case-108.ini │ │ │ ├── case-109.act │ │ │ ├── case-109.ini │ │ │ ├── case-200.act │ │ │ ├── case-200.ini │ │ │ ├── case-201.act │ │ │ ├── case-201.ini │ │ │ ├── case-202-0.act │ │ │ ├── case-202-0.ini │ │ │ ├── case-202-1.act │ │ │ ├── case-202-1.ini │ │ │ ├── case-203-0.act │ │ │ ├── case-203-0.ini │ │ │ ├── case-204.act │ │ │ ├── case-204.ini │ │ │ ├── case-205.act │ │ │ ├── case-205.ini │ │ │ ├── case-206.act │ │ │ ├── case-206.ini │ │ │ ├── case-207.act │ │ │ ├── case-207.ini │ │ │ ├── case-208.act │ │ │ ├── case-208.ini │ │ │ ├── case-209.act │ │ │ ├── case-209.ini │ │ │ ├── case-210.act │ │ │ ├── case-210.ini │ │ │ ├── case-211.act │ │ │ ├── case-211.ini │ │ │ ├── case-212.act │ │ │ ├── case-212.ini │ │ │ ├── case-213.act │ │ │ ├── case-213.ini │ │ │ ├── case-214.act │ │ │ ├── case-214.ini │ │ │ ├── case-215.act │ │ │ ├── case-215.ini │ │ │ ├── case-216.act │ │ │ ├── case-216.ini │ │ │ ├── case-300-0.act │ │ │ ├── case-300-0.ini │ │ │ ├── case-300-1.act │ │ │ ├── case-300-1.ini │ │ │ ├── case-300-2.act │ │ │ ├── case-300-2.ini │ │ │ ├── case-301.act │ │ │ ├── case-301.ini │ │ │ ├── case-302.act │ │ │ ├── case-302.ini │ │ │ ├── case-303.act │ │ │ ├── case-303.ini │ │ │ ├── case-304.act │ │ │ ├── case-304.ini │ │ │ ├── case-305.act │ │ │ ├── case-305.ini │ │ │ ├── case-306.act │ │ │ ├── case-306.ini │ │ │ ├── case-307.act │ │ │ ├── case-307.ini │ │ │ ├── case-400.act │ │ │ ├── case-400.ini │ │ │ ├── case-401.act │ │ │ ├── case-401.ini │ │ │ ├── case-402.act │ │ │ ├── case-402.ini │ │ │ ├── case-600.act │ │ │ ├── case-600.ini │ │ │ ├── case-601.act │ │ │ ├── case-601.ini │ │ │ ├── case-602.act │ │ │ ├── case-602.ini │ │ │ ├── case-603.act │ │ │ ├── case-603.ini │ │ │ ├── case.cpp │ │ │ ├── case.h │ │ │ ├── checker.cpp │ │ │ ├── checker.h │ │ │ ├── clear.sh │ │ │ ├── client.cpp │ │ │ ├── client.h │ │ │ ├── common.cpp │ │ │ ├── common.h │ │ │ ├── config.ini │ │ │ ├── injector.cpp │ │ │ ├── injector.h │ │ │ ├── run.sh │ │ │ ├── simple_kv.main.cpp │ │ │ ├── simple_kv.server.impl.cpp │ │ │ └── simple_kv.server.impl.h │ │ └── test/ │ │ ├── CMakeLists.txt │ │ ├── backup_block_service_mock.h │ │ ├── clear.sh │ │ ├── cold_backup_context_test.cpp │ │ ├── config-test.ini │ │ ├── log_block_test.cpp │ │ ├── log_file_test.cpp │ │ ├── main.cpp │ │ ├── mock_utils.h │ │ ├── mutation_log_learn_test.cpp │ │ ├── mutation_log_test.cpp │ │ ├── open_replica_test.cpp │ │ ├── replica_disk_migrate_test.cpp │ │ ├── replica_disk_test.cpp │ │ ├── replica_disk_test_base.h │ │ ├── replica_learn_test.cpp │ │ ├── replica_test.cpp │ │ ├── replica_test_base.h │ │ ├── replication_service_test_app.h │ │ ├── run.sh │ │ └── throttling_controller_test.cpp │ ├── runtime/ │ │ ├── CMakeLists.txt │ │ ├── build_config.h │ │ ├── core_main.cpp │ │ ├── dsn.layer2_types.cpp │ │ ├── env.sim.cpp │ │ ├── env.sim.h │ │ ├── fault_injector.cpp │ │ ├── global_config.cpp │ │ ├── message_utils.cpp │ │ ├── nativerun.cpp │ │ ├── profiler.cpp │ │ ├── profiler_header.h │ │ ├── providers.common.cpp │ │ ├── rpc/ │ │ │ ├── CMakeLists.txt │ │ │ ├── asio_net_provider.cpp │ │ │ ├── asio_net_provider.h │ │ │ ├── asio_rpc_session.cpp │ │ │ ├── asio_rpc_session.h │ │ │ ├── dsn_message_parser.cpp │ │ │ ├── dsn_message_parser.h │ │ │ ├── message_parser.cpp │ │ │ ├── message_parser_manager.h │ │ │ ├── network.cpp │ │ │ ├── network.sim.cpp │ │ │ ├── network.sim.h │ │ │ ├── raw_message_parser.cpp │ │ │ ├── raw_message_parser.h │ │ │ ├── request_meta.thrift │ │ │ ├── rpc_engine.cpp │ │ │ ├── rpc_engine.h │ │ │ ├── rpc_message.cpp │ │ │ ├── rpc_task.cpp │ │ │ ├── thrift_message_parser.cpp │ │ │ └── thrift_message_parser.h │ │ ├── scheduler.cpp │ │ ├── scheduler.h │ │ ├── security/ │ │ │ ├── CMakeLists.txt │ │ │ ├── access_controller.cpp │ │ │ ├── access_controller.h │ │ │ ├── client_negotiation.cpp │ │ │ ├── client_negotiation.h │ │ │ ├── init.cpp │ │ │ ├── init.h │ │ │ ├── kinit_context.cpp │ │ │ ├── kinit_context.h │ │ │ ├── meta_access_controller.cpp │ │ │ ├── meta_access_controller.h │ │ │ ├── negotiation.cpp │ │ │ ├── negotiation.h │ │ │ ├── negotiation_manager.cpp │ │ │ ├── negotiation_manager.h │ │ │ ├── negotiation_utils.h │ │ │ ├── replica_access_controller.cpp │ │ │ ├── replica_access_controller.h │ │ │ ├── sasl_client_wrapper.cpp │ │ │ ├── sasl_client_wrapper.h │ │ │ ├── sasl_init.cpp │ │ │ ├── sasl_init.h │ │ │ ├── sasl_server_wrapper.cpp │ │ │ ├── sasl_server_wrapper.h │ │ │ ├── sasl_wrapper.cpp │ │ │ ├── sasl_wrapper.h │ │ │ ├── security.thrift │ │ │ ├── server_negotiation.cpp │ │ │ └── server_negotiation.h │ │ ├── service_api_c.cpp │ │ ├── service_engine.cpp │ │ ├── service_engine.h │ │ ├── sim_clock.h │ │ ├── simulator.cpp │ │ ├── task/ │ │ │ ├── CMakeLists.txt │ │ │ ├── hpc_task_queue.cpp │ │ │ ├── hpc_task_queue.h │ │ │ ├── simple_task_queue.cpp │ │ │ ├── simple_task_queue.h │ │ │ ├── task.cpp │ │ │ ├── task_code.cpp │ │ │ ├── task_engine.cpp │ │ │ ├── task_engine.h │ │ │ ├── task_engine.sim.cpp │ │ │ ├── task_engine.sim.h │ │ │ ├── task_queue.cpp │ │ │ ├── task_spec.cpp │ │ │ ├── task_tracker.cpp │ │ │ └── task_worker.cpp │ │ ├── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── async_call.cpp │ │ │ ├── clear.sh │ │ │ ├── client_negotiation_test.cpp │ │ │ ├── command.txt │ │ │ ├── config-test-corrupt-message.ini │ │ │ ├── config-test-sim.ini │ │ │ ├── config-test.ini │ │ │ ├── corrupt_message.cpp │ │ │ ├── gtest.filter │ │ │ ├── lpc.cpp │ │ │ ├── main.cpp │ │ │ ├── message_reader_test.cpp │ │ │ ├── message_utils_test.cpp │ │ │ ├── meta_access_controller_test.cpp │ │ │ ├── negotiation_manager_test.cpp │ │ │ ├── netprovider.cpp │ │ │ ├── pipeline_test.cpp │ │ │ ├── replica_access_controller_test.cpp │ │ │ ├── rpc.cpp │ │ │ ├── rpc_holder_test.cpp │ │ │ ├── rpc_message.cpp │ │ │ ├── run.sh │ │ │ ├── server_negotiation_test.cpp │ │ │ ├── service_api_c.cpp │ │ │ ├── sim_lock.cpp │ │ │ ├── task_engine.cpp │ │ │ ├── task_test.cpp │ │ │ ├── test_utils.h │ │ │ └── thrift_message_parser_test.cpp │ │ ├── threadpool_code.cpp │ │ ├── tool_api.cpp │ │ ├── tracer.cpp │ │ └── zlocks.cpp │ ├── tools/ │ │ ├── CMakeLists.txt │ │ └── mutation_log_tool.cpp │ ├── utils/ │ │ ├── CMakeLists.txt │ │ ├── alloc.cpp │ │ ├── binary_reader.cpp │ │ ├── binary_writer.cpp │ │ ├── clock.cpp │ │ ├── command_manager.cpp │ │ ├── config_api.cpp │ │ ├── configuration.cpp │ │ ├── coredump.h │ │ ├── coredump.posix.cpp │ │ ├── crc.cpp │ │ ├── error_code.cpp │ │ ├── fail_point.cpp │ │ ├── fail_point_impl.h │ │ ├── filesystem.cpp │ │ ├── flags.cpp │ │ ├── gpid.cpp │ │ ├── latency_tracer.cpp │ │ ├── lockp.std.h │ │ ├── logging.cpp │ │ ├── long_adder.cpp │ │ ├── long_adder_bench/ │ │ │ ├── CMakeLists.txt │ │ │ └── long_adder_bench.cpp │ │ ├── math.cpp │ │ ├── memutil.h │ │ ├── metrics.cpp │ │ ├── output_utils.cpp │ │ ├── process_utils.cpp │ │ ├── rand.cpp │ │ ├── rpc_address.cpp │ │ ├── safe_strerror_posix.cpp │ │ ├── shared_io_service.cpp │ │ ├── shared_io_service.h │ │ ├── simple_logger.cpp │ │ ├── simple_logger.h │ │ ├── string_view.cpp │ │ ├── strings.cpp │ │ ├── test/ │ │ │ ├── CMakeLists.txt │ │ │ ├── TokenBucketTest.cpp │ │ │ ├── TokenBucketTest.h │ │ │ ├── address.cpp │ │ │ ├── autoref_ptr_test.cpp │ │ │ ├── binary_reader_test.cpp │ │ │ ├── clear.sh │ │ │ ├── command_manager.cpp │ │ │ ├── config-bad-section.ini │ │ │ ├── config-dup-key.ini │ │ │ ├── config-dup-section.ini │ │ │ ├── config-empty.ini │ │ │ ├── config-no-key.ini │ │ │ ├── config-no-section.ini │ │ │ ├── config-null-section.ini │ │ │ ├── config-sample.ini │ │ │ ├── config-unmatch-section.ini │ │ │ ├── configuration.cpp │ │ │ ├── endian_test.cpp │ │ │ ├── env.cpp │ │ │ ├── fail_point_test.cpp │ │ │ ├── file_system_test.cpp │ │ │ ├── file_utils.cpp │ │ │ ├── flag_test.cpp │ │ │ ├── fmt_logging_test.cpp │ │ │ ├── hostname_test.cpp │ │ │ ├── join_point_test.cpp │ │ │ ├── json_helper_test.cpp │ │ │ ├── latency_tracer_test.cpp │ │ │ ├── lock.std.cpp │ │ │ ├── logger.cpp │ │ │ ├── logging.cpp │ │ │ ├── long_adder_test.cpp │ │ │ ├── main.cpp │ │ │ ├── memutil_test.cpp │ │ │ ├── metrics_test.cpp │ │ │ ├── nth_element_bench/ │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── nth_element_bench.cpp │ │ │ ├── nth_element_test.cpp │ │ │ ├── nth_element_utils.h │ │ │ ├── output_utils_test.cpp │ │ │ ├── percentile_utils.h │ │ │ ├── priority_queue.cpp │ │ │ ├── rand_test.cpp │ │ │ ├── run.sh │ │ │ ├── sema.cpp │ │ │ ├── smart_pointers_test.cpp │ │ │ ├── string_conv_test.cpp │ │ │ ├── string_view_test.cpp │ │ │ ├── time_utils_test.cpp │ │ │ ├── token_bucket_throttling_controller_test.cpp │ │ │ ├── token_buckets_test.cpp │ │ │ └── utils.cpp │ │ ├── thread_access_checker.cpp │ │ ├── throttling_controller.cpp │ │ ├── throttling_controller.h │ │ ├── time_utils.cpp │ │ ├── token_bucket_throttling_controller.cpp │ │ ├── token_buckets.cpp │ │ ├── utils.cpp │ │ └── zlock_provider.h │ └── zookeeper/ │ ├── CMakeLists.txt │ ├── distributed_lock_service_zookeeper.cpp │ ├── distributed_lock_service_zookeeper.h │ ├── lock_struct.cpp │ ├── lock_struct.h │ ├── lock_types.h │ ├── test/ │ │ ├── CMakeLists.txt │ │ ├── clear.sh │ │ ├── config-test.ini │ │ ├── distributed_lock_zookeeper.cpp │ │ ├── main.cpp │ │ └── run.sh │ ├── zookeeper_error.cpp │ ├── zookeeper_error.h │ ├── zookeeper_session.cpp │ ├── zookeeper_session.h │ ├── zookeeper_session_mgr.cpp │ └── zookeeper_session_mgr.h └── thirdparty/ ├── CMakeLists.txt ├── fix_fds_for_macos.patch ├── fix_s2_for_aarch64.patch └── fix_thrift_for_cpp11.patch