为什么oceanbase能在普通硬盘上实现高TPS?

为什么oceanbase能在普通硬盘上实现高TPS?

3 个赞

啊,是不是说反了啊

1 个赞

我觉得主要是两方面的设计,让 OB 具有准内存数据库的高效

  1. 基于LSM-Tree的存储引擎架构
    LSM-Tree架构将数据分为两部分:
  • MemTable:存放内存中的增量数据(支持读写),所有的插入、更新和删除操作首先在MemTable中完成。
  • SSTable:磁盘上的基线数据(只读),当MemTable达到一定大小时会转储成SSTable文件。

这种架构的优势在于减少随机IO,通过将随机写操作转化为顺序写,避免传统数据库频繁修改磁盘页的问题,从而显著提高写入性能。

  1. 多级缓存与行缓存技术
    为了优化读取性能,OceanBase实现了多层次的缓存机制:
  • Block Cache:用于缓存SSTable中的数据块。
  • Row Cache:针对单行热点数据的缓存,极大加速点查性能。
  • 布隆过滤器(Bloom Filter):对于“空查”操作(即查找不存在的数据),布隆过滤器可以快速判断是否命中,减少不必要的磁盘访问。

这些机制确保即使数据存储在普通硬盘上,也能通过内存缓存大幅降低I/O延迟,提升OLTP场景下的响应速度。

3 个赞

一定要固态盘,机械硬盘会有问题

2 个赞

官方建议使用固态硬盘。另外所谓高TPS主要是由于将原来文件的随机写,改为类似日志写的顺序结构。

3 个赞

普通SSD :rofl:

1 个赞

@论坛小助手

1 个赞

OceanBase 数据库能够在普通硬盘上实现高 TPS 的原因主要归结于其高效的设计和实现。首先,OceanBase 通过数据编码压缩技术实现高压缩,这种技术基于数据库关系表中不同字段的值域和类型信息,产生一系列的编码方式,比通用的压缩算法更懂数据,从而实现更高的压缩效率。此外,OceanBase 的自创分布式计算引擎能够使系统中多个计算节点同时运行 OLTP 类型的应用和复杂的 OLAP 类型的应用,真正实现了用一套计算引擎同时支持混合负载的能力,这样可以充分利用硬件资源。最后,OceanBase 在版本迭代过程中一直致力于提升数据库性能并降低资源消耗,包括代码优化、算法选择和系统架构设计等方面的持续改进。

详情请参考:

  1. 产品 FAQ
  2. OceanBase 数据库性能的影响因素
2 个赞

好好学习,天天向上 :+1: :+1: :+1: