暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss存储技术(一)——行存储引擎

suger 2022-12-12
319

OLTP(联机事务处理)系统以高并发读写为主,数据实时性要求非常高,数据以行的形式组织,最适合面向外存设计的行存储引擎。随着内存逐渐变大,服务器上万亿字节(TB)大小的内存已经很常见,内存引擎面向大内存而设计,提高系统的吞吐量和降低业务时延。OLAP(联机分析处理)系统主要面向大数据量分析场景,对数据存储效率、复杂计算效率的要求非常高。列存储引擎可以提供很高的压缩比,同时面向列的计算,CPU 指令高速缓存和数据高速缓存的命中率比较高,计算性能比较好,按需读取列数据,大大减少不必要的磁盘读取,非常适合数据分析场景。openGauss整个系统设计是可插拔、自组装的,并支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。

openGauss存储概览
早期计算机程序通过文件系统管理数据,到了20世纪60年代这种方式就开始不能满足数据管理要求了,用户逐渐对数据并发写入的完整性、高效的检索提出更高的要求。由于机械磁盘的随机读写性能问题,从20世纪80年代开始,大多数数据库一直围绕着减少随机读写磁盘进行设计。主要思路是把对数据页面的随机写盘转化为对WAL(Write Ahead Log,预写式日志)的顺序写盘,WAL持久化完成,事务就算提交成功,数据页面异步将数据刷新到磁盘上。但是随着内存容量变大和保电内存、非易失性内存的发展,以及SSD(SolidStateDisk,固态硬盘)技术的逐渐成熟,磁盘的IO(输入输出)性能得到极大提高,经历了几十年发展的存储引擎需要调整架构来发挥SSD的性能和充分利用大内存计算的优势。随着互联网、移动互联网的发展,数据量剧增,业务场景呈现多样化,一套固定不变的存储引擎不可能满足所有应用场景的诉求。因此现在的 DBMS需要设计支持多种存储引擎,根据业务场景来选择合适的存储模型。

1.数据库存储引擎要解决的问题
数据库存储引擎要解决的问题如下:

存储的数据必须要保证原子性(A)、一致性©、隔离性(I)、持久性(D)。
支持高并发读写,高性能。
充分发挥硬件的性能,解决数据的高效存储和检索能力。
2.openGauss存储引擎概述
openGauss整个系统设计是可插拔、自组装的,支持多个存储引擎以满足不同场景的业务诉求。当前openGauss存储引擎有以下3种:

行存储引擎,主要面向 OLTP场景设计,例如订货、发货、银行交易系统。
列存储引擎,主要面向 OLAP场景设计,例如数据统计报表分析。
内存引擎,主要面向极致性能场景设计,例如银行风控场景。
创建表的时候可以指定为行存储引擎表、列存储引擎表、内存引擎表,支持一个事务中包含对三种引擎表的 DML操作,可以保证事务的 ACID性质。

原文链接:https://blog.csdn.net/GaussDB/article/details/116012521

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论