相关文章推荐
从容的路灯  ·  机器学习 ...·  2 年前    · 
胆小的毛衣  ·  如何在Splashscreen ...·  2 年前    · 
完美的馒头  ·  Ruby On ...·  2 年前    · 
# Basic Usage:
curl http://localhost:9333/dir/assign
{"count":1,"fid":"3,01637037d6","url":"127.0.0.1:8080",
 "publicUrl":"localhost:8080"}
  
  • 指定复制类型
  • # To assign with a specific replication type:
    curl "http://localhost:9333/dir/assign?replication=001"
      
  • 指定申请的文件个数
  • # To specify how many file ids to reserve
    curl "http://localhost:9333/dir/assign?count=5"
      
  • 指定数据中心
  • # To assign a specific data center
    curl "http://localhost:9333/dir/assign?dataCenter=dc1"
    

    ###Lookup volume(查找volumne信息)

    该接口用于确定指定volume是否已被移除

    curl "http://localhost:9333/dir/lookup?volumeId=3&pretty=y"
      "locations": [
          "publicUrl": "localhost:8080",
          "url": "localhost:8080"
      
  • 根据文件id查找
  • # You can actually use the file id to lookup
    curl "http://localhost:9333/dir/lookup?volumeId=3,01637037d6"
      
  • 根据collection查找会快些
  • # If you know the collection, specify it since it will be a little faster
    curl "http://localhost:9333/dir/lookup?volumeId=3&collection=turbo"
    

    Force garbage collection(强制垃圾收集)

    当系统中存在大量删除操作时,已删除文件所在的空间不会同步被回收。
    系统使用一个后台作业去检测volume空间的使用情况,若可用空间大于系统阀值threshold(默认为0.3),那么:

  • vacuum作业将当前volume设为只读状态
  • vacuum创建一个新的volume,将当前volume中可用文件拷贝入其中
  • 切换到新volume.
  • 在没有足够耐心等待这个过程、或者想做一些测试时,可通过以下方式改变这个动作(TODO:第一个案例不太理解,是强制执行垃圾收集的意思吗?)

    curl "http://localhost:9333/vol/vacuum"
    curl "http://localhost:9333/vol/vacuum?garbageThreshold=0.4"
    

    上面这个garbageThreshold是可选参数,该参数不会改变默认的threshold.用户依旧可以指定一个不同的garbageThreshold启动一个新的volume master

    ###Pre-Allocate Volumes(预分配Volume)
    一个Volume一次只能处理一个写操作。如果需要提升并发,用户可以批量预分配volume

    生成4个空volume

    curl "http://localhost:9333/vol/grow?replication=000&count=4"
    {"count":4}
      
  • 指定collection
  • # specify a collection
    curl "http://localhost:9333/vol/grow?collection=turbo&count=4"
      
  • 指定数据中心
  • # specify data center
    curl "http://localhost:9333/vol/grow?dataCenter=dc1&count=4"
    

    ###Check System Status(检测系统状态)

    curl "http://10.0.2.15:9333/cluster/status?pretty=y"
      "IsLeader": true,
      "Leader": "10.0.2.15:9333",
      "Peers": [
        "10.0.2.15:9334",
        "10.0.2.15:9335"
    curl "http://localhost:9333/dir/status?pretty=y"
      "Topology": {
        "DataCenters": [
            "Free": 3,
            "Id": "dc1",
            "Max": 7,
            "Racks": [
                "DataNodes": [
                    "Free": 3,
                    "Max": 7,
                    "PublicUrl": "localhost:8080",
                    "Url": "localhost:8080",
                    "Volumes": 4
                "Free": 3,
                "Id": "DefaultRack",
                "Max": 7
            "Free": 21,
            "Id": "dc3",
            "Max": 21,
            "Racks": [
                "DataNodes": [
                    "Free": 7,
                    "Max": 7,
                    "PublicUrl": "localhost:8081",
                    "Url": "localhost:8081",
                    "Volumes": 0
                "Free": 7,
                "Id": "rack1",
                "Max": 7
                "DataNodes": [
                    "Free": 7,
                    "Max": 7,
                    "PublicUrl": "localhost:8082",
                    "Url": "localhost:8082",
                    "Volumes": 0
                    "Free": 7,
                    "Max": 7,
                    "PublicUrl": "localhost:8083",
                    "Url": "localhost:8083",
                    "Volumes": 0
                "Free": 14,
                "Id": "DefaultRack",
                "Max": 14
        "Free": 24,
        "Max": 28,
        "layouts": [
            "collection": "",
            "replication": "000",
            "writables": [
      "Version": "0.47"