对于SSD使用SPDK作为NVMe driver的好处在于实现了用户态、异步、轮询、无锁等特性。与传统Linux内核中的NVMe driver相比,降低了nvme command的

rocksdb和SPDK相连必须要使用blobfs才可,可以参见https://spdk.io/doc/blobfs.html

首先是下载rocksdb。

git clone -b spdk-v5.14.3 https://github.com/spdk/rocksdb.git

然后进行编译:(SPDK_DIR表示的是本机的SPDK存储位置)

cd rocksdb
make db_bench SPDK_DIR=path/to/spdk

如果报错gflags没有安装的错误,则需要另外安装gflags以及相关的包。

#安装zstd
wget https://github.com/facebook/zstd/archive/v1.1.3.tar.gz
mv v1.1.3.tar.gz zstd-1.1.3.tar.gz
tar zxvf zstd-1.1.3.tar.gz
cd zstd-1.1.3
make && sudo make installyum install snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4-devel
yum install libasan#安装gflags
git clone https://github.com/gflags/gflags.git
cd gflags
mkdir build && cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/home/ruihan.wr/downloads -DBUILD_SHARED_LIBS=1 -DCMAKE_BUILD_TYPE=Release
然后就是环境设置在/root下的bashrc中添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ruihan.wr/downloads/lib
export LIBRARY_PATH=$LIBRARY_PATH:/home/ruihan.wr/downloads/include
然后source /root/.bashrc即可。

首先启动vhost进程,然后执行:

./test/blobfs/mkfs/mkfs blobfs_ocssd.conf  mybdev0

其中blobfs_ocssd.conf相关配置为:

[VirtioUser0]
Path /var/tmp/vhost.0
Type AocBlk
Name mybdev0

然后执行rocskdb中的db_bench即可。

rocksdb和spdk相关推荐

  1. Rocksdb加SPDK改善吞吐能力建设

    01 背景说明 rocksdb是一个被广泛采用的KV系统,其功能已经逐渐演变成很多上层应用的一个基础组件,像Ceph的bluestore,nebula的点边存储,还有tikv系统,底层都是依赖rock ...

  2. 使用rpmbuild对ceph的源码包进行重新打包

    进入ceph源码包下载ceph相关的rpm包和tar包 我们下载的是ceph-12.1.1-0.el7.src.rpmceph L版本的rpm包 执行命令rpmbuild --rebuild ceph ...

  3. 字节跳动在 RocksDB 存储引擎上的改进实践

    本文选自"字节跳动基础架构实践"系列文章. "字节跳动基础架构实践"系列文章是由字节跳动基础架构部门各技术团队及专家倾力打造的技术干货内容,和大家分享团队在基础 ...

  4. Rocksdb的事务(二):完整事务体系的 详细实现

    文章目录 1. 基本事务操作 1.1 TransactionDB -- Pessimistic 1.2 OptimisticTransactionDB 1.3 Read Uncommitted 1.4 ...

  5. 关于 Rocksdb 的 EnvWrapper 作用的小讨论

    临下班前一位做引擎的小伙伴提了个小问题, Rocksdb 实现了非常多的Env backend 这一些backend 可以让用户根据自己需求创建不同 公共接口backend,来实现自己的文件操作或者公 ...

  6. Rocksdb Ribbon Filter : 结合 XOR-filter 以及 高斯消元算法 实现的 高效filter

    文章目录 前言 XOR-filter 实现原理 xor filter 的构造原理 xor filter 构造总结 XOR-filter 和 ADD-filter对比 XOR-filter 在计算上的优 ...

  7. Rocksdb 的 MergeOperator 简单使用记录

    本篇仅仅是一个记录 MergeOperator 的使用方式. Rocksdb 使用MergeOperator 来代替Update 场景中的读改写操作,即用户的一个Update 操作需要调用rocksd ...

  8. Mac 从Makefile 编译 Rocksdb 源码的一些注意事项

    文章目录 前言 Makefile 编译流程 1. 平台变量/环境变量的初始化. 2. 编译需要的源码文件变量初始化. 3. include 目录的设置. 4. 编译的执行逻辑. 问题记录1:可能的打包 ...

  9. Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异

    前言 最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 ...

最新文章

  1. 「绩效领导力:聚焦战略目标有效落地」沙龙圆满落幕
  2. Python将classification_report的结论转化为字典(dict)形式并提取模型的灵敏度(sensitivity)、特异度(specificity)、PPV和NPV指标、混淆矩阵图
  3. Thymeleaf引入公共片段方式
  4. Nginx安装,Nginx静态缓存,Nginx Gzip压缩,Nginx负载均衡,Nginx方向代理,Nginx+Tomcat+Redis做session共享
  5. SQL Server 堆heap 非聚集索引 Nonclustered index 行号键查找RID loopup结合执行计划过程详解
  6. 计算机一级考试试题window,全国计算机等级考试一级Window复习题及答案.doc
  7. CSDN发布博文时出错的截图
  8. 微擎使用腾讯地图拾取坐标
  9. 将Ubuntu中文目录改为英文目录
  10. Field [price] of type [text] is not supported for aggregation [avg]
  11. windows下Graphviz安装及入门教程(附下载链接)
  12. SpringBoot统一返回处理出现cannot be cast to java.lang.String异常
  13. css怎么两线合并,【2人回答】CAD中如何把两条线合并成一条线?-3D溜溜网
  14. 公里与英里的换算c语言函数_80迈=80迈=80公里?过年了许多开车回家的老司机都未必清楚!...
  15. 内存输出流ByteArrayOutputStream
  16. 密码学:流加密法与块加密法
  17. pycharm 自动更正_如何在Android的自动更正词典中添加单词或短语
  18. Java塈百日而求新,念三番未发,其一
  19. java---制表符
  20. web前端面试题之http篇

热门文章

  1. altium designer芯片引脚间距规则过小
  2. 芯片引脚外围电容有何作用?
  3. PostgreSQL 二进制安装
  4. 标准引领市场:四方光电参编《便携式甲醛检测仪》团体标准
  5. SAP的物料编码分析
  6. 百度百科人物创建要求是什么,自己的人物简介怎么上百度百科
  7. 【深度学习】NLP自然语言处理
  8. java判断日期前后_Java丨时间判断谁前谁后
  9. JdbcTemplate 查询数据库 + 具名参数 NamedParameterJdbcTemplate
  10. OKhttp3工具类