stOOrz队——open gauss存储引擎概述

本文介绍了openGauss数据库的存储引擎,包括其对ACID属性的支持,行存储与列存储引擎的特点,MVCC和MOT技术,以及关键的缓冲区管理和事务ID/ctid多版本管理机制。后续将深入探讨磁盘引擎和行存储引擎的UP-DATE设计和故障恢复策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码目录:/src/gausskernel/storage

引言

我们队伍试图完整的了解查询引擎到存储引擎的数据库完整查询过程,对查询解析,查询优化,查询重写,查询执行,存储引擎展开学习。我所负责的板块是存储引擎。

一、存储引擎需要解决的问题

存储的数据必须要保证ACID,即原子性(A)、一致性©、隔离性(I)、持久性(D)。
支持高并发读写,高性能。
充分发挥硬件的性能,解决数据的高效存储和检索能力

二、opengauss存储引擎概述

openGauss的存储引擎是指数据库系统中负责数据的存储、组织、管理和访问的部分。
从整个数据库服务的组成构架来看,存储引擎向上对接SQL引擎,向下对接存储介质,按照特定的数据组织方式,以页面、列存储单元(CU,compression unit)或其他形式为单位,通过存储介质提供的特定接口,对存储介质中的数据完成读、写操作。如下图所示
 


shortage主流程代码如下:
磁盘初始化,开关,同步等系统操作。
文件路径:opengauss-server\src\gausskernel\storage\smgr\smgr.cpp

static const f_smgr smgrsw[] = {
    /* magnetic disk */
    { mdinit,
      NULL,
      mdclose,
      mdcreate,
      mdexists,
      mdunlink,
      mdextend,
      mdprefetch,
      mdread,
      mdwrite,
      mdwriteback,
      mdnblocks,
      mdtruncate,
      mdimmedsync,
      mdasyncread,
      mdasyncwrite,
      NULL
    },

这个存储管理器提供了对传统磁盘存储的访问。

函数 功能
mdinit 初始化
mdclose 关闭
mdcreate 创建
mdexists 检查存在
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值