golang高性能rocksdb参数配置

2023-05-16

golang高性能rocksdb参数配置

import (
	"errors"
	"log"
	"monorepo/service/autotable/comm/grocksdb"
	"strings"

	"github.com/sirupsen/logrus"
)

func OpenDB(DB_PATH string) (*grocksdb.DB, error) {
	options := grocksdb.NewDefaultOptions()
	options.SetCreateIfMissing(true)
	options.SetMaxFileOpeningThreads(-1)
	options.SetLevelCompactionDynamicLevelBytes(true)

	env := grocksdb.NewDefaultEnv()
	options.SetEnv(env)

	readOptions := grocksdb.NewDefaultReadOptions()
	readOptions.SetFillCache(true)

	options.SetCreateIfMissing(true)
	options.EnableStatistics()
	// memtable
	options.SetWriteBufferSize(128 * 1024 * 1024) // 128M
	env.SetBackgroundThreads(10)
	env.SetHighPriorityBackgroundThreads(1)
	options.SetMaxBackgroundFlushes(10)
	options.SetMaxWriteBufferNumber(16) // total memtable 2G

	// L0
	options.SetLevel0FileNumCompactionTrigger(8) // L0 size: 8 * 128M = 1G
	options.SetLevel0SlowdownWritesTrigger(40)   // slow down when L0 reach 5G
	options.SetLevel0StopWritesTrigger(72)       // stop when L0 reach 9G

	// L1
	options.SetTargetFileSizeBase(128 * 1024 * 1024)    // 128M, same to L0
	options.SetMaxBytesForLevelBase(1024 * 1024 * 1024) // 8 sst in L1, same number and size as L0
	// compaction
	options.SetMaxBackgroundCompactions(40)
	options.SetMaxSubcompactions(4)

	// level num
	options.SetNumLevels(4) // L0: 1G, L1: 1G, L2: 10G, L3: 100G

	// read performance
	options.SetAdviseRandomOnOpen(false) // 开启预读取

	blockBasedTableOptions := grocksdb.NewDefaultBlockBasedTableOptions()
	blockBasedTableOptions.SetBlockCache(grocksdb.NewLRUCache(1024 * 1024 * 1024)) // 1GB
	blockBasedTableOptions.SetCacheIndexAndFilterBlocks(true)
	blockBasedTableOptions.SetPinL0FilterAndIndexBlocksInCache(true)

	options.SetBlockBasedTableFactory(blockBasedTableOptions)

	db, err := grocksdb.OpenDb(options, DB_PATH)

	if err != nil {
		log.Fatalln("OPEN DB error", db, err)
		db.Close()
		return nil, errors.New("fail to open db")
	} else {
		log.Println("OPEN DB success", db)
	}
	return db, nil
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang高性能rocksdb参数配置 的相关文章

  • 学习日志3

    这几天准备用分别用ego planner与fast planner进行飞行仿真 本来准备在双系统的ubuntu上安装ego planner xff08 之前ubuntu上已经安装过vins fusion vins mono与fast pla
  • 学习日志5

    最近老师让我阅读了一篇新文章 xff0c 文章标题如下图 文章通过解决时间分配问题以及通过模型预测轮廓同时控制问题控制 xff08 MPCC xff09 优化能够使四旋翼无人机找到最优轨迹 xff0c 可以快速地避障 xff0c 速度甚至可
  • 万字长文 | 阿里大佬 ssp offer 的后台服务器开发学习路线

    前言 小北去年经历春秋招 xff0c 拿到了不少大厂 offer xff0c 其中包括 sp ssp 等 xff0c 感觉在复习准备校招上还是有一定方法的 xff0c 因为我自己是 Linux C C 43 43 路线 所以这一篇的主题是
  • 看完谷歌大佬的刷题笔记, 我直接手撕了200道 Leetcode 算法题

    如果你刷leetcode觉得吃力 那么一定需要这份谷歌大佬的leetcode刷题笔记 在这里推荐一个谷歌大佬的刷题笔记 每一道题的题解都写得非常清楚 作者在美国卡内基梅隆大学攻读硕士学位时 xff0c 为了准备实习秋招 xff0c 他从夏天
  • JVM中的栈区域

    一 栈 xff1a 在JVM中也叫栈内存 xff0c 主要负责java程序的运行 xff0c 栈在线程创建时被创建 xff0c 栈时线程私有的 xff0c 也即每一个线程都有自己的栈空间 xff0c 线程之间的运行不受影响 相互独立 二 栈
  • 初步认识ADRC(自抗扰控制)与应用

    这是一个目录 ADRC的基本原理一 参考资料推荐二 为什么PID好 xff0c 以及 xff0c 为什么PID不够好1 为什么PID好 不依赖于模型的控制器2 为什么PID不够好 PID的缺点 三 ADRC给出的方案 如何保留PID的优点
  • 先进非线性控制方法 INDI 快速部署到PX4用于四旋翼控制(part2)

    目录 一 PX4 v11 的姿态控制解析1 角度环控制2 角速度环控制3 控制分配 二 简易INDI如何部署到PX41 获取角加速度 和 电机转速测量值 xff08 1 xff09 角加速度 xff08 2 xff09 转速 2 具体实现过
  • ubuntu18.04 cv2.VideoCapture无法读取视频

    源代码 xff1a span class token comment 读取视频 span span class token keyword import span cv2 video file span class token operat
  • 关于字符串结束标志‘\0‘的一些见解

    前言 本人是一个刚刚上路的IT新兵 菜鸟 分享一点自己的见解 如果有错误的地方欢迎各位大佬莅临指导 如果这篇文章可以帮助到你 劳请大家点赞转发支持一下 一 39 0 是什么 xff1f 0 是转义字符 xff0c 为了告诉编译器 0 是空字
  • gRPC 基础(二)-- Go 语言版 gRPC-Go

    gRPC Go Github gRPC的Go实现 一个高性能 开源 通用的RPC框架 xff0c 将移动和HTTP 2放在首位 有关更多信息 xff0c 请参阅Go gRPC文档 xff0c 或直接进入快速入门 一 快速入门 本指南通过一个
  • 校验和算法

    原文链接 xff1a http blog chinaunix net uid 26758209 id 3146230 html 校验和算法 经常看计算机网络相关的书时 xff0c 每次看到关于IP或者是UDP报头校验和时 xff0c 都是一
  • PID控制输出PWM核心代码(基于STM32F103)

    注 xff1a 1 如果对于PID控制原理不是很了解 xff0c 可以找些资料看 xff0c 最好先搞懂原理 2 程序中Kp Ki Kd 199 0可根据实际情况自己修改 全局变量 float target 61 30 0 目标温度 flo
  • (已修正精度 1mm左右)Realsense d435i深度相机+Aruco+棋盘格+OpenCV手眼标定全过程记录

    文章目录 2023 5更新 下面为原文 一 前期准备1 1 手眼标定原理1 2 Aruco返回位姿的原理1 3 生成一个Aruco Marker1 4 安装aruco ros包1 5 安装realsense ros包 二 实验环境三 实验过
  • 外贸常用英语词汇

    外贸常用英语词汇 国际贸易 出口信贷 export credit 出口津贴 export subsidy 商品倾销 dumping 外汇倾销 exchange dumping 优惠关税 special preferences 保税仓库 bo
  • Betaflight连接飞控相关问题

    问题描述 xff1a Betaflight连接飞控时 xff0c 若遇到 打开串口失败 xff0c 则为飞控芯片驱动未安装的原因 xff0c 此时 xff0c 在设备管理器中是看不到所连接的硬件的 解决方法 xff1a Betaflight
  • 嵌入式软件开发------指针和内存释放的问题分析

    指针和内存的问题关于指针分配是否要delete的问题 1 请大家在使用指针变量时遵守以下几点 xff0c 可以让你们在编程时 少许多的麻烦 xff0c 以下假设p为某个类型的指针变量 1 定义指针 xff1a a 定义指针变量时赋初值为ty
  • 记录下Qt各版本的下载地址,便于后期查找及下载

    记录下Qt各版本的下载地址 xff0c 便于后期查找及下载 1 所有Qt版本下载地址 xff1a http download qt io archive qt 2 所有Qt Creator下载地址 xff1a http download q
  • 计算机网络 -- RS232接口 ----OSI物理层协议----RS232接口

    个人计算机上的通讯接口之一 xff0c 由电子工业协会 Electronic Industries Association xff0c EIA 所制定的异步传输标准接口 是目前使用最广泛的串行物理接口 xff0c 必须理解 xff1a 1
  • 来自一个前端大神转产品经理后的聊天感悟

    给的学习建议 xff1a 1 推荐给我一本书 锋利的jQuery 2 学会使用思维导图工具 3 课余时间学习理财 4 研发过程中 xff0c 多多留心一些交互 xff0c 自己完善反复琢磨自己的思路 xff08 保证是最简的 xff09 5
  • 算法竞赛入门经典(第二版)-刘汝佳-第三章 数组与字符串 例题+习题(17/18)

    文章目录 说明例题例3 1 UVA 272 TeX 中的引号例3 2 UVA 10082 WERTYU例3 3 UVA 401 回文词例3 4 UVA 340 猜数字游戏的提示例3 5 UVA 1583 生成元例3 6 UVA 1584 环

随机推荐

  • http_parse使用与学习

    最近学习了下http parse解析库 xff0c 是nginx的一个解析http库 xff0c 在解析的过程中 xff0c 它不会调用任何系统调用 xff0c 不会在HEAP上申请内存 xff0c 不会缓存数据 xff0c 并且可以在任意
  • 编译安装googletest

    googleTest git clone https github com google googletest cd googletest mkdir build cd build cmake DBUILD SHARED LIBS 61 O
  • 通过容器打印出容器的启动命令

    使用 runlike sudo apt get install python3 pip sudo apt get install python3 安装runlike pip install runlike 使用 runlike 容器名 例如
  • 使用 supervisor 管理进程

    Supervisor 是一个用 Python 写的进程管理工具 xff0c 可以很方便的用来启动 重启 关闭进程 xff08 不仅仅是 Python 进程 xff09 除了对单个进程的控制 xff0c 还可以同时启动 关闭多个进程 xff0
  • ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection

    遇到错误 xff1a ERRO 0000 unable to determine runtime API version rpc error code 61 Unavailable desc 61 connection error desc
  • kubelet Container runtime network not ready“ networkReady=“NetworkReady=false reason:NetworkPluginNo

    执行 xff1a systemctl status kubelet 报错信息 xff1a E1006 17 36 42 438319 433223 kubelet go 2373 34 Container runtime network n
  • 磁盘划分和磁盘格式化

    文章目录 列出装置的 UUID 等参数parted 列出磁盘的分区表类型与分区信息磁盘分区 xff1a gdisk fdisk用 gdisk 新增分区槽用 gdisk 删除一个分区槽 磁盘格式化 xff08 建立文件系统 xff09 XFS
  • tmux 最新版本安装

    tmux centos系统 安装依赖 yum install openssl devel wget https github com libevent libevent releases download release 2 1 12 st
  • 自动保存恢复tmux会话 关机重启再也不怕

    整个解决方案由三个tmux插件组成 需要注意的是 xff0c 使用这两个 Tmux 插件要求 Tmux 是 1 9 及以上版本 xff0c 如果不符合要求 xff0c 赶紧升级吧 可以参考 xff1a tmux安装最新版本 tpm xff1
  • parse error on line 1, column 4: bare “ in non-quoted-field

    golang报错 xff1a parse error on line 1 column 4 bare 34 in non quoted field 可能的原因是csv是windowns 导出的 xff0c 编码方式是UTF 8 BOM 方式
  • CPU和GPU性能指标收集

    这里的CPU是AMD的芯片 总的性能指标 Total mem Bw Total mem RdBw Total mem WrBw uperf PCIE 上行带宽 上行 网卡到内存 通过 uperf 查看 XGMI uperf NVLink 带
  • PX4 Bootloader解析

    1 引言 半年前入手了Pixhawk V2全套硬件 xff0c 编译好的开源固件也下了 xff0c 四轴也飞了 xff0c 一直想对这套开源飞控进行一个系统地解析 xff0c 由于工作原因一直没时间 最近翻开了PX4飞控源代码 xff0c
  • 进程内存使用

    查看进程内存使用 28028 是进程的pid top p 28028 还可以查看进程的status文件 xff1a cat proc 28028 status VmRSS对应的值就是物理内存占用 内存占用比较多的程序 ps aux sort
  • perf使用

    perf可记录高达700多种events事件 sudo perf list 可以查看可以perf的事件 sudo perf record F 999 e cpu clock faults a g p 28544 sleep 60 制定进程7
  • gperftools

    gperftools 实现了更高性能的多线程的malloc 实现 增加了极好的性能分析工具 gperftools 的前身是 pprof https github com google pprof sudo apt get install a
  • RDMA 设备查看

    1硬件检测 1 1检查硬件是否安装 确认硬件已安装 lspci tvm grep Mellanox 查看OFED驱动版本命令 如果没有驱动可以参考 https km sankuai com page 335338645 安装 rpm qa
  • spark 转换tfrecord 成parquet格式

    读取tfrecord 成parquet文件格式 read tfrecord py coding utf 8 34 34 34 读取tfrecord生成parquet文件格式 34 34 34 import os import time im
  • ffmpeg压缩视频

    安装ffmpeg conda install c conda forge x264 61 61 39 1 161 3030 39 ffmpeg 61 4 3 2 压缩mov视频 ffmpeg i movie mov c v libx264
  • AI行动,解放做表打工人

    1 atomecho 插件介绍 如果你是个 需要做财报 数据新闻的冤种 xff1b 或者是 网上有的我都想要 的囤积狂魔 xff1b 或是沉迷 Ctrl 43 C Ctrl 43 V 的做表工具人 那你一定不陌生 对不上的格式 找不到的数据
  • golang高性能rocksdb参数配置

    golang高性能rocksdb参数配置 import 34 errors 34 34 log 34 34 monorepo service autotable comm grocksdb 34 34 strings 34 34 githu