openGauss源码解析
文章平均质量分 94
详细的解析openGauss源码,帮助开发者了解openGauss内部实现逻辑。
Gauss松鼠会
深耕数据库10余年,致力于GaussDB、openGauss等数据库技术的学习、探索与传播。
展开
-
openGauss数据库源码解析系列文章——备份恢复机制:openGauss增量备份技术(上)
备份恢复机制:openGauss增量备份技术原创 2023-02-14 10:26:40 · 2347 阅读 · 15 评论 -
openGauss数据库源码解析系列文章——备份恢复机制:openGauss全量备份技术
本章主要介绍openGauss的备份恢复原理和技术。备份恢复是数据库日常维护的一个例行活动,通过把数据库数据备份到另外一个地方,可以抵御介质类的损坏,增加数据库数据的可靠性。数据库的备份恢复主要分为逻辑备份恢复和物理备份恢复。原创 2023-01-31 11:10:55 · 3733 阅读 · 20 评论 -
openGauss数据库源码解析系列文章—— 密态等值查询技术详解(下)
上期我们介绍了密态等值查询技术及如何创建客户端密钥CMK,本期继续讲解如何创建列加密密钥CEK和创建加密表。原创 2022-06-23 15:22:30 · 3349 阅读 · 15 评论 -
openGauss数据库源码解析系列文章—— 密态等值查询技术详解(上)
除了传统的数据存储加密和数据脱敏等数据保护技术外,openGauss从1.1.0版本开始支持了一种全新的数据全生命周期保护方案:全密态数据库机制。在这种机制下数据在客户端就被加密,从客户端传输到数据库内核,到在内核中完成查询运算,到返回结果给客户端,数据始终处于加密状态。与非加密数据库相比,密态等值查询主要提供数据加密和数据检索功能。...............原创 2022-06-21 11:18:50 · 5522 阅读 · 17 评论 -
openGauss数据库源码解析系列文章——数据安全技术(下)
在前面文章中介绍过“9.6.1 数据加解密接口”,本篇我们介绍第9章 安全管理源码解析中“9.6.2 数据动态脱敏”的相关精彩内容介绍。数据脱敏,顾名思义就是将敏感数据通过变形、屏蔽等方式处理,其目的是保护隐私数据信息,防止数据泄露和恶意窥探。当企业或者机构收集用户个人身份数据、手机、银行卡号等敏感信息,然后将数据通过导出(非生产环境)或直接查询(结合生产环境)的方式投入使用时,按照隐私保护相关法律法规需将数据进行“脱敏”处理。openGauss实现了数据动态脱敏机制,它根据一系列用户配置的“脱敏策略”原创 2021-12-31 15:18:03 · 4214 阅读 · 4 评论 -
openGauss数据库源码解析系列文章——数据安全技术(上)
在前面文章中介绍过“9.5 审计与追踪”,本篇我们介绍第9章 安全管理源码解析中“9.6 数据安全技术”的相关精彩内容介绍。openGauss采用了多种加密解密技术来提升数据在各个环节的安全性。9.6.1 数据加解密接口用户在使用数据库时,除了需要基本的数据库安全之外,还会对导入的数据进行加密和解密的操作。openGauss提供了针对用户导入数据进行加密和解密的功能接口,用户使用该接口可以对其认为包含敏感信息的数据进行加密和解密操作。数据加密接口openGauss提供的加密功能是基于标准的AES原创 2021-12-06 15:59:47 · 5349 阅读 · 11 评论 -
openGauss数据库源码解析系列文章—— 审计与追踪
在前面文章中介绍过“9.4 对象权限管理”,本篇我们介绍第9章 安全管理源码解析中“9.5 审计与追踪”的相关精彩内容介绍。审计机制和审计追踪机制能够对用户的日常行为进行记录和分析,实现规避风险、提高安全性。9.5.1 审计日志设计审计内容的记录方式通常有两种:记录到数据库的表中、记录到OS文件中。openGauss采用记录到OS文件中(即审计日志)的方式来保存审计结果,审计日志文件夹受操作系统权限保护,默认只有初始化用户可以读写,从数据库安全角度出发,保证了审计结果的可靠性。日志文件的存储目录由a原创 2021-11-01 11:20:04 · 3406 阅读 · 15 评论 -
⭐openGauss数据库源码解析系列文章—— 对象权限管理⭐
❤️大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️ 在前面文章中介绍过“9.3 角色管理整”,本篇我们介绍第9章 安全管理源码解析中“9.4 对象权限管理”的相关精彩内容介绍。9.4 对象权限管理权限管理是安全管理重要的一环,openGauss权限管理基于访问控制列表(access control list,ACL)实现。9.4.1 权限管理1. 访问控制列表访问控制列表是实现数据库对象权限管理的基础,每个对象都具有ACL,存储该对象的所有授权信息。当用户访问对象时,只有用户在对..原创 2021-10-18 11:11:39 · 5853 阅读 · 32 评论 -
⭐openGauss数据库源码解析系列文章—— 安全管理源码解析⭐
❤️大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️ 在前面介绍过“8.7 DeepSQL、8.8 小结”,本篇我们介绍第9章 安全管理源码解析中“9.1 安全管理整体架构和代码概览、9.2 安全认证”的相关精彩内容介绍。openGauss作为新一代自治安全数据库,提供了丰富的数据库基础安全能力,并逐步完善各类高阶安全能力。这些安全能力涵盖了访问登录认证、用户权限管理、审计与追溯及数据安全隐私保护等。本章节将围绕openGauss安全机制进行源码解读,以帮助数据库内核开发者在进行内核开发..原创 2021-10-08 12:11:53 · 8190 阅读 · 49 评论 -
⭐openGauss数据库源码解析系列文章—— 角色管理⭐
❤️大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️ 在前面介绍过“[9.1 安全管理整体架构和代码概览、9.2 安全认证]”(https://blog.csdn.net/GaussDB/article/details/120646696?spm=1001.2014.3001.5501)的相关精彩内容介绍。...原创 2021-10-11 10:56:04 · 3319 阅读 · 33 评论 -
⭐openGauss数据库源码解析系列文章—— DeepSQL⭐
❤️大家好,我是Gauss松鼠会,欢迎进来学习啦~❤️ 上一篇介绍了 8.6 AI查询时间预测的相关内容,本篇我们介绍“8.7 DeepSQL、8.8 小结”的相关精彩内容介绍。8.7 DeepSQL前面提到的功能均为AI4DB领域,AI与数据库结合还有另外一个大方向,即DB4AI。在本章中,我们将介绍openGauss的DB4AI能力,探索通过数据库来高效驱动AI任务的新途径。使用场景数据库DB4AI功能的实现,即在数据库内实现AI算法,以更好的支撑大数据的快速分析和计算。目前o..原创 2021-09-28 17:05:15 · 12551 阅读 · 27 评论 -
⭐openGauss数据库源码解析系列文章—— AI查询时间预测⭐
上一篇介绍了“8.5 指标采集、预测与异常检测”的相关内容,本篇我们介绍“8.6 AI查询时间预测”的相关精彩内容介绍。8.6 AI查询时间预测在前面介绍过“慢SQL发现”特性,该特性的典型场景是新业务上线前的检查,输入源是提前采集到的SQL流水数据。慢SQL发现功能主要主要应用在多条SQL语句的批量检查上,要求之前执行过SQL语句,因此给出的结果主要是定性的,在某些场景下可能难以满足用户对于评估精度的要求。因此,为了弥补上述场景的不足,满足用户更精确的SQL时间预测需求,同时为AI优化器做铺垫,实现原创 2021-09-22 10:43:42 · 12127 阅读 · 45 评论 -
openGauss数据库源码解析系列文章—— AI技术之“指标采集、预测与异常检测”
上一篇介绍了AI技术之“智能索引推荐”的相关内容,本篇我们介绍“指标采集、预测与异常检测”的相关精彩内容介绍。8.5 指标采集、预测与异常检测数据库指标监控与异常检测技术,通过监控数据库指标,并基于时序预测和异常检测等算法,发现异常信息,进而提醒用户采取措施避免异常情况造成严重后果。8.5.1 使用场景用户操作数据库的某些行为或某些正在运行的业务发生了变化,都可能会导致数据库产生异常,如果不及时发现并处理这些异常,可能会导致严重的后果。通常,数据库监控指标(metric,如CPU使用率、QPS等)能原创 2021-09-13 09:57:27 · 5014 阅读 · 70 评论 -
openGauss数据库源码解析系列文章—— AI技术之“智能索引推荐”
上一篇介绍了第八章AI技术中“8.3 慢SQL发现”的相关内容,本篇我们开启第八章 AI技术中“8.4 智能索引推荐”的相关精彩内容介绍。8.4 智能索引推荐数据库的索引管理是一项非常普遍且重要的事情,任何数据库的性能优化都需要考虑索引的选择。为此,openGauss支持原生的索引推荐功能,可以通过系统函数等形式进行使用。8.4.1 使用场景在大型关系型数据库中,索引的设计和优化对SQL语句的执行效率至关重要。一直以来,数据库管理人员往往基于相关理论知识和经验,进行人工设计和调整索引。这样做的缺点在原创 2021-09-06 10:52:12 · 4450 阅读 · 156 评论 -
openGauss数据库源码解析系列文章—— AI技术之“慢SQL发现”
上一篇介绍了第八章AI技术中“8.1 概述”及“8.2 自调优”的相关内容,本篇我们开启第八章 AI技术中“8.3 慢SQL发现”的相关精彩内容介绍。8.3 慢SQL发现基于历史SQL语句信息进行模型训练,并用训练好的模型进行SQL语句的预测,利用预测结果判断该SQL语句是否是潜在的慢SQL。当发现潜在的慢SQL后,开发者便可以进行针对性优化或者风险评估,以防业务上线后发生问题。8.3.1 慢SQL发现的功能上线业务预检测:上线一批新业务前,使用SQL诊断功能评估此次上线业务的预估执行时长,便于用户原创 2021-08-30 10:27:30 · 4130 阅读 · 126 评论 -
openGauss数据库源码解析系列文章—— AI技术之“自调优”
上一篇介绍了第七章执行器解析中“7.6 向量化引擎”及“7.7 小结”的相关内容,本篇我们开启第八章 AI技术中“8.1 概述”及“8.2 自调优”的相关精彩内容介绍。AI技术最早可以追溯到20世纪50年代,甚至比数据库系统的发展历史还要悠久。但是,由于各种各样客观因素的制约,在很长的一段时间内,人工智能技术并没有得到大规模的应用,甚至还经历了几次明显的低谷期。随着信息技术的进一步发展,从前限制人工智能发展的因素已经逐渐减弱,所谓的ABC(artificial intelligence、big dat原创 2021-08-27 09:16:11 · 5111 阅读 · 125 评论 -
openGauss数据库源码解析系列文章—— 执行器解析(三)
上一篇介绍了第七章执行器解析中“7.4 表达式计算”及“7.5 编译执行”的相关内容,本篇将介绍“7.6 向量化引擎”及“7.7 小结”的精彩内容。7.6 向量化引擎传统的行执行引擎大多采用一次一元组的执行模式,这样在执行过程中CPU大部分时间并没有用来处理数据,更多的是在遍历执行树,就会导致CPU的有效利用率较低。而在面对OLAP场景巨量的函数调用次数,需要巨大的开销。为了解决这一问题,openGauss中增加了向量化引擎。向量化引擎使用了一次一批元组的执行模式,能够大大减少遍历执行节点的开销。一次原创 2021-08-23 14:36:29 · 4042 阅读 · 119 评论 -
openGauss数据库源码解析系列文章—— 执行器解析(二)
上一篇介绍了第七章执行器解析中“7.1 执行器整体架构及代码概览”、“7.2 执行流程”及“7.3 执行算子”的相关内容,本篇将介绍“7.4 表达式计算”及“7.5 编译执行”的精彩内容。7.4 表达式计算表达式计算对应的代码源文件是“execQual.cpp”,openGauss处理SQL语句中的函数调用、计算式和条件表达式时需要用到表达式计算。表达式的表示方式和查询计划树的计划节点类似,通过生成表达式计划来对每个表达式节点进行计算。表达式继承层次中的公共根类为Expr节点,其他表达式节点都继承原创 2021-08-19 11:00:51 · 5521 阅读 · 137 评论 -
openGauss数据库源码解析系列文章—— 执行器解析(一)
本篇我们开启第七章执行器解析中“7.1 执行器整体架构及代码概览”、“7.2 执行流程”及“7.3 执行算子”的相关精彩内容介绍。执行器在数据库整个体系结构中起到承上启下的作用,对上承接优化器产生的最优执行计划,并按照执行计划进行流水线式的执行,对底层的存储引擎中的数据进行操作。openGauss数据库将执行的过程抽象成了不同类型的算子,同时结合编译执行、向量化执行、并行执行等方式,组成了全面、高效的执行引擎。本章着重介绍执行器的整体架构、执行模型、各类算子、表达式,以及编译执行和向量化引擎等全新的执原创 2021-08-16 11:12:12 · 6595 阅读 · 52 评论 -
openGauss数据库源码解析系列文章—— SQL引擎源解析(二)
上一篇文章介绍了SQL引擎源解析中“6.1 概述”及“6.2 SQL解析”的精彩内容,本篇我们开启“6.3 查询优化”及“6.4 小结”的相关内容的介绍。6.3 查询优化openGauss数据库的查询优化过程功能比较明晰,从源代码组织的角度来看,相关代码分布在不同的目录下,如表6-6所示。表6-6 查询优化模块说明模块目录说明查询重写src/gausskernel/optimizer/prep主要包括子查询优化、谓词化简及正则化、谓词传递闭包等查询重写优化技术统计信原创 2021-08-13 15:09:07 · 9495 阅读 · 67 评论 -
openGauss数据库源码解析系列文章—— SQL引擎源解析(一)
本篇我们开启“SQL引擎源解析”中“6.1 概述”及“6.2 SQL解析”的精彩内容介绍。第6章 SQL引擎源解析SQL引擎作为数据库系统的入口,主要承担了对SQL语言进行解析、优化、生成执行计划的作用。对于用户输入的SQL语句,SQL引擎会对语句进行语法/语义上的分析以判断是否满足语法规则等,之后会对语句进行优化以便生成最优的执行计划给执行器执行。故SQL引擎在数据库系统中承担着承上启下的作用,是数据库系统的“大脑”。6.1 概述SQL引擎负责对用户输入的SQL语言进行编译,生成可执行的执行计原创 2021-08-11 10:46:50 · 7030 阅读 · 35 评论 -
openGauss数据库源码解析系列文章—— 事务机制源码解析(二)
上一篇为介绍完"5.1 事务整体架构和代码概览"及“5.2 事务并发控制”,本篇将继续介绍“5.3 锁机制”的精彩内容。5.3 锁机制数据库对公共资源的并发控制是通过锁来实现的,根据锁的用途不同,通常可以分为3种:自旋锁(spinlock)、轻量级锁(LWLock,light weight lock)和常规锁(或基于这3种锁的进一步封装)。使用锁的一般操作流程可以简述为3步:加锁、临界区操作、放锁。在保证正确性的情况下,锁的使用及争抢成为制约性能的重要因素,下面先简单介绍openGauss中的3种锁。原创 2021-08-11 09:59:12 · 7964 阅读 · 32 评论 -
openGauss数据库源码解析系列文章—— 事务机制源码解析(一)
本篇为小伙伴们带来第五章——事务机制源码解析的精彩内容。事务是数据库操作的执行单位,需要满足最基本的ACID(原子性、一致性、隔离性、持久性)属性。(1) 原子性:一个事务提交之后要么全部执行,要么全部不执行。(2) 一致性:事务的执行不能破坏数据库的完整性和一致性。(3) 隔离性:事务的隔离性是指在并发中,一个事务的执行不能被其他事务干扰。(4) 持久性:一旦事务完成提交,那么它对数据库的状态变更就会永久保存在数据库中。本章主要介绍openGauss事务模块是如何实现数据库事务的基本属性,使用原创 2021-08-05 10:06:58 · 5969 阅读 · 22 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(六)
上一篇详细讲述了“4.2.5 行存储索引机制”、“4.2.6 行存储缓存机制”及“4.2.7 cstore”等精彩内容。本篇我们详细讲述“4.3 内存表”相关内容。4.3 内存表MOT(memory-optimized tables,内存表)是事务性、基于行存储的存储引擎,针对众核和大内存服务器进行了优化。MOT是openGauss数据库的一个先进特性,可提供非常高的事务性工作负载性能。MOT完全符合ACID要求,并支持严格的持久性和高可用性。企业用户可以将MOT用于关键任务、性能敏感的在线事务处理应用原创 2021-08-02 15:59:00 · 5095 阅读 · 48 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(五)
上一篇我们详细讲述“4.2.4 ustore”相关内容。本篇我们将继续为小伙伴们带来“4.2.5 行存储索引机制”、“4.2.6 行存储缓存机制”及“4.2.7 cstore”等精彩内容的详细介绍。4.2.5 行存储索引机制本节以B-Tree索引为例,介绍openGauss中行存储(格式)表的索引机制。索引本质上是对数据的一种物理有序聚簇。有序聚簇参考的排序字段被称为索引键。为了节省存储空间,一般索引表中只存储有序聚簇的索引键键值以及对应元组在主表中的物理位置。在查询指定的索引键键值元组时,得益原创 2021-07-30 15:59:47 · 7274 阅读 · 27 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(四)
上一篇我们详细讲述“3. astore元组多版本机制”、“4.astore访存管理”及“5.astore空间管理和回收”相关内容。本篇我们将继续为小伙伴们带来“4.2.4 ustore”的详细介绍。4.2.4 ustoreustore属于In-place Update更新模式,中文意思为:原地更新,是openGauss内核新增的一种存储模式。openGauss内核当前使用的行引擎采用的是Append Update(追加更新)模式,该模式在INSERT、DELETE、HOT UPDATE(页面内更新)的场原创 2021-07-28 10:43:09 · 4998 阅读 · 42 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(三)
上一篇我们将详细介绍“4.2.3 astore”相关内容,本篇我们将讲述“3. astore元组多版本机制”及“4.astore访存管理”。3. astore元组多版本机制openGauss行存储表支持多版本元组机制,即为同一条记录保留多个历史版本的物理元组以解决对同一条记录的读、写并发冲突(读事务和写事务工作在不同版本的物理元组上)。astore存储格式为追加写优化设计,其多版本元组产生和存储方式如图4-5所示。当一个更新操作将v0版本元组更新为v1版本元组之后,如果v0版本元组所在页面仍然有空闲空原创 2021-07-26 15:01:32 · 3292 阅读 · 23 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(二)
上一篇我们讲述了“4.2 磁盘引擎”中“4.2.1 磁盘引擎整体框架及代码概览”与“4.2.2 行存储统一访存接口”。本篇我们将讲述“4.2.3 astore”。4.2.3 astoreastore整体框架astore整体框架如图4-2所示。如上所述,作为行存储子格式之一,astore需要实现自己的堆表存取(访存)管理接口、堆表页面结构、堆表元组结构、元组多版本机制,以及空闲空间管理和回收机制。图4-2 astore整体框架示意图astore堆表页面元组结构本节介绍astore堆表的页原创 2021-07-23 15:45:58 · 3487 阅读 · 27 评论 -
openGauss数据库源码解析系列文章——存储引擎源码解析(一)
OLTP、OLAP业务各自对数据库的存储引擎提出了不同的要求,而openGauss能够支持多个存储引擎来满足来自不同场景的业务诉求。本章将逐一介绍各种存储引擎和对应的源码。4.1 存储引擎整体架构及代码概览从整个数据库服务的组成构架来看,存储引擎向上对接SQL引擎,为SQL引擎提供或接收标准化的数据格式(元组或向量数组);向下对接存储介质,按照特定的数据组织方式,以页面、列存储单元(CU,compression unit)或其他形式为单位,通过存储介质提供的特定接口,对存储介质中的数据完成读、写操作。在原创 2021-07-22 15:21:42 · 5566 阅读 · 42 评论 -
openGauss数据库源码解析系列文章——公共组件源码解析(下)
上一篇openGauss数据库源码解析系列文章——公共组件源码解析(上)中,从系统表、数据库初始化、多线程架构及线程池技术四个方面对公共组件的源代码实现进行介绍。本篇接着从内存管理、多维监控、模拟信号机制展开介绍。五、内存管理数据库在运行过程中涉及许多对象,这些对象具有不同的生命周期,有些处理需要频繁分配内存。如一个SQL语句,在解析时需要对词法单元和语法单元分配内存,在执行过程中需要对执行状态分配内存。在事务结束时,如果不是prepare语句,那么SQL语句的执行计划内存和执行过程的状态内存都需要释放原创 2021-04-27 10:34:11 · 3087 阅读 · 13 评论 -
openGauss数据库源码解析系列文章——公共组件源码解析(上)
在数据库组件中,一些组件是专用的,如词法解析只用于SQL引擎;而另外一些组件是公共的,用于整个数据库系统。openGauss的公共组件包括系统表、数据库初始化、多线程架构、线程池、内存管理、多维监控和模拟信号机制等。每个组件实现了一个独立的功能。本篇将从系统表、数据库初始化、多线程架构及线程池技术四个方面对公共组件的源代码实现进行介绍。一、系统表系统表又称为数据字典或者元数据,存储管理数据库对象的定义信息,如表、索引、触发器等。用户可通过系统表查询用户定义的具体对象信息,如表的每个字段类型。因为open原创 2021-04-27 10:05:33 · 3741 阅读 · 13 评论 -
openGauss数据库源码解析系列文章——openGauss开发快速入门(三)
在openGauss数据库源码解析系列文章——openGauss开发快速入门(中),介绍了openGauss基本使用,本篇将从openGauss的开发和编译、参与openGauss社区开源项目两方面展开具体介绍。三、 开发和编译作为openGauss数据库开发者,在基于openGauss开源产品进行二次开发后,往往需要编译openGauss对所开发的功能的实现情况进行验证。本篇向读者简要介绍openGauss的编译方法,详细的内容参见openGauss官网(https://opengauss.org/z原创 2021-04-26 17:18:59 · 4306 阅读 · 6 评论 -
openGauss数据库源码解析系列文章——openGauss开发快速入门(二)
在上一篇openGauss数据库源码解析系列文章——openGauss开发快速入门(上)中,我们介绍了openGauss的安装部署方法,本篇将具体介绍openGauss基本使用。二、 openGauss基本使用openGauss安装完成后会自动启动,用户可以使用openGauss自带的gsql(openGauss交互终端)客户端连接数据库进行相关SQL操作。(一) 连接数据库本篇为您介绍如何使用gsql客户端连接数据库。gsql是openGauss自带的客户端工具。使用gsql连接数据库,可以交互原创 2021-04-26 15:39:12 · 3207 阅读 · 11 评论 -
openGauss数据库源码解析系列文章——openGauss开发快速入门(一)
作为openGauss数据库开发者,在基于开源社区的openGauss版本进行二次开发的过程中,需要完成软件包获取、源码了解、代码修改、编译发布等过程,同时还需要安装数据库以了解数据库的基本特点、验证开发的功能实现情况,本篇将简要介绍openGauss的安装部署方法。一、 安装部署作为openGauss数据库开发者,除了基于openGauss开源产品进行二次开发外,往往也需要了解openGauss的特点和使用方法,同时验证所开发的功能的实现情况。本篇向读者简要介绍openGauss的安装部署方法,详细的原创 2021-04-26 15:24:13 · 4175 阅读 · 14 评论 -
openGauss数据库源码解析系列文章——openGauss简介(三)
五、价值特性openGauss相比其它开源数据库主要有复合应用场景、高性能和高可用等产品特点。(一)高性能1. CBO优化器openGauss优化器是典型的基于代价的优化(Cost-Based Optimization,简称CBO)。在这种优化器模型下,数据库根据表的元组数、字段宽度、NULL记录比率、唯一值(Distinct Value)、最常见值(Most Common Value, 简称MCV)等表的特征值以及一定的代价计算模型,计算出每一个执行步骤的不同执行方式的输出元组数和执行代价(cos原创 2021-04-26 14:40:57 · 4124 阅读 · 4 评论 -
openGauss数据库源码解析系列文章——openGauss简介(二)
上一篇openGauss数据库源码解析系列文章–openGauss简介(上)中,从openGauss概述、应用场景、系统结构、代码结构四个方面对openGauss进行了初步介绍。其中,openGauss的代码结构介绍了数据库系统通信管理、SQL引擎两方面内容,本篇接着从代码结构第三方面的内容——存储引擎,以及openGauss的价值特性方面展开介绍。(三)存储引擎openGauss存储引擎是可插拔、自组装的,支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。早期计算机原创 2021-04-26 14:39:06 · 3845 阅读 · 3 评论 -
openGauss数据库源码解析系列文章--openGauss简介(一)
openGauss数据库是华为深度融合在数据库领域多年经验,结合企业级场景要求推出的新一代企业级开源数据库。此前,Gauss松鼠会已经发布了openGauss数据库核心技术系列文章,介绍了openGauss的技术原理。从本期开始,Gauss松鼠会将陆续推出openGauss数据库源码解析系列文章,带你解析openGauss各功能模块的源代码逻辑和实现原理。该系列文章主要面向openGauss内核开发者及研究人员。接下来会先向大家概要介绍openGauss。本篇将从openGauss概述、应用场景、系统结构原创 2021-04-25 16:26:45 · 9697 阅读 · 6 评论