17

Nebula Graph 特性讲解——动态修改 RocksDB 参数

 3 years ago
source link: https://zhuanlan.zhihu.com/p/212493124
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Nebula Graph 特性讲解——动态修改 RocksDB 参数

最近我们的社区用户 @chenxu14 为 Nebula Graph 带来一项关于动态修改 RocksDB 参数的新功能,具体代码实现可以参看这个 pr:https://github.com/vesoft-inc/nebula/pull/2291。本文就来讲解下这个新功能

由于 Nebula Graph 的底层存储是 RocksDB,因此 RocksDB 的新功能、特性也会一同引入。通过自定义 RocksDB 配置,同样能提升 Nebula Graph 的性能。

通常情况下,在生产环境中我们倾向于使用固定的配置文件管理服务。但在某些时候,能够临时地动态调整参数会对业务维护带来极大的便利。

本次我们讲解的是其中 3 项与 compaction 相关的设置,chenxu14 的 pr 支持的全部可配置项详见连接:https://github.com/vesoft-inc/nebula/pull/2291/commits/ed138e7d6f8e1fcd066ecfbbd7d232132e26e979。下面开始讲解 3 个 compaction 设置项:

  1. soft_pending_compaction_bytes_limit

如果触发此项所设定的值,则会放缓写入速度,限速由 delayed_write_rate 决定

  1. hard_pending_compaction_bytes_limit

如果触发此项所设定的值,则会停止写入操作,以确保 compaction 完成。

  1. max_compaction_bytes

一次 compaction 的最大操作量,通常用于限制一轮 compaction 的大小以控制时长

像有上面这样 3 个 compaction 选项如果可以通过动态修改的方式调整,对大型导入作业之类的场景很有帮助。

在修改配置前,首先我们先获取当前 RocksDB 相关的配置,由于更改某一变量会覆盖其子项,因此读取当前配置是有必要的。在 Nebula Graph 中动态查询、修改配置的方法非常简单,使用 CONFIG 语法即可,详情参见文档 CONFIGS 语法

其次,我们尝试修改 soft_pending_compaction_bytes_limit 这一选项,并确认修改结果

至此,本次特性讲解完毕,遇到问题?上 Nebula Graph 论坛:https://discuss.nebula-graph.com.cn/

喜欢这篇文章?来啦,给我们的 GitHub 点个 star 表鼓励呗~~ ‍♂️ ‍♀️ [手动跪谢]

交流图数据库技术?交个朋友,Nebula Graph 官方小助手微信:NebulaGraphbot 拉你进交流群~~

<br><br> (二维码自动识别)


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK