软硬件结合,分布式数据库存储架构优化实践

本文详细介绍了KaiwuDB的存储架构,包括其采用的分层设计,OLTP与HTAP场景下的KV存储与列存扩展,以及针对RocksDB的优化,如SPDK+ZNSSSD的硬件加速和准内存引擎。重点讲解了如何通过软硬件结合和内存优化提升存储性能。

本文将介绍分布式数据库--KaiwuDB 的存储架构,以及 KaiwuDB 技术团队在其 KV 存储引擎基础上所做的优化实践。

KaiwuDB 整体存储架构

KaiwuDB 采用分层架构,分为计算层与存储层,其总体架构如下图所示:

image.png

 在 OLTP 场景下,当开发人员向集群发送 SQL 语句时,数据最终会以键值对 KV 的形式对存储层进行读写。每个 KaiwuDB 节点启动时,至少会包含一个存储节点。存储层默认采用 KV 存储引擎 RocksDB 负责存储数据。每个存储实例都可能包含多个 Range,Range 是最底层的 KV 数据单元。Range 使用 Raft 一致性协议在集群间进行复制。

为了支持 HTAP 场景, KaiwuDB 的行存数据会通过 Raft Learner 同步到列存引擎,存储层还扩展了矢量接口,通过列式存储、计算下推、多节点并行计算满足业务应用的 AP 需求。另外存储层还扩展了时序接口,可以进行时序数据管理。

接下来将着重介绍 KaiwuDB 存储层架构中的 KV 存储集群。

RocksDB 引擎
KaiwuDB 的存储层默认采用 RocksDB 来存储数据。RocksDB 是由 Facebook 开源的高性能 KV 存储引擎,读写数据可以是任意字节流,其官方架构如图所示,是一种 LSM-Tree 的实现:

RocksDB架构.png

 RocksDB 写入流程如下:

1、以 batch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值