在“拿来主义”的数据库市场中,天云数据坚定不疑地走硬核路线。十余年沉浸在数据库技术世界里,如今天云数据HTAP数据库Hubble融合了Oracle交易和MPP数仓的数据库替代升级,在新型大数据环境中扮演了越来越重要的角色。
酒香也怕巷子深,细说Hubble数据库硬核技术——LSM Tree存储格式。
一、什么是LSM Tree存储格式?
LSM Tree,即日志结构合并树(Log-Structured Merge-Tree),是一种被精心设计的数据结构,常用于处理大量写入的场景。通过对写入操作进行顺序写入优化实现性能提升。
LSM tree 是很多数据库内部的核心数据结构。
二、为什么要用LSM Tree存储格式?
传统关系型数据库使用B-Tree或一些变体作为存储结构,能高效进行查找,但保存在磁盘中时它也有一个明显的缺陷,那就是逻辑上相离很近但物理却可能相隔很远,这就可能造成大量的磁盘随机读写。
随机读写比顺序读写慢很多,为了提升IO性能,我们需要一种能将随机操作变为顺序操作的机制,在海量数据和高吞吐写的场景下,LSM Tree诞生了,LSM 能解决更快速的写,更快速的读。
LSM Tree 通过将数据增删改全部转化为顺序写入从而显著提高写的性能。这个特点在分布式系统上更为看重。
三、Hubble硬核技术价值
Hubble的LSM tree将随机写转化为顺序写,尽量保持日志型数据库的写性能优势,并提供相对较好的读性能。
Hubble的LSM treen 优势:
当有写操作(或update操作)时,写入位于内存的buffer,内存中通过某种数据结构保持key有序;
将数据追加写到磁盘Log文件,以备必要时恢复;
内存中的数据定时或按固定大小刷到磁盘,更新操作不断地写到内存,并不更新磁盘上已有文件;
定时对文件进行合并操作(compaction),消除冗余数据,减少文件数量。
“技术至上,技术人员至上”的理念让天云数据在技术上“开花结果”,述说着属于Hubble的硬核故事。