近期需要为异构引擎做准备, wiredtiger 以其优异的性能(B-tree和LSM-tree都支持)和稳定性(Mongodb的默认存储引擎) 被我们备选为异构引擎里的一个子引擎,后续将深入wiredtiger 引擎原理。这里简单记录一下Wiredtiger 存储引擎的编译记录。

Environment

CPU:Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz 56core
内存: 256G
操作系统:CentOS Linux release 7.4.1708 (Core)
文件系统:XFS
CC: gcc-5.3/bin/gcc
CXX: gcc-5.3/bin/g++
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/gcc-5.3/lib64

编译

  • 获取源码
    git clone https://github.com/wiredtiger/wiredtiger.git

    我使用的是mongodb-4.4版本的引擎:
    git checkout mongodb-4.4

  • 生成编译配置

    mkdir build

    ./configure --prefix=/home/zhg/wiredtiger/build 这里可以通过prefix指定编译后的成果物路径,需要指定绝对路径;如果这里不指定的话就会默认放在/usr/local里面。

    当然wiredtiger的configure还有更多的配置,如下,一般不需要指定:

    –enable-attach
    Configure WiredTiger to sleep and wait for a debugger to attach on failure. DO NOT configure this option in production environments.
    –enable-diagnostic
    Configure WiredTiger to perform various run-time diagnostic tests. DO NOT configure this option in production environments.
    –enable-java
    Build the WiredTiger Java API; requires SWIG and Java JDK.
    –enable-lz4
    Configure WiredTiger for LZ4 compression; see Compressors for more information.
    –enable-python
    Build the WiredTiger Python API; requires SWIG.
    –enable-snappy
    Configure WiredTiger for snappy compression; see Compressors for more information.
    –enable-zlib
    Configure WiredTiger for zlib compression; see Compressors for more information.
    –enable-zstd
    Configure WiredTiger for Zstd compression; see Compressors for more information.
    

    这一步如果执行失败,并且报出如下错误:

    ./configure: line 4619: syntax error near unexpected token `2.2.6'
    ./configure: line 4619: `LT_PREREQ(2.2.6)'
    

    说明当前系统libtool 工具版本比较低,wiredtiger通过configure安装过程中需要借用libtool生成一些后续make 需要的makefile配置文件(gcc/g++/lib64 等相关的binary和库的信息更新)。

    通过安装更高版本的libtool即可解决:

    sudo yum install libtool -y # centos7.4 默认会安装2.4.2版本
    autoreconf -i # 更新新版本libtool 生成的对应版本的conf
    
  • 编译和安装

    make -j && make install

    最后编译成功可以在build目录下看到如下内容:

    $ tree
    .
    ├── bin
    │   └── wt # wiredtiger的binary文件,类似于rocksdb的ldb命令,可以单独创建wiredtiger的db目录
    ├── include
    │   ├── wiredtiger_ext.h
    │   └── wiredtiger.h
    └── lib # wiredtiger的静态库和动态库├── libwiredtiger-10.0.0.so├── libwiredtiger.a├── libwiredtiger.la├── libwiredtiger.so -> libwiredtiger-10.0.0.so└── pkgconfig└── wiredtiger.pc
    

WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决相关推荐

  1. wiredtiger java_为什么PostgreSQL比MongoDB还快之续篇(WiredTiger引擎)

    今年的DTCC大会上,MongoDB中国的唐总带来了<如何在3.0实现7-10倍性能提升>.演讲时顺便倒了点苦水:一些其它数据库喜欢拿MongoDB进行性能PK,但MongoDB之前的开发 ...

  2. mysql 4.0.27 下载,CentOS编译Mysql 4.0.27数据库问题解决

    CentOS编译Mysql 4.0.27数据库问题解决以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 现在好多人都用起了 ...

  3. JavaScript V8引擎编译

    下载: 1. 找到下载源代码的Google网站. 2.提示使用svn命令下载源文件.svn是subversion的意思.请下载subversion控制台客户端. 3.执行提示的命令,即可下载. 编译: ...

  4. G3D游戏引擎——编译

    在支付宝半年了,都是在写Java的核心业务处理,感觉离技术越来越远,所以重新捡起C++,开始游戏引擎的研究,这次选择的游戏引擎是G3D,环境是Mac. 这里的编译我选择的是g++,写一个小的实例,可以 ...

  5. Mace-micro引擎编译与测试

    官方简介 Mobile AI Compute Engine (MACE) 是一个专为移动端异构计算平台(支持Android, iOS, Linux, Windows)优化的神经网络计算框架. 主要从以 ...

  6. Google Filament引擎编译记录

    我之前写过两篇Filament编译文档,就在我的网站上,可以到如下地址找到: 捉不住的鼬鼠的训练场 - 文档 现在又在做安卓有关开发和编译的问题,尤其是涉及到C++原生代码编译so文件,然后安卓端引入 ...

  7. Yara引擎编译和发布

    我们自己设计软件时有很多情况都需要集成yara引擎 项目-管理NuGet程序包,下载几个包并安装 确保是git上最新代码即可编译 package目录下的include和lib是自动添加到项目中的. 发 ...

  8. v8引擎编译全记录2021-2-23

    前言: 在做v8编译之前,请做好踩坑准备,这篇帖子是为了让其他同学遇到我这种类似的问题的时候有一个参考,不一定就一定能解决掉你的问题,毕竟在操作的时候各种因素都会影响最后的结果. 本人在编译时遇到的各 ...

  9. windows下 V8 JS引擎 编译 2016-06-30

    最近需要编译V8,找了找网上的教程都是比较老的,所以自己折腾下编译. 由于google连不上的问题..你需要一个稳定的VPN服务,这个是必须的,如果有代理,可以设置 git config –globa ...

最新文章

  1. 【c语言】计算三角形面面积
  2. 视频: 猫和老鼠真实版
  3. etal斜体吗 参考文献_参考文献类有关论文范例,与日语文提纲2016年,日语文提纲科目相关本科毕业论文范文...
  4. Spark入门 - History Server配置使用
  5. 前端开发学习的基础网站
  6. 在 Rolling Update 中使用 Health Check - 每天5分钟玩转 Docker 容器技术(146)
  7. C++中const关键字的使用总结
  8. 二阶振荡环节的谐振频率_自动控制系统时域分析十三:对数频率特性
  9. delphi php 加密解密_如何恢复被MaMoCrypt勒索软件加密的数据
  10. C++泛型算法的小总结
  11. linux建模工具有哪些,linux uml 免费 建模工具
  12. ZABBIX自动发现Redis端口并监控
  13. RS232标准9针串口引脚定义
  14. kindle 耗电飞速,电池坏了?你可能给kindle“吃了有毒的食物”
  15. hget和get redis_redis hget阻塞 使用redis时遇到的问题 - Redis - 服务器之家
  16. Intellij IDEA 提示 Cannot access com... 解决办法
  17. 腾讯网易涉嫌抄袭旅行青蛙,却抄丢了游戏的核心吸引力
  18. Android Framebuffer介绍及使用
  19. 微软必应壁纸spotlight锁屏壁纸获取
  20. 强制退出程序的六种方法!

热门文章

  1. JS中window.event事件使用详解
  2. [Quick-x]制作新手引导高亮区域方法之二:裁剪模式
  3. PHP basename() 函数
  4. ASP.NET禁用视图状态
  5. win7查看电脑上openCV的版本
  6. java basicstroke_使用java.awt.BasicStroke动画化虚线
  7. python实时读取日志并打印关键字怎么实现_面试宝典_Python.运维开发.0004.用Python实现tail实时输出新增日志?...
  8. nginx php 大小写问题,Nginx实现url请求不区分大小写
  9. svn mysql认证_svnapachemysql 认证搭建
  10. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...