编译GreatSQL with RocksDB引擎
GreatSQL里也能用上RocksDB引擎
1. 前言
RocksDB 是基于Facebook 开源的一种支持事务的、高度可压缩、高性能的MyRocks存储引擎,特别适用于高度压缩和大容量的数据。以下是一些关键特点:
- 高性能: LSM 树结构使得RocksDB在写入密集型负载下表现卓越。它能够处理大量的写入操作,并且在写入操作上有较低的延迟。
- 可压缩存储: 具有高度可压缩的特性,可以有效减小数据在磁盘上的占用空间。
- 事务支持: 支持 MySQL 的事务语义,这使得它适用于要求事务性支持的应用场景。
- 定制化存储格式: 允许用户通过定制化存储格式来满足其特定需求。
- 兼容性: 兼容 MySQL 的 API 和协议。用户可以将 Percona RocksDB 作为替代存储引擎,以满足特定的性能和压缩需求。
总体而言,RocksDB是为了应对大规模、写入密集型的工作负载而设计的,尤其适用于像 Facebook 这样需要高度可压缩、高性能、事务支持的应用场景。
GreatSQL是从Percona Server For MySQL fork过来的,因此也能在GreatSQL中用上RocksDB引擎。但是因为在GreatSQL中进行了MGR优化,部分代码和RocksDB引擎有冲突,因此在默认启用MGR的时候就得关闭RocksDB引擎。在需要RocksDB引擎但不需要MGR的场景下,可以采用本文的方法自行编译以支持RocksDB引擎。
2. 构建编译环境
下载GreatSQL-Docker仓库,并参考其中的GreatSQL-Build项目代码,进行本地编译工作。
$ mkdir -p /opt && cd /opt
$ git clone git@gitee.com:GreatSQL/GreatSQL-Docker.git
$ cd GreatSQL-Docker
$ ls
deppkgs GreatSQL GreatSQL-Build GreatSQL-Shell GreatSQL-Shell-Build LICENSE README.md