把rocksdb配置成leveldb
将rocksdb配置成leveldb
1.配置方法
配置方式有三种:
第一种适合进行性能测试对比:是以参数形式在运行db_bench或ycsb-c的时候以参数形式将rocksdb将其配置成leveldb。
第二种属于一劳永逸模式,但改回来麻烦:是改动rocksdb的options.h文件的默认参数,以后直接运行就行。这种方式在改之前记得做好备份。
第三种适用于自己写的程序:在函数中新建Options对象,然后使用rocksdb本身提供的函数或直接对属性进行设置,例如:
Options options; // 该函数会将level0_file_num_compaction_trigger(触发level0的compaction的SSTable数量)设为2等等,是rocksdb官方给出的优化,但显然和配置成leveldb没什么关系。 options.OptimizeLevelStyleCompaction(); //将write_buffer_size设置成4MB。 options.write_buffer_size = 4 << 20;
2.参数
相比于leveldb,rocksdb可配置的参数实在是太多了,所以很难保证下面的参数能够覆盖所有不同点。
-bloom_bits,每个key对应的bloom过滤器位数 ,leveldb使用默认的位数,rocksdb若使用默认的该值可以设为-1或默认不动,若不起用bloom过滤器请设置为0。
-block_size,该参数不论rocksdb还是leveldb都默认为4096.
-compression_type,leveldb只使用snappy压缩,rocksdb除snappy外还有zlib、bzip2等,并且其各层之间的压缩方法并一定一致。建议直接设为snappy或者不使用压缩。
-write_buffer_size,leveldb默认4M,rocksdb默认64M。
-key_size, -value_size,leveldb默认key_size为16,value_size为100B,这边直接设置rocksdb参数即可。
-threads,rocksdb虽然是以leveldb向多线程改进,但db_bench默认还是单线程执行,可以将threads设为1或者默认不动。
-open_files,该参数leveldb默认是1000, rocksdb默认是无限制的。
-max_write_buffer_number,rocksdb默认双memtable,这里限制为1。
-max_bytes_for_level_base,leveldb的level1默认100M,rocksdb默认268435456,也就是256M
-cache_size,leveldb和rocskdb默认都是8M
-max_bytes_for_level_base,rocksdb的第0层上限是256M,显然leveldb不是
-leveldb的触发level0层的compaction的文件数量,触发减缓写入文件数量,level0的文件最大数量分别是4,8,12;而rocksdb分别是4,20,24.
3.db_bench
rocksdb在进行本身的db_bench测试的时候可以进行如下配置可以基本化身leveldb,当然其内部还有很多不同的地方,越新的版本越多:
./db_bench -key_size=16 -value_size=100 -num=kv的数量 -threads=1 -write_buffer_size=4194304 -open_files=1000 -benchmarks=写入方式,默认顺序写 -max_write_buffer_number=1 -compression_type=kNoCompression -bloom_bits=0 -cache_size=8388608 -level0_file_num_compaction_trigger=4 -level0_slowdown_writes_trigger=8 -level0_stop_writes_trigger=12 -max_bytes_for_level_base=104857600
或者直接改动rocksdb的options.h文件即可,但记得备份。
另:鬼知道rocksdb怎么这么多参数的,以上不能完全保证。
把rocksdb配置成leveldb的更多相关文章
- 网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2?
p { margin-bottom: 0.1in; line-height: 120% } 网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2? 要在服务器上开启 TLSv1.,通常 ...
- PLL输出怎么不能配置成我想要的时钟
如下图,我的clk_out7想配置成160M,十几输出变为了150M
- Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务
说明:将mysql的管理节点和数据节点配置成windows服务是为了防止有人手误关闭管理节点或数据节点的dos命令窗口,管理节点或数据节点的命令窗口误关闭可能会造成mysql某台或某几台mysql不能 ...
- 将VIM配置成强大的IDE(二)
将VIM配置成强大的IDE(二) 前面我们已经安装好了vundle这一款强大的插件管理工具. 下面,当然是配置我们需要的插件了. 在VIM下面通过命令 help vundle 我们可以知道,VUNDL ...
- Tomcat 配置成https协议
Tomcat 配置成https协议 在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyalg RSA -keypass ch ...
- (转)Tomcat 配置成https协议
Tomcat 配置成https协议 TomcatXMLServlet 在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyal ...
- 创建一个MongoDB数据库再到配置成Window服务再设置用户名密码
1.安装MongoDB数据在官网下载安装 然后在C盘找到C:\Program Files\MongoDB\Server\4.0\bin这个可执行目录 使用cmd进入到这: 2.在C盘根目录创建一个名为 ...
- node项目配置成nginx启动
node项目配置成nginx启动 1.新建ant.conf upstream antNodeJs{ server 127.0.0.1:8000; keepalive 64; } server { li ...
- JBoss 7 配置成windows启动服务
将Jboss7 server 配置成一个windows启动服务的两个文件,部署步骤如下: 1. 先检查是否配置java_home和jboss_home的环境变量,如没配置上先配置,如我的是JBO ...
随机推荐
- linux shell学习之shell流程控制
在linux shell编程中,流程控制结构与语句,也算是shell脚本中的重点了,不了解的朋友,跟随脚本小编一起来学习下吧. linux控制流结构学习. 一,shell控制流结构 1.控制结构 ...
- 通过Jedis操作Redis
package com.yh; import org.junit.After; import org.junit.Before; import org.junit.Test; import redis ...
- Android CameraX 打开摄像头预览
目标很简单,用CameraX打开摄像头预览,实时显示在界面上.看看CameraX有没有Google说的那么好用.先按最简单的来,把预览显示出来. 引入依赖 模块gradle的一些配置,使用的Andro ...
- centos部署配置gogs代码仓库
目录 一.简介 二.部署 三.网页配置 一.简介 Gogs的目标是打造一个最简单.最快速和最轻松的方式搭建自助Git服务.使用Go语言开发使得Gogs能够通过独立的二进制分发,并且支持Go语言支持的 ...
- CPU测试工具
目录 一.简介 二.大量计算 三.大量IO 四.大量进程 一.简介 使用stress-ng是一个 Linux 系统压力测试工具,模拟进程平均负载升高的场景. 使用sysstat来检查监控和分析. mp ...
- Win7远程连接问题:凭据不工作 & 没有授权此用户账户
一 您的凭据不工作 1.问题描述 win7系统远程桌面到某个电脑的一个账户名为admin 的用户,但提示"您的凭据不工作,之前连到 *.*.*.*的凭据无法使用,请输入新凭据",即 ...
- [BUUCTF]PWN6——ciscn_2019_c_1
[BUUCTF]PWN6--ciscn_2019_c_1 题目网址:https://buuoj.cn/challenges#ciscn_2019_c_1 步骤: 例行检查,64位,开启了nx保护 nc ...
- Office365与Office2016差异汇总
以下很多链接来自原来的博客,如果有哪篇"被色情"的,请留言联系我,谢谢! 2020-8-29更新 通用 图片透明度:http://blog.sina.com.cn/s/blog_5 ...
- CF658A Bear and Reverse Radewoosh 题解
Content 一场比赛有 \(n\) 道题目,其中第 \(i\) 道题目的分值为 \(p_i\),需要花费的时间为 \(t_i\).需要说明的是,\(t_i\) 越大,这道题目的难度越大.在第 \( ...
- 在mybatis的@Select中用not in 时
当在mybatis中用not in 时,需要用${LocalOrderNo}这样的形式来代替,而不能用#{LocalOrderNo}(把它当成一个整体的字符串了) "SELECT * FRO ...