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

第 5 章:OceanBase 事务引擎 5.1 事务执行

138

OceanBase 数据库中事务引擎主要有以下功能:

  1. 事务执行

    • DML 执行:DML 语句的执行过程

    • 版本号管理(LTS/GTS):语句执行过程中涉及到的版本号的管理

    • 并发控制(行锁、MVCC):语句执行过程中的一些并发控制

  2. 事务提交

    • 分布式两阶段提交

    • 单分区本地事务提交

    • 提交优化(提前响应客户端、1PC、PG)

  3. 新特性

    • XA 事务

    • 复制表

    • 弱一致性读

本章主要介绍 OceanBase 有关事务执行和事务提交的相关内容,新特性的相关内容不是本章重点,大家可以到官网自行了解。


5.1 事务执行

相关概念

在介绍事务引擎之前,首先需要了解一下 OceanBase 的一些特殊概念。

  • 单分区本地事务

    只涉及单个分区,且事务 Session 和分区 Leader 在同一台机器上。

  • 分布式事务

    涉及多个分区(单机或跨机),或 Session 和分区 Leader 跨机的单分区事务。

  • 事务日志

    • Redo Log:重做日志,用于恢复数据。

    • Prepare Log:用于事务提交的准备阶段。

    • Commit/Abort Log:用于事务提交的提交/终止阶段。

    • Clear Log:用于事务提交的清理阶段。

  • 重要缩写

    • 2PC:two phase commit,事务的两阶段提交协议。

    • 1PC:one phase commit,事务的一阶段提交协议。

    • PG:Partition Group,分区组。

  • LTS

    Local Timestamp Service,本地时间戳服务,这是 1.X 提出的概念。

  • GTS

    Global Timestamp Service,全局时间戳服务,这是 2.X 提出的概念。


Query 执行流程

执行流程

如上图,右边是 SQL 引擎中的执行过程,左边是事务引擎中的执行过程。

数据库接收到 SQL 语句之后,经过语法解析、优化器等执行过程,最终生成该语句的执行计划,同时在 plan cache 缓存该计划。Plan Cache 可以提升后续 SQL 的执行效率,如果后续出现类似的语句可以直接复用该执行计划,节省开销。

当 SQL 的执行计划确定之后,整体流程就进入到了事务引擎。这里将 SQL 语句分为如下三类。

  • 非 INSERT 语句:update、delete 等

  • INSERT 语句:insert

  • CMD 语句:begin、commit 等

最后语句执行结束,返回结果给客户端。

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

评论