forked from OpenAtomFoundation/pika
-
Notifications
You must be signed in to change notification settings - Fork 9
编译 Terark Pika
rockeet edited this page Dec 14, 2018
·
2 revisions
-
下载并解压 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 。
-
下载 Terark RocksDB:
git clone https://github.com/Terark/rocksdb git checkout next_gen
-
下载 Terark 适配层头文件 :
git clone https://github.com/Terark/terark-zip-rocksdb.git
-
编译 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 中下载的文件路径。 -
将 Terark RocksDB 连接至 Pika :
在 Pika 文件夹下执行 make 时加入参数
TERARKDB_PATH
和ROCKSDB_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 就可以了。
- 启动 pika 和 TerarkDB 设置(详见:TerarkDB 快速开始):
然后启动 Pika :
#如果编译时动态连接了 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
./output/bin/pika -c output/conf/pika.conf