将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的更多相关文章

  1. 网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2?

    p { margin-bottom: 0.1in; line-height: 120% } 网站开启https后加密协议始终是TLS1.0如何配置成TLS1.2? 要在服务器上开启 TLSv1.,通常 ...

  2. PLL输出怎么不能配置成我想要的时钟

    如下图,我的clk_out7想配置成160M,十几输出变为了150M

  3. Windows Server 2008R2配置MySQL Cluster并将管理节点和数据节点配置成windows服务

    说明:将mysql的管理节点和数据节点配置成windows服务是为了防止有人手误关闭管理节点或数据节点的dos命令窗口,管理节点或数据节点的命令窗口误关闭可能会造成mysql某台或某几台mysql不能 ...

  4. 将VIM配置成强大的IDE(二)

    将VIM配置成强大的IDE(二) 前面我们已经安装好了vundle这一款强大的插件管理工具. 下面,当然是配置我们需要的插件了. 在VIM下面通过命令 help vundle 我们可以知道,VUNDL ...

  5. Tomcat 配置成https协议

    Tomcat 配置成https协议 在命令提示符窗口,进入Tomcat目录,执行以下命令:  keytool -genkey -alias tomcat -keyalg RSA -keypass ch ...

  6. (转)Tomcat 配置成https协议

    Tomcat 配置成https协议 TomcatXMLServlet  在命令提示符窗口,进入Tomcat目录,执行以下命令: keytool -genkey -alias tomcat -keyal ...

  7. 创建一个MongoDB数据库再到配置成Window服务再设置用户名密码

    1.安装MongoDB数据在官网下载安装 然后在C盘找到C:\Program Files\MongoDB\Server\4.0\bin这个可执行目录 使用cmd进入到这: 2.在C盘根目录创建一个名为 ...

  8. node项目配置成nginx启动

    node项目配置成nginx启动 1.新建ant.conf upstream antNodeJs{ server 127.0.0.1:8000; keepalive 64; } server { li ...

  9. JBoss 7 配置成windows启动服务

    将Jboss7 server 配置成一个windows启动服务的两个文件,部署步骤如下: 1.    先检查是否配置java_home和jboss_home的环境变量,如没配置上先配置,如我的是JBO ...

随机推荐

  1. go channel 概述

    精髓 将资源读进内存-->共享内存,一个个进程/线程进行处理,这是常见模式.go channel 是一种直接在进程/线程之间传递资源的方式,即以通信来共享内存.这便是go的精髓. 扩展-一些名词 ...

  2. 使用buffered流结合byte数组,读入文件中的内容,包括中文字符

    package com.itcast.demo05.Buffered;import java.io.BufferedInputStream;import java.io.FileInputStream ...

  3. Linkerd Service Mesh 授权策略(Server & ServerAuthorization)

    简介 Server 和 ServerAuthorization 是 Linkerd 中的两种策略资源, 用于控制对 mesh 应用程序的入站访问. 在 linkerd 安装期间,policyContr ...

  4. scrapy爬取招聘网站,items转换成dict遇到的问题

    pipelines代码 1 import json 2 3 class TencentJsonPipeline(object): 4 def __init__(self): 5 self.file = ...

  5. Linux下安装中文字体

    目录 一.Centos系列 二.Ubuntu系列 一.Centos系列 1.安装字体库 yum -y install fontconfig 2.添加中文字体,建立存储中文字体的文件夹 mkdir /u ...

  6. Mybatis环境搭建及测试

    1.新建java project,导入相应jar包 本次使用到的mybatis-3.2.7版本 mybatis需要jar包:mybatis-3.2.7.jar.lib文件下的依赖jar mysql驱动 ...

  7. AtCoder Beginner Contest 148 题解

    目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...

  8. CF254A Cards with Numbers 题解

    Content 有 \(2n\) 个数,让你找出两两相等的 \(n\) 对数的编号,或者方案不存在. 数据范围:\(1\leqslant n\leqslant 3\times 10^5,1\leqsl ...

  9. CF1082A Vasya and Book 题解

    Content 给定 \(T\) 组数据,每组数据给出四个整数 \(n,x,y,d\).小 V 有一本 \(n\) 页的书,每次可以恰好翻 \(d\) 页,求从第 \(x\) 页恰好翻到第 \(y\) ...

  10. LuoguP7071 [CSP-J2020] 优秀的拆分 题解

    Content 给定一个数 \(n\),求是否能够拆分成 \(2\) 的正整数次幂的和的形式,并给出具体方案. 数据范围:\(1\leqslant n\leqslant 10^7\). Solutio ...