在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例常规C/C++编程 → curve-v1.2.6高可靠分布式存储系统

curve-v1.2.6高可靠分布式存储系统

常规C/C++编程

下载此实例
  • 开发语言:C/C++
  • 实例大小:7.78M
  • 下载次数:8
  • 浏览次数:72
  • 发布时间:2022-12-17
  • 实例类别:常规C/C++编程
  • 发 布 人:professorlearn
  • 文件格式:.zip
  • 所需积分:10
 相关标签: curve rve

实例介绍

【实例简介】curve-v1.2.6高可靠分布式存储系统

curve是网易开源的高性能、高可用、高可靠分布式存储系统,具有非常良好的扩展性。基于该存储底座可以打造适用于不同应用场景的存储系统,如块存储、对象存储、云原生数据库等。curve的设计开发始终围绕三个理念:一是顺应当前存储硬件设施发展趋势,做到软硬件结合打造顶级的存储产品;二是秉持“Simple Can be harder than complex”,了解问题本质情况下选

【实例截图】

from clipboard
【核心代码】

.
├── curve-1.2.6
│   ├── BUILD
│   ├── CHANGELOG-1.0.md
│   ├── CHANGELOG-1.1.md
│   ├── CHANGELOG-1.2.md
│   ├── CONTRIBUTING.md
│   ├── Dockerfile
│   ├── LICENSE
│   ├── LICENSE_APACHE
│   ├── LICENSE_GPL
│   ├── LICENSE_LGPL
│   ├── Makefile
│   ├── README.md
│   ├── README_en.md
│   ├── WORKSPACE
│   ├── bazel
│   │   ├── etcdclient.BUILD
│   │   ├── gflags.BUILD
│   │   ├── glog.BUILD
│   │   ├── gmock.BUILD
│   │   ├── gtest.BUILD
│   │   ├── jsoncpp.BUILD
│   │   └── leveldb.BUILD
│   ├── build.sh
│   ├── common.bzl
│   ├── conf
│   │   ├── chunkserver.conf
│   │   ├── chunkserver.conf.example
│   │   ├── client.conf
│   │   ├── cs_client.conf
│   │   ├── etcd.conf
│   │   ├── mds.conf
│   │   ├── nginx.conf
│   │   ├── py_client.conf
│   │   ├── s3.conf
│   │   ├── snap_client.conf
│   │   ├── snapshot_clone_server.conf
│   │   └── tools.conf
│   ├── copts.bzl
│   ├── coverage
│   │   ├── check_coverage.sh
│   │   ├── filterbr.py
│   │   ├── gen-coverage-nebd.py
│   │   ├── gen-coverage.py
│   │   ├── gen-coverage2.py
│   │   ├── ut_incremental_check.py
│   │   └── ut_incremental_check_nebd.py
│   ├── curve-ansible
│   │   ├── README.md
│   │   ├── check_ansible_version.yml
│   │   ├── check_chunkserver.yml
│   │   ├── check_debain_package.yml
│   │   ├── check_mds.yml
│   │   ├── clean_curve.yml
│   │   ├── clean_curve_sdk.yml
│   │   ├── clean_nbd.yml
│   │   ├── clean_nebd.yml
│   │   ├── client.ini
│   │   ├── common_tasks
│   │   │   ├── check_chunkserver.yml
│   │   │   ├── check_cluster_healthy_status.yml
│   │   │   ├── check_debain_package.yml
│   │   │   ├── check_docker_exists.yml
│   │   │   ├── check_if_nbd_exists_in_kernel.yml
│   │   │   ├── check_mds.yml
│   │   │   ├── create_dir.yml
│   │   │   ├── create_logical_pool.yml
│   │   │   ├── create_physical_pool.yml
│   │   │   ├── get_chunkserver_number.yml
│   │   │   ├── get_curve_version_from_metric.yml
│   │   │   ├── get_distro_name.yml
│   │   │   ├── get_nebd_version_from_metric.yml
│   │   │   ├── install_with_yum_apt.yml
│   │   │   ├── restart_service.yml
│   │   │   ├── start_service.yml
│   │   │   ├── stop_service.yml
│   │   │   ├── update_config_with_puppet.yml
│   │   │   ├── update_package.yml
│   │   │   ├── wait_copysets_status_healthy.yml
│   │   │   ├── wait_until_server_down.yml
│   │   │   └── wait_until_server_up.yml
│   │   ├── deploy_curve.yml
│   │   ├── deploy_curve_sdk.yml
│   │   ├── deploy_monitor.yml
│   │   ├── deploy_nbd.yml
│   │   ├── deploy_nebd.yml
│   │   ├── deploy_walpool.yml
│   │   ├── group_vars
│   │   │   ├── chunkservers.yml
│   │   │   └── mds.yml
│   │   ├── host_vars
│   │   │   └── localhost.yml
│   │   ├── ping.yml
│   │   ├── roles
│   │   │   ├── clean
│   │   │   │   ├── files
│   │   │   │   │   └── recycle_chunks.sh
│   │   │   │   └── tasks
│   │   │   │       ├── include
│   │   │   │       │   ├── clean_chunkserver.yml
│   │   │   │       │   ├── clean_chunkserver_retain_chunkfilepool.yml
│   │   │   │       │   ├── clean_chunkserver_totally.yml
│   │   │   │       │   ├── clean_chunkserver_with_disk_format.yml
│   │   │   │       │   ├── clean_chunkserver_without_disk_format.yml
│   │   │   │       │   ├── clean_curve_sdk.yml
│   │   │   │       │   ├── clean_etcd.yml
│   │   │   │       │   ├── clean_mds.yml
│   │   │   │       │   ├── clean_nbd.yml
│   │   │   │       │   ├── clean_nebd.yml
│   │   │   │       │   ├── clean_snapshotcloneserver.yml
│   │   │   │       │   └── clean_snapshotcloneserver_nginx.yml
│   │   │   │       └── main.yml
│   │   │   ├── format_chunkserver
│   │   │   │   ├── defaults
│   │   │   │   │   └── main.yml
│   │   │   │   └── tasks
│   │   │   │       ├── include
│   │   │   │       │   ├── prepare_chunkserver_with_disk_format.yml
│   │   │   │       │   └── prepare_chunkserver_without_disk_format.yml
│   │   │   │       └── main.yml
│   │   │   ├── generate_config
│   │   │   │   ├── defaults
│   │   │   │   │   └── main.yml
│   │   │   │   ├── tasks
│   │   │   │   │   ├── include
│   │   │   │   │   │   └── generate_config_with_template.yml
│   │   │   │   │   └── main.yml
│   │   │   │   ├── templates
│   │   │   │   │   ├── chunkserver.conf.j2
│   │   │   │   │   ├── client.conf.j2
│   │   │   │   │   ├── docker-compose.yml.j2
│   │   │   │   │   ├── etcd.conf.yml.j2
│   │   │   │   │   ├── grafana.ini.j2
│   │   │   │   │   ├── mds.conf.j2
│   │   │   │   │   ├── nebd-client.conf.j2
│   │   │   │   │   ├── nebd-server.conf.j2
│   │   │   │   │   ├── nginx.conf.j2
│   │   │   │   │   ├── nginx_config.lua.j2
│   │   │   │   │   ├── prometheus.yml.j2
│   │   │   │   │   ├── s3.conf.j2
│   │   │   │   │   ├── snapshot_clone_server.conf.j2
│   │   │   │   │   ├── snapshot_tools.conf.j2
│   │   │   │   │   ├── tools.conf.j2
│   │   │   │   │   └── topo.json.j2
│   │   │   │   └── vars
│   │   │   │       └── main.yml
│   │   │   ├── grafana_settings
│   │   │   │   └── tasks
│   │   │   │       └── main.yml
│   │   │   ├── install_package
│   │   │   │   ├── defaults
│   │   │   │   │   └── main.yml
│   │   │   │   ├── files
│   │   │   │   │   └── disk_uuid_repair.py
│   │   │   │   ├── tasks
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── copy_file_to_remote.yml
│   │   │   │   │   │   ├── install_curve-chunkserver.yml
│   │   │   │   │   │   ├── install_curve-mds.yml
│   │   │   │   │   │   ├── install_curve-monitor.yml
│   │   │   │   │   │   ├── install_curve-nbd.yml
│   │   │   │   │   │   ├── install_curve-sdk.yml
│   │   │   │   │   │   ├── install_curve-snapshotcloneserver-nginx.yml
│   │   │   │   │   │   ├── install_curve-snapshotcloneserver.yml
│   │   │   │   │   │   ├── install_curve-tools.yml
│   │   │   │   │   │   ├── install_daemon.yml
│   │   │   │   │   │   ├── install_deb_package.yml
│   │   │   │   │   │   ├── install_etcd-daemon.yml
│   │   │   │   │   │   ├── install_etcd.yml
│   │   │   │   │   │   ├── install_jemalloc.yml
│   │   │   │   │   │   ├── install_nebd.yml
│   │   │   │   │   │   ├── install_with_source_code.yml
│   │   │   │   │   │   └── set_curve_lib_dir.yml
│   │   │   │   │   └── main.yml
│   │   │   │   ├── templates
│   │   │   │   │   ├── chunkserver_ctl.sh.j2
│   │   │   │   │   ├── chunkserver_deploy.sh.j2
│   │   │   │   │   ├── etcd-daemon.sh.j2
│   │   │   │   │   ├── mds-daemon.sh.j2
│   │   │   │   │   ├── nebd-daemon.j2
│   │   │   │   │   └── snapshot-daemon.sh.j2
│   │   │   │   └── vars
│   │   │   │       └── main.yml
│   │   │   ├── prepare_software_env
│   │   │   │   └── tasks
│   │   │   │       └── main.yml
│   │   │   ├── rapid_leader_schedule
│   │   │   │   ├── defaults
│   │   │   │   │   └── main.yml
│   │   │   │   ├── tasks
│   │   │   │   │   └── main.yml
│   │   │   │   └── templates
│   │   │   │       └── check_leader_range.sh.j2
│   │   │   ├── restart_service
│   │   │   │   ├── defaults
│   │   │   │   │   └── main.yml
│   │   │   │   ├── tasks
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── append_need_restart_cs_list.yml
│   │   │   │   │   │   ├── check_version_after_restart.yml
│   │   │   │   │   │   ├── restart_chunkserver.yml
│   │   │   │   │   │   ├── restart_etcd.yml
│   │   │   │   │   │   ├── restart_mds.yml
│   │   │   │   │   │   ├── restart_nebd.yml
│   │   │   │   │   │   └── restart_snapshotclone.yml
│   │   │   │   │   └── main.yml
│   │   │   │   └── vars
│   │   │   │       └── main.yml
│   │   │   ├── set_leader_and_follower_list
│   │   │   │   ├── tasks
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── get_all_ip.yml
│   │   │   │   │   │   ├── get_etcd_leader_ip.yml
│   │   │   │   │   │   ├── get_mds_leader_ip.yml
│   │   │   │   │   │   └── get_snapshot_leader_ip.yml
│   │   │   │   │   └── main.yml
│   │   │   │   └── vars
│   │   │   │       └── main.yml
│   │   │   ├── start_service
│   │   │   │   ├── tasks
│   │   │   │   │   ├── include
│   │   │   │   │   │   ├── start_chunkserver.yml
│   │   │   │   │   │   ├── start_etcd.yml
│   │   │   │   │   │   ├── start_mds.yml
│   │   │   │   │   │   ├── start_monitor.yml
│   │   │   │   │   │   ├── start_nebd.yml
│   │   │   │   │   │   ├── start_snapshotcloneserver.yml
│   │   │   │   │   │   └── start_snapshotcloneserver_nginx.yml
│   │   │   │   │   └── main.yml
│   │   │   │   └── vars
│   │   │   │       └── main.yml
│   │   │   └── stop_service
│   │   │       ├── tasks
│   │   │       │   ├── include
│   │   │       │   │   ├── stop_chunkserver.yml
│   │   │       │   │   ├── stop_etcd.yml
│   │   │       │   │   ├── stop_mds.yml
│   │   │       │   │   ├── stop_nebd.yml
│   │   │       │   │   ├── stop_snapshotcloneserver.yml
│   │   │       │   │   └── stop_snapshotcloneserver_nginx.yml
│   │   │       │   └── main.yml
│   │   │       └── vars
│   │   │           └── main.yml
│   │   ├── rolling_update_curve.yml
│   │   ├── rolling_update_curve_sdk.yml
│   │   ├── rolling_update_nbd.yml
│   │   ├── rolling_update_nebd.yml
│   │   ├── server.ini
│   │   ├── start_curve.yml
│   │   ├── start_nebd_server.yml
│   │   ├── stop_curve.yml
│   │   └── stop_nebd_server.yml
│   ├── curve-chunkserver
│   │   └── DEBIAN
│   │       └── control
│   ├── curve-mds
│   │   └── DEBIAN
│   │       ├── control
│   │       └── postinst
│   ├── curve-monitor
│   │   └── DEBIAN
│   │       └── control
│   ├── curve-nginx
│   │   └── DEBIAN
│   │       └── control
│   ├── curve-sdk
│   │   └── DEBIAN
│   │       ├── control
│   │       └── postinst
│   ├── curve-snapshotcloneserver
│   │   └── DEBIAN
│   │       ├── control
│   │       └── postinst
│   ├── curve-snapshotcloneserver-nginx
│   │   ├── app
│   │   │   ├── etc
│   │   │   │   └── config.lua
│   │   │   ├── lib
│   │   │   │   └── resty
│   │   │   │       ├── argutils.lua
│   │   │   │       ├── checkups
│   │   │   │       │   ├── api.lua
│   │   │   │       │   ├── base.lua
│   │   │   │       │   ├── consistent_hash.lua
│   │   │   │       │   ├── dyconfig.lua
│   │   │   │       │   ├── heartbeat.lua
│   │   │   │       │   ├── round_robin.lua
│   │   │   │       │   └── try.lua
│   │   │   │       ├── checkups.lua
│   │   │   │       └── uuid.lua
│   │   │   └── src
│   │   │       ├── init.lua
│   │   │       ├── init_worker.lua
│   │   │       ├── modules
│   │   │       │   ├── httpipe.lua
│   │   │       │   ├── httproxy.lua
│   │   │       │   ├── reqlimit.lua
│   │   │       │   └── utils.lua
│   │   │       └── snapshot.lua
│   │   ├── conf
│   │   │   ├── mime.types
│   │   │   └── nginx.conf
│   │   └── docker
│   │       └── Dockerfile
│   ├── curve-tools
│   │   └── DEBIAN
│   │       └── control
│   ├── curvefs_python
│   │   ├── BUILD_bak
│   │   ├── README
│   │   ├── __init__.py
│   │   ├── cbd_client.cpp
│   │   ├── cbd_client.h
│   │   ├── client.conf
│   │   ├── configure.sh
│   │   ├── curve
│   │   ├── curve_type.h
│   │   ├── curvefs.i
│   │   ├── curvefs.py
│   │   ├── curvefs_tool.py
│   │   ├── curvefs_wrap.cxx
│   │   ├── libcurvefs.h
│   │   ├── parser.py
│   │   ├── setup.py
│   │   └── test.py
│   ├── curvesnapshot_python
│   │   ├── BUILD_bak
│   │   ├── README
│   │   ├── __init__.py
│   │   ├── client.conf
│   │   ├── configure.sh
│   │   ├── curvesnapshot.py
│   │   ├── libcurveSnapshot.cpp
│   │   ├── libcurveSnapshot.h
│   │   ├── libcurve_snapshot.i
│   │   ├── libcurve_snapshot_wrap.cxx
│   │   └── test.py
│   ├── deploy
│   │   └── local
│   │       ├── chunkserver
│   │       │   ├── conf
│   │       │   │   ├── chunkserver.conf.0
│   │       │   │   ├── chunkserver.conf.1
│   │       │   │   ├── chunkserver.conf.2
│   │       │   │   ├── chunkserver.conf.docker1
│   │       │   │   ├── chunkserver.conf.docker2
│   │       │   │   ├── chunkserver.conf.docker3
│   │       │   │   ├── chunkserver.conf.docker4
│   │       │   │   ├── chunkserver_docker.conf.0
│   │       │   │   ├── chunkserver_docker.conf.1
│   │       │   │   └── chunkserver_docker.conf.2
│   │       │   ├── start_chunkservers_locally.sh
│   │       │   ├── start_chunkservers_locally_docker1.sh
│   │       │   ├── start_chunkservers_locally_docker2.sh
│   │       │   ├── start_chunkservers_locally_docker3.sh
│   │       │   ├── start_chunkservers_locally_docker4.sh
│   │       │   └── stop_chunkservers_locally.sh
│   │       └── test
│   │           └── start_multicopyset_io_test.sh
│   ├── docker
│   │   ├── Dockerfile
│   │   ├── base
│   │   │   ├── Dockerfile
│   │   │   └── Makefile
│   │   └── entrypoint.sh
│   ├── docs
│   │   ├── README.md
│   │   ├── cn
│   │   │   ├── build_and_run.md
│   │   │   ├── chunkserver_design.md
│   │   │   ├── curve-client-python-api.md
│   │   │   ├── curve-client.md
│   │   │   ├── curve_ops_tool.md
│   │   │   ├── deploy.md
│   │   │   ├── k8s_csi_interface.md
│   │   │   ├── mds.md
│   │   │   ├── monitor.md
│   │   │   ├── nebd.md
│   │   │   ├── quality-integration-example.md
│   │   │   ├── quality.md
│   │   │   ├── snapshotcloneserver.md
│   │   │   └── snapshotcloneserver_interface.md
│   │   ├── en
│   │   │   ├── chunkserver_design_en.md
│   │   │   ├── client_en.md
│   │   │   ├── mds_en.md
│   │   │   ├── nebd_en.md
│   │   │   ├── quality_en.md
│   │   │   └── snapshotcloneserver_en.md
│   │   └── images
│   │       ├── chunkserver_heartbeat.png
│   │       ├── chunkserverstructure.png
│   │       ├── clone-file-status.png
│   │       ├── clone.png
│   │       ├── curve-client-arch.png
│   │       ├── curve-client-thread-model.png
│   │       ├── curve-file.png
│   │       ├── curve-logo1.png
│   │       ├── curve-logo2.png
│   │       ├── curve-raft-arch-1.png
│   │       ├── grafana-example-1.png
│   │       ├── grafana-example-2.png
│   │       ├── grafana-example-3.png
│   │       ├── grafana-reporter.png
│   │       ├── mds-copyset.png
│   │       ├── mds-heartbeat.png
│   │       ├── mds-nameserver.png
│   │       ├── mds-namespace.png
│   │       ├── mds-schedule-en.png
│   │       ├── mds-schedule.png
│   │       ├── mds-segment-chunk-en.png
│   │       ├── mds-segment-chunk.png
│   │       ├── mds-topology-all.png
│   │       ├── mds-topology-l.png
│   │       ├── monitor.png
│   │       ├── nebd-modules.png
│   │       ├── nebd-overview.jpg
│   │       ├── nebd-part1-write-request-en.png
│   │       ├── nebd-part1-write-request.png
│   │       ├── nebd-part2-heartbeat.png
│   │       ├── quality-auto-abnormal.png
│   │       ├── quality-auto-robotframework.png
│   │       ├── quality-control-1.png
│   │       ├── quality-control-2.png
│   │       ├── quality-cov.png
│   │       ├── quality-process.png
│   │       ├── quality-theory.png
│   │       ├── snap-s3-format.png
│   │       └── snap.png
│   ├── include
│   │   ├── BUILD
│   │   ├── chunkserver
│   │   │   ├── BUILD
│   │   │   └── chunkserver_common.h
│   │   ├── client
│   │   │   ├── BUILD
│   │   │   ├── libcbd.h
│   │   │   ├── libcurve.h
│   │   │   └── libcurve_define.h
│   │   ├── curve_compiler_specific.h
│   │   └── etcdclient
│   │       ├── BUILD
│   │       └── etcdclient.h
│   ├── k8s
│   │   ├── nbd
│   │   │   └── nbd-package
│   │   │       ├── DEBIAN
│   │   │       │   ├── control
│   │   │       │   ├── postinst
│   │   │       │   └── prerm
│   │   │       ├── etc
│   │   │       │   ├── nbd
│   │   │       │   │   └── k8s_curve.conf
│   │   │       │   └── systemd
│   │   │       │       └── system
│   │   │       │           ├── create_curve_volume.service
│   │   │       │           └── data.mount
│   │   │       └── usr
│   │   │           └── bin
│   │   │               ├── mount_curve_clouddisk.sh
│   │   │               └── umount_curve_clouddisk.sh
│   │   └── nebd
│   │       └── nebd-package
│   │           ├── DEBIAN
│   │           │   ├── control
│   │           │   ├── postinst
│   │           │   ├── preinst
│   │           │   └── prerm
│   │           └── etc
│   │               ├── nebd
│   │               │   ├── nebd-client.conf
│   │               │   └── nebd-server.conf
│   │               └── systemd
│   │                   └── system
│   │                       └── nebd-daemon.service
│   ├── localut.sh
│   ├── mk-deb.sh
│   ├── mk-tar.sh
│   ├── monitor
│   │   ├── README.md
│   │   ├── curve-monitor.sh
│   │   ├── docker-compose.yml
│   │   ├── grafana
│   │   │   ├── dashboards
│   │   │   │   ├── chunkserver.json
│   │   │   │   ├── client.json
│   │   │   │   ├── etcd.json
│   │   │   │   ├── mds.json
│   │   │   │   ├── report.json
│   │   │   │   └── snapshotcloneserver.json
│   │   │   ├── grafana.ini
│   │   │   ├── provisioning
│   │   │   │   ├── dashboards
│   │   │   │   │   └── all.yml
│   │   │   │   └── datasources
│   │   │   │       └── all.yml
│   │   │   └── report
│   │   │       └── README
│   │   ├── grafana-report.py
│   │   ├── prometheus
│   │   │   └── prometheus.yml
│   │   ├── target.ini
│   │   ├── target_json.py
│   │   └── update_dashboard.sh
│   ├── nbd
│   │   ├── README.md
│   │   ├── nbd-package
│   │   │   ├── DEBIAN
│   │   │   │   ├── control
│   │   │   │   ├── postinst
│   │   │   │   ├── preinst
│   │   │   │   └── prerm
│   │   │   ├── etc
│   │   │   │   ├── curve
│   │   │   │   │   └── curvetab
│   │   │   │   └── systemd
│   │   │   │       └── system
│   │   │   │           └── map_curve_disk.service
│   │   │   └── usr
│   │   │       └── bin
│   │   │           └── map_curve_disk.sh
│   │   ├── src
│   │   │   ├── BUILD
│   │   │   ├── ImageInstance.cpp
│   │   │   ├── ImageInstance.h
│   │   │   ├── NBDController.cpp
│   │   │   ├── NBDController.h
│   │   │   ├── NBDServer.cpp
│   │   │   ├── NBDServer.h
│   │   │   ├── NBDTool.cpp
│   │   │   ├── NBDTool.h
│   │   │   ├── NBDWatchContext.cpp
│   │   │   ├── NBDWatchContext.h
│   │   │   ├── SafeIO.cpp
│   │   │   ├── SafeIO.h
│   │   │   ├── argparse.cpp
│   │   │   ├── argparse.h
│   │   │   ├── define.h
│   │   │   ├── main.cpp
│   │   │   ├── nbd-netlink.h
│   │   │   ├── texttable.cpp
│   │   │   ├── texttable.h
│   │   │   ├── util.cpp
│   │   │   └── util.h
│   │   └── test
│   │       ├── BUILD
│   │       ├── fake_safe_io.h
│   │       ├── main.cpp
│   │       ├── mock_image_instance.h
│   │       ├── mock_nbd_controller.h
│   │       ├── mock_safe_io.h
│   │       ├── nbd_config_test.cpp
│   │       ├── nbd_server_test.cpp
│   │       ├── nbd_tool_test.cpp
│   │       ├── nbd_watch_context_test.cpp
│   │       └── test_argparse.cpp
│   ├── nebd
│   │   ├── etc
│   │   │   └── nebd
│   │   │       ├── nebd-client.conf
│   │   │       └── nebd-server.conf
│   │   ├── nebd-package
│   │   │   ├── DEBIAN
│   │   │   │   ├── control
│   │   │   │   ├── postinst
│   │   │   │   └── prerm
│   │   │   ├── data
│   │   │   │   ├── log
│   │   │   │   │   └── nebd
│   │   │   │   │       ├── client
│   │   │   │   │       └── server
│   │   │   │   └── nebd
│   │   │   │       └── lock
│   │   │   └── usr
│   │   │       └── bin
│   │   │           └── nebd-daemon
│   │   ├── proto
│   │   │   ├── BUILD
│   │   │   ├── client.proto
│   │   │   ├── heartbeat.proto
│   │   │   └── nebd-common.proto
│   │   ├── src
│   │   │   ├── common
│   │   │   │   ├── BUILD
│   │   │   │   ├── configuration.cpp
│   │   │   │   ├── configuration.h
│   │   │   │   ├── crc32.h
│   │   │   │   ├── file_lock.cpp
│   │   │   │   ├── file_lock.h
│   │   │   │   ├── interrupt_sleep.h
│   │   │   │   ├── name_lock.cpp
│   │   │   │   ├── name_lock.h
│   │   │   │   ├── nebd_version.cpp
│   │   │   │   ├── nebd_version.h
│   │   │   │   ├── posix_wrapper.cpp
│   │   │   │   ├── posix_wrapper.h
│   │   │   │   ├── rw_lock.h
│   │   │   │   ├── stringstatus.cpp
│   │   │   │   ├── stringstatus.h
│   │   │   │   ├── timeutility.h
│   │   │   │   └── uncopyable.h
│   │   │   ├── part1
│   │   │   │   ├── BUILD
│   │   │   │   ├── async_request_closure.cpp
│   │   │   │   ├── async_request_closure.h
│   │   │   │   ├── heartbeat_manager.cpp
│   │   │   │   ├── heartbeat_manager.h
│   │   │   │   ├── libnebd.cpp
│   │   │   │   ├── libnebd.h
│   │   │   │   ├── libnebd_file.cpp
│   │   │   │   ├── libnebd_file.h
│   │   │   │   ├── nebd_client.cpp
│   │   │   │   ├── nebd_client.h
│   │   │   │   ├── nebd_common.h
│   │   │   │   ├── nebd_metacache.cpp
│   │   │   │   └── nebd_metacache.h
│   │   │   └── part2
│   │   │       ├── BUILD
│   │   │       ├── define.h
│   │   │       ├── file_entity.cpp
│   │   │       ├── file_entity.h
│   │   │       ├── file_manager.cpp
│   │   │       ├── file_manager.h
│   │   │       ├── file_service.cpp
│   │   │       ├── file_service.h
│   │   │       ├── heartbeat_manager.cpp
│   │   │       ├── heartbeat_manager.h
│   │   │       ├── heartbeat_service.cpp
│   │   │       ├── heartbeat_service.h
│   │   │       ├── main.cpp
│   │   │       ├── metafile_manager.cpp
│   │   │       ├── metafile_manager.h
│   │   │       ├── nebd_server.cpp
│   │   │       ├── nebd_server.h
│   │   │       ├── request_executor.cpp
│   │   │       ├── request_executor.h
│   │   │       ├── request_executor_curve.cpp
│   │   │       ├── request_executor_curve.h
│   │   │       ├── util.cpp
│   │   │       └── util.h
│   │   └── test
│   │       ├── common
│   │       │   ├── BUILD
│   │       │   ├── configuration_test.cpp
│   │       │   ├── crc32_test.cpp
│   │       │   ├── interruptible_sleeper_test.cpp
│   │       │   ├── posix_wrapper_test.cpp
│   │       │   ├── rw_lock_test.cpp
│   │       │   ├── stringstatus_test.cpp
│   │       │   └── test_name_lock.cpp
│   │       ├── part1
│   │       │   ├── BUILD
│   │       │   ├── fake_file_service.cpp
│   │       │   ├── fake_file_service.h
│   │       │   ├── fake_heartbeat_service.h
│   │       │   ├── heartbeat_manager_unittest.cpp
│   │       │   ├── mock_file_service.h
│   │       │   ├── mock_heartbeat_service.h
│   │       │   ├── nebd_client_unittest.cpp
│   │       │   ├── nebd_lib_unittest.cpp
│   │       │   └── nebd_metacache_unittest.cpp
│   │       ├── part2
│   │       │   ├── BUILD
│   │       │   ├── file_manager_unittest.cpp
│   │       │   ├── file_service_unittest.cpp
│   │       │   ├── heartbeat_manager_unittest.cpp
│   │       │   ├── heartbeat_service_test.cpp
│   │       │   ├── metafile_manager_test.cpp
│   │       │   ├── mock_curve_client.h
│   │       │   ├── mock_file_entity.h
│   │       │   ├── mock_file_manager.h
│   │       │   ├── mock_heartbeat_manager.h
│   │       │   ├── mock_metafile_manager.h
│   │       │   ├── mock_posix_wrapper.h
│   │       │   ├── mock_request_executor.h
│   │       │   ├── test_nebd_server.cpp
│   │       │   └── test_request_executor_curve.cpp
│   │       └── utils
│   │           ├── BUILD
│   │           └── config_generator.h
│   ├── proto
│   │   ├── BUILD
│   │   ├── chunk.proto
│   │   ├── chunkserver.proto
│   │   ├── cli.proto
│   │   ├── cli2.proto
│   │   ├── common.proto
│   │   ├── configuration.proto
│   │   ├── copyset.proto
│   │   ├── curve_storage.proto
│   │   ├── heartbeat.proto
│   │   ├── integrity.proto
│   │   ├── nameserver2.proto
│   │   ├── schedule.proto
│   │   ├── snapshotcloneserver.proto
│   │   └── topology.proto
│   ├── replace-curve-repo.sh
│   ├── robot
│   │   ├── Resources
│   │   │   ├── __init__.py
│   │   │   ├── config
│   │   │   │   ├── __init__.py
│   │   │   │   └── config.py
│   │   │   ├── keywords
│   │   │   │   ├── __init__.py
│   │   │   │   ├── base_operate.py
│   │   │   │   ├── cpu_stress.py
│   │   │   │   ├── deleteforce-test.py
│   │   │   │   ├── deploy.py
│   │   │   │   ├── fault_inject.py
│   │   │   │   ├── mythread.py
│   │   │   │   ├── snapshot_operate.py
│   │   │   │   └── test_curve_stability_nbd.py
│   │   │   ├── lib
│   │   │   │   ├── __init__.py
│   │   │   │   └── shell_operator.py
│   │   │   ├── logger
│   │   │   │   ├── __init__.py
│   │   │   │   └── logger.py
│   │   │   ├── swig
│   │   │   │   ├── __init__.py
│   │   │   │   ├── snapshot_client.py
│   │   │   │   └── swig_operate.py
│   │   │   └── test
│   │   │       ├── __init__.py
│   │   │       └── curve_base_test.py
│   │   ├── ansible_deploy.sh
│   │   ├── curve_choas.txt
│   │   ├── curve_failover_robot.txt
│   │   ├── curve_init.txt
│   │   ├── curve_robot.txt
│   │   └── init_env.sh
│   ├── src
│   │   ├── chunkserver
│   │   │   ├── BUILD
│   │   │   ├── braft_cli_service.cpp
│   │   │   ├── braft_cli_service.h
│   │   │   ├── braft_cli_service2.cpp
│   │   │   ├── braft_cli_service2.h
│   │   │   ├── chunk_closure.cpp
│   │   │   ├── chunk_closure.h
│   │   │   ├── chunk_service.cpp
│   │   │   ├── chunk_service.h
│   │   │   ├── chunk_service_closure.cpp
│   │   │   ├── chunk_service_closure.h
│   │   │   ├── chunkserver.cpp
│   │   │   ├── chunkserver.h
│   │   │   ├── chunkserver_helper.cpp
│   │   │   ├── chunkserver_helper.h
│   │   │   ├── chunkserver_main.cpp
│   │   │   ├── chunkserver_metrics.cpp
│   │   │   ├── chunkserver_metrics.h
│   │   │   ├── chunkserver_service.cpp
│   │   │   ├── chunkserver_service.h
│   │   │   ├── cli.cpp
│   │   │   ├── cli.h
│   │   │   ├── cli2.cpp
│   │   │   ├── cli2.h
│   │   │   ├── clone_copyer.cpp
│   │   │   ├── clone_copyer.h
│   │   │   ├── clone_core.cpp
│   │   │   ├── clone_core.h
│   │   │   ├── clone_manager.cpp
│   │   │   ├── clone_manager.h
│   │   │   ├── clone_task.h
│   │   │   ├── concurrent_apply
│   │   │   │   ├── BUILD
│   │   │   │   ├── concurrent_apply.cpp
│   │   │   │   └── concurrent_apply.h
│   │   │   ├── conf_epoch_file.cpp
│   │   │   ├── conf_epoch_file.h
│   │   │   ├── config_info.cpp
│   │   │   ├── config_info.h
│   │   │   ├── copyset_node.cpp
│   │   │   ├── copyset_node.h
│   │   │   ├── copyset_node_manager.cpp
│   │   │   ├── copyset_node_manager.h
│   │   │   ├── copyset_service.cpp
│   │   │   ├── copyset_service.h
│   │   │   ├── datastore
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_chunkfile.cpp
│   │   │   │   ├── chunkserver_chunkfile.h
│   │   │   │   ├── chunkserver_datastore.cpp
│   │   │   │   ├── chunkserver_datastore.h
│   │   │   │   ├── chunkserver_snapshot.cpp
│   │   │   │   ├── chunkserver_snapshot.h
│   │   │   │   ├── datastore_file_helper.cpp
│   │   │   │   ├── datastore_file_helper.h
│   │   │   │   ├── define.h
│   │   │   │   ├── file_pool.cpp
│   │   │   │   ├── file_pool.h
│   │   │   │   └── filename_operator.h
│   │   │   ├── epoch_map.cpp
│   │   │   ├── epoch_map.h
│   │   │   ├── heartbeat.cpp
│   │   │   ├── heartbeat.h
│   │   │   ├── heartbeat_helper.cpp
│   │   │   ├── heartbeat_helper.h
│   │   │   ├── inflight_throttle.h
│   │   │   ├── op_request.cpp
│   │   │   ├── op_request.h
│   │   │   ├── passive_getfn.cpp
│   │   │   ├── passive_getfn.h
│   │   │   ├── raft_node.h
│   │   │   ├── raftlog
│   │   │   │   ├── BUILD
│   │   │   │   ├── braft_segment.h
│   │   │   │   ├── curve_segment.cpp
│   │   │   │   ├── curve_segment.h
│   │   │   │   ├── curve_segment_log_storage.cpp
│   │   │   │   ├── curve_segment_log_storage.h
│   │   │   │   ├── define.h
│   │   │   │   └── segment.h
│   │   │   ├── raftsnapshot
│   │   │   │   ├── BUILD
│   │   │   │   ├── curve_file_adaptor.h
│   │   │   │   ├── curve_file_service.cpp
│   │   │   │   ├── curve_file_service.h
│   │   │   │   ├── curve_filesystem_adaptor.cpp
│   │   │   │   ├── curve_filesystem_adaptor.h
│   │   │   │   ├── curve_snapshot.cpp
│   │   │   │   ├── curve_snapshot.h
│   │   │   │   ├── curve_snapshot_attachment.cpp
│   │   │   │   ├── curve_snapshot_attachment.h
│   │   │   │   ├── curve_snapshot_copier.cpp
│   │   │   │   ├── curve_snapshot_copier.h
│   │   │   │   ├── curve_snapshot_file_reader.cpp
│   │   │   │   ├── curve_snapshot_file_reader.h
│   │   │   │   ├── curve_snapshot_reader.cpp
│   │   │   │   ├── curve_snapshot_reader.h
│   │   │   │   ├── curve_snapshot_storage.cpp
│   │   │   │   ├── curve_snapshot_storage.h
│   │   │   │   ├── curve_snapshot_writer.cpp
│   │   │   │   ├── curve_snapshot_writer.h
│   │   │   │   └── define.h
│   │   │   ├── register.cpp
│   │   │   ├── register.h
│   │   │   ├── trash.cpp
│   │   │   ├── trash.h
│   │   │   └── uri_paser.h
│   │   ├── client
│   │   │   ├── BUILD
│   │   │   ├── chunk_closure.cpp
│   │   │   ├── chunk_closure.h
│   │   │   ├── chunkserver_broadcaster.cpp
│   │   │   ├── chunkserver_broadcaster.h
│   │   │   ├── chunkserver_client.cpp
│   │   │   ├── chunkserver_client.h
│   │   │   ├── client_common.cpp
│   │   │   ├── client_common.h
│   │   │   ├── client_config.cpp
│   │   │   ├── client_config.h
│   │   │   ├── client_metric.h
│   │   │   ├── config_info.h
│   │   │   ├── copyset_client.cpp
│   │   │   ├── copyset_client.h
│   │   │   ├── file_instance.cpp
│   │   │   ├── file_instance.h
│   │   │   ├── inflight_controller.h
│   │   │   ├── io_condition_varaiable.h
│   │   │   ├── io_tracker.cpp
│   │   │   ├── io_tracker.h
│   │   │   ├── iomanager.h
│   │   │   ├── iomanager4chunk.cpp
│   │   │   ├── iomanager4chunk.h
│   │   │   ├── iomanager4file.cpp
│   │   │   ├── iomanager4file.h
│   │   │   ├── lease_executor.cpp
│   │   │   ├── lease_executor.h
│   │   │   ├── libcbd_ext4.cpp
│   │   │   ├── libcbd_libcurve.cpp
│   │   │   ├── libcurve_client.cpp
│   │   │   ├── libcurve_file.cpp
│   │   │   ├── libcurve_file.h
│   │   │   ├── libcurve_snapshot.cpp
│   │   │   ├── libcurve_snapshot.h
│   │   │   ├── mds_client.cpp
│   │   │   ├── mds_client.h
│   │   │   ├── mds_client_base.cpp
│   │   │   ├── mds_client_base.h
│   │   │   ├── metacache.cpp
│   │   │   ├── metacache.h
│   │   │   ├── metacache_struct.h
│   │   │   ├── request_closure.cpp
│   │   │   ├── request_closure.h
│   │   │   ├── request_context.cpp
│   │   │   ├── request_context.h
│   │   │   ├── request_scheduler.cpp
│   │   │   ├── request_scheduler.h
│   │   │   ├── request_sender.cpp
│   │   │   ├── request_sender.h
│   │   │   ├── request_sender_manager.cpp
│   │   │   ├── request_sender_manager.h
│   │   │   ├── service_helper.cpp
│   │   │   ├── service_helper.h
│   │   │   ├── source_reader.cpp
│   │   │   ├── source_reader.h
│   │   │   ├── splitor.cpp
│   │   │   ├── splitor.h
│   │   │   ├── unstable_helper.cpp
│   │   │   └── unstable_helper.h
│   │   ├── common
│   │   │   ├── BUILD
│   │   │   ├── authenticator.cpp
│   │   │   ├── authenticator.h
│   │   │   ├── bitmap.cpp
│   │   │   ├── bitmap.h
│   │   │   ├── channel_pool.cpp
│   │   │   ├── channel_pool.h
│   │   │   ├── concurrent
│   │   │   │   ├── BUILD
│   │   │   │   ├── bounded_blocking_queue.h
│   │   │   │   ├── concurrent.h
│   │   │   │   ├── count_down_event.h
│   │   │   │   ├── name_lock.cpp
│   │   │   │   ├── name_lock.h
│   │   │   │   ├── rw_lock.h
│   │   │   │   ├── spinlock.h
│   │   │   │   ├── task_queue.h
│   │   │   │   ├── task_thread_pool.h
│   │   │   │   ├── thread_pool.cpp
│   │   │   │   └── thread_pool.h
│   │   │   ├── configuration.cpp
│   │   │   ├── configuration.h
│   │   │   ├── crc32.h
│   │   │   ├── curve_define.h
│   │   │   ├── curve_version.cpp
│   │   │   ├── curve_version.h
│   │   │   ├── define.h
│   │   │   ├── encode.h
│   │   │   ├── fast_align.h
│   │   │   ├── fs_util.h
│   │   │   ├── hash.h
│   │   │   ├── interruptible_sleeper.h
│   │   │   ├── location_operator.cpp
│   │   │   ├── location_operator.h
│   │   │   ├── math_util.h
│   │   │   ├── namespace_define.h
│   │   │   ├── net_common.h
│   │   │   ├── s3_adapter.cpp
│   │   │   ├── s3_adapter.h
│   │   │   ├── snapshotclone
│   │   │   │   ├── BUILD
│   │   │   │   ├── snapshotclone_define.cpp
│   │   │   │   └── snapshotclone_define.h
│   │   │   ├── string_util.h
│   │   │   ├── stringstatus.cpp
│   │   │   ├── stringstatus.h
│   │   │   ├── task_tracker.cpp
│   │   │   ├── task_tracker.h
│   │   │   ├── timeutility.h
│   │   │   ├── uncopyable.h
│   │   │   ├── uuid.h
│   │   │   ├── wait_interval.cpp
│   │   │   └── wait_interval.h
│   │   ├── fs
│   │   │   ├── BUILD
│   │   │   ├── ext4_filesystem_impl.cpp
│   │   │   ├── ext4_filesystem_impl.h
│   │   │   ├── fs_common.h
│   │   │   ├── local_filesystem.cpp
│   │   │   ├── local_filesystem.h
│   │   │   ├── wrap_posix.cpp
│   │   │   └── wrap_posix.h
│   │   ├── kvstorageclient
│   │   │   ├── BUILD
│   │   │   ├── etcd_client.cpp
│   │   │   └── etcd_client.h
│   │   ├── leader_election
│   │   │   ├── BUILD
│   │   │   ├── leader_election.cpp
│   │   │   └── leader_election.h
│   │   ├── mds
│   │   │   ├── chunkserverclient
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_client.cpp
│   │   │   │   ├── chunkserver_client.h
│   │   │   │   ├── chunkserverclient_config.h
│   │   │   │   ├── copyset_client.cpp
│   │   │   │   └── copyset_client.h
│   │   │   ├── common
│   │   │   │   ├── BUILD
│   │   │   │   └── mds_define.h
│   │   │   ├── copyset
│   │   │   │   ├── BUILD
│   │   │   │   ├── copyset_config.h
│   │   │   │   ├── copyset_manager.cpp
│   │   │   │   ├── copyset_manager.h
│   │   │   │   ├── copyset_policy.cpp
│   │   │   │   ├── copyset_policy.h
│   │   │   │   ├── copyset_structure.h
│   │   │   │   ├── copyset_validation.cpp
│   │   │   │   └── copyset_validation.h
│   │   │   ├── heartbeat
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_healthy_checker.cpp
│   │   │   │   ├── chunkserver_healthy_checker.h
│   │   │   │   ├── copyset_conf_generator.cpp
│   │   │   │   ├── copyset_conf_generator.h
│   │   │   │   ├── heartbeat_manager.cpp
│   │   │   │   ├── heartbeat_manager.h
│   │   │   │   ├── heartbeat_service.cpp
│   │   │   │   ├── heartbeat_service.h
│   │   │   │   ├── topo_updater.cpp
│   │   │   │   └── topo_updater.h
│   │   │   ├── main
│   │   │   │   ├── BUILD
│   │   │   │   └── main.cpp
│   │   │   ├── nameserver2
│   │   │   │   ├── BUILD
│   │   │   │   ├── allocstatistic
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── alloc_statistic.cpp
│   │   │   │   │   ├── alloc_statistic.h
│   │   │   │   │   ├── alloc_statistic_helper.cpp
│   │   │   │   │   └── alloc_statistic_helper.h
│   │   │   │   ├── async_delete_snapshot_entity.h
│   │   │   │   ├── chunk_allocator.cpp
│   │   │   │   ├── chunk_allocator.h
│   │   │   │   ├── clean_core.cpp
│   │   │   │   ├── clean_core.h
│   │   │   │   ├── clean_manager.cpp
│   │   │   │   ├── clean_manager.h
│   │   │   │   ├── clean_task.h
│   │   │   │   ├── clean_task_manager.cpp
│   │   │   │   ├── clean_task_manager.h
│   │   │   │   ├── curvefs.cpp
│   │   │   │   ├── curvefs.h
│   │   │   │   ├── file_lock.cpp
│   │   │   │   ├── file_lock.h
│   │   │   │   ├── file_record.cpp
│   │   │   │   ├── file_record.h
│   │   │   │   ├── helper
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── namespace_helper.cpp
│   │   │   │   │   └── namespace_helper.h
│   │   │   │   ├── idgenerator
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── chunk_id_generator.cpp
│   │   │   │   │   ├── chunk_id_generator.h
│   │   │   │   │   ├── etcd_id_generator.cpp
│   │   │   │   │   ├── etcd_id_generator.h
│   │   │   │   │   ├── inode_id_generator.cpp
│   │   │   │   │   └── inode_id_generator.h
│   │   │   │   ├── nameserverMetrics.cpp
│   │   │   │   ├── nameserverMetrics.h
│   │   │   │   ├── namespace_service.cpp
│   │   │   │   ├── namespace_service.h
│   │   │   │   ├── namespace_storage.cpp
│   │   │   │   ├── namespace_storage.h
│   │   │   │   ├── namespace_storage_cache.cpp
│   │   │   │   ├── namespace_storage_cache.h
│   │   │   │   └── task_progress.h
│   │   │   ├── schedule
│   │   │   │   ├── BUILD
│   │   │   │   ├── coordinator.cpp
│   │   │   │   ├── coordinator.h
│   │   │   │   ├── copySetScheduler.cpp
│   │   │   │   ├── leaderScheduler.cpp
│   │   │   │   ├── operator.cpp
│   │   │   │   ├── operator.h
│   │   │   │   ├── operatorController.cpp
│   │   │   │   ├── operatorController.h
│   │   │   │   ├── operatorFactory.cpp
│   │   │   │   ├── operatorFactory.h
│   │   │   │   ├── operatorStep.cpp
│   │   │   │   ├── operatorStep.h
│   │   │   │   ├── rapidLeaderScheduler.cpp
│   │   │   │   ├── recoverScheduler.cpp
│   │   │   │   ├── replicaScheduler.cpp
│   │   │   │   ├── scheduleMetrics.cpp
│   │   │   │   ├── scheduleMetrics.h
│   │   │   │   ├── scheduleService
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── scheduleService.cpp
│   │   │   │   │   └── scheduleService.h
│   │   │   │   ├── schedule_define.h
│   │   │   │   ├── scheduler.cpp
│   │   │   │   ├── scheduler.h
│   │   │   │   ├── scheduler_helper.cpp
│   │   │   │   ├── scheduler_helper.h
│   │   │   │   ├── topoAdapter.cpp
│   │   │   │   └── topoAdapter.h
│   │   │   ├── server
│   │   │   │   ├── BUILD
│   │   │   │   ├── mds.cpp
│   │   │   │   └── mds.h
│   │   │   ├── snapshotcloneclient
│   │   │   │   ├── BUILD
│   │   │   │   ├── snapshotclone_client.cpp
│   │   │   │   └── snapshotclone_client.h
│   │   │   └── topology
│   │   │       ├── BUILD
│   │   │       ├── topology.cpp
│   │   │       ├── topology.h
│   │   │       ├── topology_chunk_allocator.cpp
│   │   │       ├── topology_chunk_allocator.h
│   │   │       ├── topology_config.h
│   │   │       ├── topology_id_generator.cpp
│   │   │       ├── topology_id_generator.h
│   │   │       ├── topology_item.cpp
│   │   │       ├── topology_item.h
│   │   │       ├── topology_metric.cpp
│   │   │       ├── topology_metric.h
│   │   │       ├── topology_service.cpp
│   │   │       ├── topology_service.h
│   │   │       ├── topology_service_manager.cpp
│   │   │       ├── topology_service_manager.h
│   │   │       ├── topology_stat.cpp
│   │   │       ├── topology_stat.h
│   │   │       ├── topology_storage_codec.cpp
│   │   │       ├── topology_storage_codec.h
│   │   │       ├── topology_storge.h
│   │   │       ├── topology_storge_etcd.cpp
│   │   │       ├── topology_storge_etcd.h
│   │   │       ├── topology_token_generator.cpp
│   │   │       └── topology_token_generator.h
│   │   ├── sfs
│   │   │   └── sfsMock.h
│   │   ├── snapshotcloneserver
│   │   │   ├── BUILD
│   │   │   ├── clone
│   │   │   │   ├── clone_closure.h
│   │   │   │   ├── clone_core.cpp
│   │   │   │   ├── clone_core.h
│   │   │   │   ├── clone_reference.cpp
│   │   │   │   ├── clone_reference.h
│   │   │   │   ├── clone_service_manager.cpp
│   │   │   │   ├── clone_service_manager.h
│   │   │   │   ├── clone_task.cpp
│   │   │   │   ├── clone_task.h
│   │   │   │   ├── clone_task_manager.cpp
│   │   │   │   └── clone_task_manager.h
│   │   │   ├── common
│   │   │   │   ├── config.h
│   │   │   │   ├── curvefs_client.cpp
│   │   │   │   ├── curvefs_client.h
│   │   │   │   ├── snapshot_reference.cpp
│   │   │   │   ├── snapshot_reference.h
│   │   │   │   ├── snapshotclone_info.cpp
│   │   │   │   ├── snapshotclone_info.h
│   │   │   │   ├── snapshotclone_meta_store.h
│   │   │   │   ├── snapshotclone_meta_store_etcd.cpp
│   │   │   │   ├── snapshotclone_meta_store_etcd.h
│   │   │   │   ├── snapshotclone_metric.cpp
│   │   │   │   ├── snapshotclone_metric.h
│   │   │   │   ├── snapshotclonecodec.cpp
│   │   │   │   ├── snapshotclonecodec.h
│   │   │   │   ├── task.h
│   │   │   │   ├── task_info.h
│   │   │   │   ├── task_tracker.h
│   │   │   │   ├── thread_pool.cpp
│   │   │   │   └── thread_pool.h
│   │   │   ├── main.cpp
│   │   │   ├── snapshot
│   │   │   │   ├── snapshot_core.cpp
│   │   │   │   ├── snapshot_core.h
│   │   │   │   ├── snapshot_data_store.cpp
│   │   │   │   ├── snapshot_data_store.h
│   │   │   │   ├── snapshot_data_store_s3.cpp
│   │   │   │   ├── snapshot_data_store_s3.h
│   │   │   │   ├── snapshot_service_manager.cpp
│   │   │   │   ├── snapshot_service_manager.h
│   │   │   │   ├── snapshot_task.cpp
│   │   │   │   ├── snapshot_task.h
│   │   │   │   ├── snapshot_task_manager.cpp
│   │   │   │   └── snapshot_task_manager.h
│   │   │   ├── snapshotclone_server.cpp
│   │   │   ├── snapshotclone_server.h
│   │   │   ├── snapshotclone_service.cpp
│   │   │   └── snapshotclone_service.h
│   │   └── tools
│   │       ├── BUILD
│   │       ├── bazel.rc
│   │       ├── chunkserver_client.cpp
│   │       ├── chunkserver_client.h
│   │       ├── chunkserver_tool_factory.cpp
│   │       ├── chunkserver_tool_factory.h
│   │       ├── chunkserver_tool_main.cpp
│   │       ├── common.cpp
│   │       ├── common.h
│   │       ├── consistency_check.cpp
│   │       ├── consistency_check.h
│   │       ├── copyset_check.cpp
│   │       ├── copyset_check.h
│   │       ├── copyset_check_core.cpp
│   │       ├── copyset_check_core.h
│   │       ├── curve_cli.cpp
│   │       ├── curve_cli.h
│   │       ├── curve_format_main.cpp
│   │       ├── curve_meta_tool.cpp
│   │       ├── curve_meta_tool.h
│   │       ├── curve_tool.h
│   │       ├── curve_tool_define.cpp
│   │       ├── curve_tool_define.h
│   │       ├── curve_tool_factory.cpp
│   │       ├── curve_tool_factory.h
│   │       ├── curve_tool_main.cpp
│   │       ├── etcd_client.cpp
│   │       ├── etcd_client.h
│   │       ├── mds_client.cpp
│   │       ├── mds_client.h
│   │       ├── metric_client.cpp
│   │       ├── metric_client.h
│   │       ├── metric_name.h
│   │       ├── namespace_tool.cpp
│   │       ├── namespace_tool.h
│   │       ├── namespace_tool_core.cpp
│   │       ├── namespace_tool_core.h
│   │       ├── raft_log_tool.cpp
│   │       ├── raft_log_tool.h
│   │       ├── schedule_tool.cpp
│   │       ├── schedule_tool.h
│   │       ├── snapshot_check.h
│   │       ├── snapshot_clone_client.cpp
│   │       ├── snapshot_clone_client.h
│   │       ├── status_tool.cpp
│   │       ├── status_tool.h
│   │       ├── version_tool.cpp
│   │       └── version_tool.h
│   ├── test
│   │   ├── backup
│   │   │   ├── client_config_unittest.cpp
│   │   │   ├── context_slab.cpp
│   │   │   ├── context_slab.h
│   │   │   ├── context_slab_unittest.cpp
│   │   │   ├── snapshot_instance.cpp
│   │   │   └── snapshot_instance.h
│   │   ├── chunkserver
│   │   │   ├── BUILD
│   │   │   ├── braft_cli_service2_test.cpp
│   │   │   ├── braft_cli_service_test.cpp
│   │   │   ├── chunk_service_test.cpp
│   │   │   ├── chunk_service_test2.cpp
│   │   │   ├── chunkserver_helper_test.cpp
│   │   │   ├── chunkserver_service_test.cpp
│   │   │   ├── chunkserver_snapshot_test.cpp
│   │   │   ├── chunkserver_test.cpp
│   │   │   ├── chunkserver_test_util.cpp
│   │   │   ├── chunkserver_test_util.h
│   │   │   ├── cli2_test.cpp
│   │   │   ├── cli_test.cpp
│   │   │   ├── client.cpp
│   │   │   ├── clone
│   │   │   │   ├── BUILD
│   │   │   │   ├── clone_copyer_test.cpp
│   │   │   │   ├── clone_core_test.cpp
│   │   │   │   ├── clone_manager_test.cpp
│   │   │   │   ├── clone_test_util.h
│   │   │   │   ├── clone_unittest_main.cpp
│   │   │   │   ├── mock_clone_copyer.h
│   │   │   │   ├── mock_clone_manager.h
│   │   │   │   └── op_request_test.cpp
│   │   │   ├── concurrent_apply
│   │   │   │   ├── BUILD
│   │   │   │   └── concurrent_apply_test.cpp
│   │   │   ├── conf_epoch_file_test.cpp
│   │   │   ├── copyset_epoch_test.cpp
│   │   │   ├── copyset_node_manager_test.cpp
│   │   │   ├── copyset_node_test.cpp
│   │   │   ├── copyset_service_test.cpp
│   │   │   ├── datastore
│   │   │   │   ├── BUILD
│   │   │   │   ├── datastore_mock_unittest.cpp
│   │   │   │   ├── datastore_unittest_main.cpp
│   │   │   │   ├── file_helper_unittest.cpp
│   │   │   │   ├── filepool_helper.cpp
│   │   │   │   ├── filepool_helper.h
│   │   │   │   ├── filepool_mock_unittest.cpp
│   │   │   │   ├── filepool_unittest.cpp
│   │   │   │   ├── mock_datastore.h
│   │   │   │   └── mock_file_pool.h
│   │   │   ├── fake_datastore.h
│   │   │   ├── heartbeat_helper_test.cpp
│   │   │   ├── heartbeat_test.cpp
│   │   │   ├── heartbeat_test_common.cpp
│   │   │   ├── heartbeat_test_common.h
│   │   │   ├── heartbeat_test_main.cpp
│   │   │   ├── inflight_throttle_test.cpp
│   │   │   ├── metrics_test.cpp
│   │   │   ├── mock_copyset_node.h
│   │   │   ├── mock_copyset_node_manager.h
│   │   │   ├── mock_curve_filesystem_adaptor.h
│   │   │   ├── mock_node.h
│   │   │   ├── multiple_copysets_io_test.cpp
│   │   │   ├── op_request_test.cpp
│   │   │   ├── raftlog
│   │   │   │   ├── BUILD
│   │   │   │   ├── common.cpp
│   │   │   │   ├── common.h
│   │   │   │   ├── test_curve_segment.cpp
│   │   │   │   └── test_curve_segment_log_storage.cpp
│   │   │   ├── raftsnapshot
│   │   │   │   ├── BUILD
│   │   │   │   ├── curve_file_service_test.cpp
│   │   │   │   ├── curve_filesystem_adaptor_mock_unittest.cpp
│   │   │   │   ├── curve_filesystem_adaptor_unittest.cpp
│   │   │   │   ├── curve_snapshot_attachment_test.cpp
│   │   │   │   ├── curve_snapshot_storage_test.cpp
│   │   │   │   ├── curve_snapshot_writer_test.cpp
│   │   │   │   ├── mock_file_reader.h
│   │   │   │   ├── mock_snapshot_attachment.h
│   │   │   │   └── raftsnapshot_chunkfilepool_integration.cpp
│   │   │   ├── server.cpp
│   │   │   └── trash_test.cpp
│   │   ├── client
│   │   │   ├── BUILD
│   │   │   ├── backoff_test.cpp
│   │   │   ├── chunkserverbroadcaster_unittest.cpp
│   │   │   ├── chunkserverclient_unittest.cpp
│   │   │   ├── client_common_unittest.cpp
│   │   │   ├── client_mdsclient_metacache_unittest.cpp
│   │   │   ├── client_metric_test.cpp
│   │   │   ├── client_session_unittest.cpp
│   │   │   ├── client_unittest_main.cpp
│   │   │   ├── client_unstable_helper_test.cpp
│   │   │   ├── client_userifo_unittest.cpp
│   │   │   ├── copyset_client_test.cpp
│   │   │   ├── fake
│   │   │   │   ├── BUILD
│   │   │   │   ├── client_workflow_test.cpp
│   │   │   │   ├── client_workflow_test4snap.cpp
│   │   │   │   ├── fakeChunkserver.h
│   │   │   │   ├── fakeMDS.cpp
│   │   │   │   ├── fakeMDS.h
│   │   │   │   ├── mds_workflow_test.cpp
│   │   │   │   ├── mockMDS.h
│   │   │   │   ├── mock_schedule.cpp
│   │   │   │   └── mock_schedule.h
│   │   │   ├── file_instance_test.cpp
│   │   │   ├── inflight_rpc_control_test.cpp
│   │   │   ├── iotracker_align_test.cpp
│   │   │   ├── iotracker_splitor_unittest.cpp
│   │   │   ├── lease_executor_test.cpp
│   │   │   ├── libcbd_ext4_test.cpp
│   │   │   ├── libcbd_libcurve_test.cpp
│   │   │   ├── libcurve_client_unittest.cpp
│   │   │   ├── libcurve_interface_unittest.cpp
│   │   │   ├── mds_client_test.cpp
│   │   │   ├── mds_failover_test.cpp
│   │   │   ├── mock
│   │   │   │   ├── BUILD
│   │   │   │   ├── mock_chunk_service.h
│   │   │   │   ├── mock_file_client.h
│   │   │   │   └── mock_namespace_service.h
│   │   │   ├── mock_chunkservice.h
│   │   │   ├── mock_curvefs_service.h
│   │   │   ├── mock_meta_cache.h
│   │   │   ├── mock_request_context.h
│   │   │   ├── mock_request_scheduler.h
│   │   │   ├── request_scheduler_test.cpp
│   │   │   ├── request_sender_manager_test.cpp
│   │   │   ├── request_sender_test.cpp
│   │   │   ├── snapshot_service_unittest.cpp
│   │   │   ├── splitor_test.cpp
│   │   │   └── splitor_test2.cpp
│   │   ├── common
│   │   │   ├── BUILD
│   │   │   ├── authenticator_test.cpp
│   │   │   ├── bitmap_test.cpp
│   │   │   ├── channel_pool_test.cpp
│   │   │   ├── configuration_test.cpp
│   │   │   ├── count_down_event_test.cpp
│   │   │   ├── crc32_test.cpp
│   │   │   ├── fast_align_test.cpp
│   │   │   ├── fs_util_test.cpp
│   │   │   ├── interruptible_sleeper_test.cpp
│   │   │   ├── location_operator_test.cpp
│   │   │   ├── math_util_test.cpp
│   │   │   ├── mock_s3_adapter.h
│   │   │   ├── net_common_test.cpp
│   │   │   ├── rw_lock_test.cpp
│   │   │   ├── string_util_test.cpp
│   │   │   ├── stringstatus_test.cpp
│   │   │   ├── task_thread_pool_test.cpp
│   │   │   ├── test_name_lock.cpp
│   │   │   ├── test_timeutility.cpp
│   │   │   └── wait_interval_test.cpp
│   │   ├── failpoint
│   │   │   ├── BUILD
│   │   │   ├── failpoint_test.cpp
│   │   │   └── fiu_local.h
│   │   ├── fs
│   │   │   ├── BUILD
│   │   │   ├── ext4_filesystem_test.cpp
│   │   │   ├── local_filesystem_unittest.cpp
│   │   │   ├── localfs_factory_test.cpp
│   │   │   ├── mock_local_filesystem.h
│   │   │   ├── mock_posix_wrapper.h
│   │   │   └── posix_wrapper_test.cpp
│   │   ├── integration
│   │   │   ├── chunkserver
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_basic_test.cpp
│   │   │   │   ├── chunkserver_clone_recover.cpp
│   │   │   │   ├── chunkserver_concurrent_test.cpp
│   │   │   │   └── datastore
│   │   │   │       ├── BUILD
│   │   │   │       ├── datastore_basic_test.cpp
│   │   │   │       ├── datastore_clone_case_test.cpp
│   │   │   │       ├── datastore_concurrency_test.cpp
│   │   │   │       ├── datastore_exception_test.cpp
│   │   │   │       ├── datastore_integration_base.h
│   │   │   │       ├── datastore_integration_main.cpp
│   │   │   │       ├── datastore_integration_test.cpp
│   │   │   │       ├── datastore_restart_test.cpp
│   │   │   │       ├── datastore_snapshot_case_test.cpp
│   │   │   │       └── datastore_stress_test.cpp
│   │   │   ├── client
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_exception_test.cpp
│   │   │   │   ├── common
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── file_operation.cpp
│   │   │   │   │   └── file_operation.h
│   │   │   │   ├── config
│   │   │   │   │   ├── client.conf
│   │   │   │   │   ├── client.conf.1
│   │   │   │   │   ├── topo_example.json
│   │   │   │   │   ├── topo_example_1.json
│   │   │   │   │   └── unstable
│   │   │   │   │       ├── topo_unstable.json
│   │   │   │   │       ├── topo_unstable.txt
│   │   │   │   │       ├── topo_unstable_small.json
│   │   │   │   │       └── topo_unstable_small.txt
│   │   │   │   ├── mds_exception_test.cpp
│   │   │   │   └── unstable_chunkserver_exception_test.cpp
│   │   │   ├── cluster_common
│   │   │   │   ├── BUILD
│   │   │   │   ├── build.sh
│   │   │   │   ├── cluster.cpp
│   │   │   │   ├── cluster.h
│   │   │   │   ├── cluster_basic_test.cpp
│   │   │   │   ├── cluster_common_topo_1.json
│   │   │   │   ├── cluster_common_topo_1.txt
│   │   │   │   ├── cluster_common_topo_2.json
│   │   │   │   ├── cluster_common_topo_2.txt
│   │   │   │   ├── generate_network.sh
│   │   │   │   └── mds.basic.conf
│   │   │   ├── common
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkservice_op.cpp
│   │   │   │   ├── chunkservice_op.h
│   │   │   │   ├── config_generator.h
│   │   │   │   ├── peer_cluster.cpp
│   │   │   │   └── peer_cluster.h
│   │   │   ├── heartbeat
│   │   │   │   ├── BUILD
│   │   │   │   ├── common.cpp
│   │   │   │   ├── common.h
│   │   │   │   ├── heartbeat_basic_test.cpp
│   │   │   │   └── heartbeat_exception_test.cpp
│   │   │   ├── raft
│   │   │   │   ├── BUILD
│   │   │   │   ├── raft_config_change_test.cpp
│   │   │   │   ├── raft_log_replication_test.cpp
│   │   │   │   ├── raft_snapshot_test.cpp
│   │   │   │   └── raft_vote_test.cpp
│   │   │   └── snapshotcloneserver
│   │   │       ├── BUILD
│   │   │       ├── config
│   │   │       │   ├── topo.json
│   │   │       │   ├── topo2.json
│   │   │       │   └── topo3.json
│   │   │       ├── fake_curvefs_client.cpp
│   │   │       ├── fake_curvefs_client.h
│   │   │       ├── fake_snapshot_data_store.cpp
│   │   │       ├── fake_snapshot_data_store.h
│   │   │       ├── fake_snapshotclone_meta_store.cpp
│   │   │       ├── fake_snapshotclone_meta_store.h
│   │   │       ├── snapshot_test_main.cpp
│   │   │       ├── snapshotcloneserver_common_test.cpp
│   │   │       ├── snapshotcloneserver_concurrent_test.cpp
│   │   │       ├── snapshotcloneserver_exception_test.cpp
│   │   │       ├── snapshotcloneserver_module.cpp
│   │   │       ├── snapshotcloneserver_module.h
│   │   │       ├── snapshotcloneserver_recover_test.cpp
│   │   │       ├── snapshotcloneserver_test.cpp
│   │   │       ├── test_snapshotcloneserver_helpler.cpp
│   │   │       └── test_snapshotcloneserver_helpler.h
│   │   ├── kvstorageclient
│   │   │   ├── BUILD
│   │   │   └── etcdclient_test.cpp
│   │   ├── leaderelection
│   │   │   ├── BUILD
│   │   │   └── leader_election_test.cpp
│   │   ├── mds
│   │   │   ├── chunkserverclient
│   │   │   │   ├── BUILD
│   │   │   │   ├── mock_chunkserverclient.h
│   │   │   │   ├── test_chunkserver_client.cpp
│   │   │   │   └── test_copyset_client.cpp
│   │   │   ├── copyset
│   │   │   │   ├── BUILD
│   │   │   │   ├── test_copyset.cpp
│   │   │   │   ├── test_copyset_manager.cpp
│   │   │   │   ├── test_copyset_validation.cpp
│   │   │   │   └── test_helper.h
│   │   │   ├── heartbeat
│   │   │   │   ├── BUILD
│   │   │   │   ├── chunkserver_healthy_checker_test.cpp
│   │   │   │   ├── common.cpp
│   │   │   │   ├── common.h
│   │   │   │   └── heartbeat_manager_test.cpp
│   │   │   ├── mock
│   │   │   │   ├── BUILD
│   │   │   │   ├── mock_alloc_statistic.h
│   │   │   │   ├── mock_chunkserver.h
│   │   │   │   ├── mock_coordinator.h
│   │   │   │   ├── mock_etcdclient.h
│   │   │   │   ├── mock_snapshotcloneserver.h
│   │   │   │   ├── mock_topoAdapter.h
│   │   │   │   └── mock_topology.h
│   │   │   ├── nameserver2
│   │   │   │   ├── BUILD
│   │   │   │   ├── allocstatistic
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── alloc_statistic_helper_test.cpp
│   │   │   │   │   └── alloc_statistic_test.cpp
│   │   │   │   ├── chunk_allocator_test.cpp
│   │   │   │   ├── clean_core_test.cpp
│   │   │   │   ├── clean_task_manager_test.cpp
│   │   │   │   ├── curvefs_test.cpp
│   │   │   │   ├── fakes.h
│   │   │   │   ├── file_lock_test.cpp
│   │   │   │   ├── file_record_test.cpp
│   │   │   │   ├── helper
│   │   │   │   │   ├── BUILD
│   │   │   │   │   └── namespace_helper_test.cpp
│   │   │   │   ├── idgenerator
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── chunk_id_generator_test.cpp
│   │   │   │   │   ├── etcd_id_generator_test.cpp
│   │   │   │   │   └── inode_id_generator_test.cpp
│   │   │   │   ├── mock
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── mock_chunk_allocate.h
│   │   │   │   │   ├── mock_chunk_id_generator.h
│   │   │   │   │   ├── mock_clean_manager.h
│   │   │   │   │   ├── mock_file_record_manager.h
│   │   │   │   │   ├── mock_inode_id_generator.h
│   │   │   │   │   ├── mock_namespace_storage.h
│   │   │   │   │   ├── mock_snapshotclone_client.h
│   │   │   │   │   └── mock_topology_chunk_allocator.h
│   │   │   │   ├── nameserverMetrics_test.cpp
│   │   │   │   ├── namespace_service_test.cpp
│   │   │   │   ├── namespace_storage_cache_test.cpp
│   │   │   │   └── namespace_storage_test.cpp
│   │   │   ├── schedule
│   │   │   │   ├── BUILD
│   │   │   │   ├── common.cpp
│   │   │   │   ├── common.h
│   │   │   │   ├── coordinator_test.cpp
│   │   │   │   ├── leaderScheduler_test.cpp
│   │   │   │   ├── mock_topoAdapter.h
│   │   │   │   ├── mock_topology_service_manager.h
│   │   │   │   ├── operatorController_test.cpp
│   │   │   │   ├── operatorFactory_test.cpp
│   │   │   │   ├── operatorStep_test.cpp
│   │   │   │   ├── operator_test.cpp
│   │   │   │   ├── rapidLeaderSheduler_test.cpp
│   │   │   │   ├── recoverScheduler_test.cpp
│   │   │   │   ├── replicaScheduler_test.cpp
│   │   │   │   ├── scheduleMetrics_test.cpp
│   │   │   │   ├── scheduleService
│   │   │   │   │   ├── BUILD
│   │   │   │   │   └── scheduleService_test.cpp
│   │   │   │   ├── schedulerPOC
│   │   │   │   │   ├── BUILD
│   │   │   │   │   ├── mock_topology.h
│   │   │   │   │   └── scheduler_poc.cpp
│   │   │   │   ├── scheduler_helper_test.cpp
│   │   │   │   └── topoAdapter_test.cpp
│   │   │   ├── server
│   │   │   │   ├── BUILD
│   │   │   │   └── mds_test.cpp
│   │   │   ├── snapshotcloneclient
│   │   │   │   ├── BUILD
│   │   │   │   └── test_snapshotclone_client.cpp
│   │   │   └── topology
│   │   │       ├── BUILD
│   │   │       ├── mock_topology.h
│   │   │       ├── test_topology.cpp
│   │   │       ├── test_topology_chunk_allocator.cpp
│   │   │       ├── test_topology_helper.cpp
│   │   │       ├── test_topology_helper.h
│   │   │       ├── test_topology_item.cpp
│   │   │       ├── test_topology_metric.cpp
│   │   │       ├── test_topology_service.cpp
│   │   │       ├── test_topology_service_manager.cpp
│   │   │       ├── test_topology_stat.cpp
│   │   │       ├── test_topology_storage_codec.cpp
│   │   │       ├── test_topology_storage_etcd.cpp
│   │   │       └── topology_test_main.cpp
│   │   ├── resources.list
│   │   ├── snapshotcloneserver
│   │   │   ├── BUILD
│   │   │   ├── mock_s3_adapter.h
│   │   │   ├── mock_snapshot_server.h
│   │   │   ├── snapshot_test_main.cpp
│   │   │   ├── test_client.conf
│   │   │   ├── test_clone_core.cpp
│   │   │   ├── test_clone_service_manager.cpp
│   │   │   ├── test_curvefs_client.cpp
│   │   │   ├── test_snapshot_core.cpp
│   │   │   ├── test_snapshot_data_store.cpp
│   │   │   ├── test_snapshot_referance.cpp
│   │   │   ├── test_snapshot_service_manager.cpp
│   │   │   ├── test_snapshotclone_meta_store_etcd.cpp
│   │   │   ├── test_snapshotclone_service.cpp
│   │   │   └── test_snapshotclonecodec.cpp
│   │   ├── tools
│   │   │   ├── BUILD
│   │   │   ├── chunkserver_client_test.cpp
│   │   │   ├── chunkserver_tool_factory_test.cpp
│   │   │   ├── common_test.cpp
│   │   │   ├── config
│   │   │   │   └── data_check.conf
│   │   │   ├── copyset_check_core_test.cpp
│   │   │   ├── copyset_check_test.cpp
│   │   │   ├── curve_cli_test.cpp
│   │   │   ├── curve_meta_tool_test.cpp
│   │   │   ├── curve_tool_factory_test.cpp
│   │   │   ├── curve_tool_test_main.cpp
│   │   │   ├── data_consistency_check_test.cpp
│   │   │   ├── etcd_client_test.cpp
│   │   │   ├── mds_client_test.cpp
│   │   │   ├── metric_client_test.cpp
│   │   │   ├── mock
│   │   │   │   ├── BUILD
│   │   │   │   ├── mock_chunkserver_client.h
│   │   │   │   ├── mock_cli_service.h
│   │   │   │   ├── mock_copyset_check_core.h
│   │   │   │   ├── mock_copyset_service.h
│   │   │   │   ├── mock_etcd_client.h
│   │   │   │   ├── mock_mds_client.h
│   │   │   │   ├── mock_metric_client.h
│   │   │   │   ├── mock_namespace_service.h
│   │   │   │   ├── mock_namespace_tool_core.h
│   │   │   │   ├── mock_schedule_service.h
│   │   │   │   ├── mock_segment_parser.h
│   │   │   │   ├── mock_snapshot_clone_client.h
│   │   │   │   ├── mock_snapshot_read.h
│   │   │   │   ├── mock_topology_service.h
│   │   │   │   └── mock_version_tool.h
│   │   │   ├── namespace_tool_core_test.cpp
│   │   │   ├── namespace_tool_test.cpp
│   │   │   ├── raft_log_tool_test.cpp
│   │   │   ├── schedule_tool_test.cpp
│   │   │   ├── segment_parser_test.cpp
│   │   │   ├── snapshot_clone_client_test.cpp
│   │   │   ├── status_tool_test.cpp
│   │   │   └── version_tool_test.cpp
│   │   └── util
│   │       ├── BUILD
│   │       └── config_generator.h
│   ├── thirdparties
│   │   ├── aws
│   │   │   ├── aws-c-common.BUILD
│   │   │   ├── aws-c-event-stream.BUILD
│   │   │   ├── aws-checksums.BUILD
│   │   │   └── aws.BUILD
│   │   ├── brpc
│   │   │   └── brpc.patch
│   │   ├── etcdclient
│   │   │   ├── Makefile
│   │   │   ├── etcdclient.go
│   │   │   ├── expose-session-for-election.patch
│   │   │   └── objectManager.go
│   │   └── glog
│   │       └── glog.patch
│   ├── tools
│   │   ├── BUILD
│   │   ├── curvefsTool.cpp
│   │   ├── curvefsTool.h
│   │   ├── raft_stat.sh
│   │   ├── snaptool
│   │   │   ├── clone_or_recover.py
│   │   │   ├── common.py
│   │   │   ├── config.py
│   │   │   ├── curltool.py
│   │   │   ├── delete_or_cancel_snap.py
│   │   │   ├── parser.py
│   │   │   ├── queryclone.py
│   │   │   ├── querysnap.py
│   │   │   ├── snaptool
│   │   │   └── snaptool.py
│   │   └── topo_example.json
│   ├── ut.sh
│   └── util
│       ├── build.sh
│       ├── image.sh
│       └── install.sh
├── curve-v1.2.6高可靠分布式存储系统_curve-v1.2.6.zip
└── 说明.htm

257 directories, 1439 files


标签: curve rve

实例下载地址

curve-v1.2.6高可靠分布式存储系统

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警