Skip to content
rockeet edited this page Dec 14, 2018 · 2 revisions
  1. 下载并解压 TerarkDB 核心库 :

    可在 http://terark.com/zh/engines/terarkdb 找到合适的版本,例如:

    wget http://terark-downloads.oss-cn-qingdao.aliyuncs.com/terarkdb/r0.99.1/terark-zip-rocksdb-Linux-x86_64-g%2B%2B-4.8-bmi2-1.tgz
    tar -zxvf terark-zip-rocksdb-Linux-x86_64-g++-4.8-bmi2-1.tgz
    

    r0.99.1 已包含 RocksDB 的动态库(rocksdb 5.17),从而以下步骤 3~4 可以省略,直接使用这个 tar 包中的 librocksdb 。

  2. 下载 Terark RocksDB:

    git clone https://github.com/Terark/rocksdb
    git checkout next_gen
    
  3. 下载 Terark 适配层头文件 :

    git clone https://github.com/Terark/terark-zip-rocksdb.git
    
  4. 编译 Terark RocksDB :

    export TERARK_ZIP_ROCKSDB_HOME=/path/to/terark-zip-rocksdb
    make shared_lib -j16
    #make static_lib -j16 #按需编译
    

    TERARK_ZIP_ROCKSDB_HOME 即步骤 3 中下载的文件路径。

  5. 将 Terark RocksDB 连接至 Pika :

    在 Pika 文件夹下执行 make 时加入参数 TERARKDB_PATHROCKSDB_PATH,用以指示步骤 1 和 2 中下载的文件夹的路径。

    动态连接 Terark :

        export TERARKDB_PATH=/path/to/terark-zip-rocksdb 
        export ROCKSDB_PATH=/path/to/rocksdb
        export USE_STATIC_TERARKDB=0 #可以不指定,默认即动态连接
        make 360=1
    

    静态连接 Terark(r0.99.1 中无静态库,暂不支持静态连接) :

        export TERARKDB_PATH=/path/to/terark-zip-rocksdb 
        export ROCKSDB_PATH=/path/to/rocksdb
        export USE_STATIC_TERARKDB=1 #强制静态连接 terark
        make 360=1
    

  在编译时也可以选择不定义 TERARKDB_PATH ,这样就需要在启动 Pika 时使用 LD_PRELOAD。在这种情况下,如果已有的 pika 也是用 rocksdb 5.17(与 terark r0.99.1 相同) 编译并使用了动态连接,那么,已有的这个 pika 就不用重新编译,只需要在启动时使用 LD_PRELOAD 预加载 terark-zip-rocksdb 就可以了。

  1. 启动 pika 和 TerarkDB 设置(详见:TerarkDB 快速开始):
        #如果编译时动态连接了 terark-zip-rocksdb,加上这一行:
        export LD_LIBRARY_PATH=/path/to/terark-zip-rocksdb
    
        #如果编译时未连接 terark-zip-rocksdb,加上这一行:
        export LD_PRELOAD=libterark-zip-rocksdb-r.so
    
        #要使用 TerarkDB,只有这个变量配置是必须的,其它都是可选的
        export TerarkZipTable_localTempDir=/terark-temp
    
        #众多可选配置,如果不设置,默认值也可以工作良好
        export TerarkZipTable_keyPrefixLen=0
        export TerarkZipTable_oldOffsetOf=0
        export TerarkZipTable_enable_partial_remove=1
        export TerarkZipTable_offsetArrayBlockUnits=128
        export TerarkZipTable_indexCacheRatio=0
        export TerarkZipTable_sampleRatio=0.02
        export TerarkZipTable_write_buffer_size=2G
        export TerarkZipTable_target_file_size_base=10G
        export TerarkZipTable_level0_file_num_compaction_trigger=5
        export TerarkZipTable_level0_slowdown_writes_trigger=30
        export TerarkZipTable_level0_stop_writes_trigger=60
        export TerarkZipTable_max_subcompactions=4
        export TerarkZipTable_warmUpIndexOnOpen=1
        export TerarkZipTable_minPreadLen=0
        export TerarkZipTable_cacheCapacityBytes=0
        export Terark_enableChecksumVerify=0
        export TerarkUseDivSufSort=0
    
    然后启动 Pika :
        ./output/bin/pika -c output/conf/pika.conf