目录
目录README.md

OceanBase 数据库开发者进阶教程

欢迎访问 OceanBase 数据库开发者进阶教程,您可以在本仓库中查看开发者进阶教程的文档。本文简单为您介绍开发者进阶教程各章节包含的内容以及如何贡献文档。

  • 文档介绍

  • 贡献文档

文档介绍

开发者进阶教程共分为七个章节,从 OceanBase 数据库简介、开发环境搭建、存储、SQL 引擎、事务、内存管理、测试等几个方面介绍 OceanBase 数据库,各章节内容如下。

第 1 章:OceanBase 数据库系统简介

本章简单介绍 OceanBase 数据库的发展历程、整体架构及其代码的目录结构,以便大家更深入的了解 OceanBase,主要包含如下内容。

第 2 章:OceanBase 开发环境搭建

本章介绍如何搭建 OceanBase 数据库研发环境,帮助大家快速上手内核开发,主要包含如下内容。

第 3 章:OceanBase 存储引擎

本章介绍 OceanBase 数据库的存储结构和 Compaction 策略,以及数据的写入和查询流程,主要包含如下内容。

第 4 章:OceanBase SQL 引擎

本章介绍 SQL 引擎优化器的作用、OceanBase 数据库中查询改写和查询优化框架及细节、OceanBase 数据库中 SQL 执行引擎的相关设计,主要包含如下内容。

  • 4.1 查询优化器简介:介绍业界最常用的两个优化器框架:System-R 框架和 Cascade 框架。

  • 4.2 查询改写:介绍查询改写相关概念,包括为什么要改写、查询改写的挑战以及查询改写时的有效性判断。

  • 4.3 查询优化:优化过程简单来讲就是枚举所有等价的执行计划,对于每一个执行计划,优化器利用统计信息和代价模型计算执行计划的代价,之后从中选择代价最小的计划。本文详细介绍如何进行计划枚举。

  • 4.4 基表访问路径选择策略:介绍基表访问路径选择策略,并详细介绍 skyline 剪枝这一优化策略。

  • 4.5 执行引擎简介:介绍 OceanBase 数据库执行引擎的作用以及发展历程。

  • 4.6 向量化执行:介绍在第三代执行引擎中引入向量化执行后的优点,以及 OceanBase 数据库中向量化执行的实现。

  • 4.7 并行执行:介绍并行执行的实现和调度,以及数据重分布的类别。

  • 4.8 执行模式:介绍 OceanBase 数据库的执行模式,包括本地执行、远程执行以及 DAS(Data Access Service)执行。

  • 4.9 课后实践:根据本章内容给出相关题目供大家练习。

第 5 章:OceanBase 事务引擎

本章介绍 OceanBase 数据库有关事务执行和事务提交的相关内容,主要包含如下内容。

  • 5.1 事务执行:介绍 OceanBase 数据库中事务执行的相关概念和 Query 执行流程。

  • 5.2 并发控制:介绍 OceanBase 数据库并发控制的相关信息,包括快照管理、索引结构、读写并发、写读并发以及写写并发。

  • 5.3 事务提交:介绍 OceanBase 数据库的事务提交流程。

  • 5.4 事务优化:介绍 OceanBase 数据库各个时期的事务优化思路。

  • 5.5 课后实践:根据本章内容给出相关题目供大家练习。

第 6 章:OceanBase 内存管理框架与线程模型

本章介绍 OceanBase 数据库的内存管理框架以及线程模型,主要包含如下内容。

第 7 章:OceanBase 开源质量体系

本章介绍 OceanBase 数据库开源版本的质量体系,主要包含如下内容。

贡献文档

开始之前

感谢您对 OceanBase 数据库文档的贡献兴趣。为厘清就个人或实体贡献内容而授予的知识产权许可,我们必须对每位贡献者签署的贡献者许可协议(Contributor Licence Agreement,简称 CLA)进行归档,以证明就 CLA 达成的一致。点击 OceaBase CLA,点击 Sign in with GitHub to agree 按钮签署协议。

贡献指南

您可以按照以下步骤提交 Pull Request(简称 PR):

步骤 1:Fork 项目仓库

  1. 访问 OceanBase 数据库开发者进阶教程文档的 GitHub 地址

  2. 点击 Fork 按钮创建远程分支。

步骤 2:克隆分支到本地

  1. 定义工作目录。

    # 定义工作目录
    working_dir=$HOME/Workspace
  2. 配置 GitHub 用户名。

    user={GitHub账户名}
  3. 克隆代码。

    # 克隆代码
    mkdir -p $working_dir
    cd $working_dir
    git clone git@github.com:$user/kernel-advanced.git
    # 或: git clone https://github.com/$user/kernel-advanced.git
    
    # 添加上游分支
    cd $working_dir/kernel-advanced
    git remote add upstream git@github.com:oceanbase/kernel-advanced.git
    # 或: git remote add upstream https://github.com/oceanbase/kernel-advanced.git
    
    # 为上游分支设置 no_push
    git remote set-url --push upstream no_push
    
    # 确认远程分支有效
    git remote -v

步骤 3:创建新分支

  1. 更新本地分支。

    cd $working_dir/kernel-advanced
    git fetch upstream
    git checkout $branch
    git rebase upstream/$branch
  2. 基于本地 $branch 分支创建新分支。

    git checkout -b new-branch-name

步骤 4:修改/添加/删除文档

new-branch-name 上修改文档并保存更改。

步骤 5:提交更改

# 检查本地文件状态
git status

# 添加您希望提交的文件
# 如果您希望提交所有更改,直接使用 `git add .`
git add <file> ...
git commit -m "commit-message: update the xx"

步骤 6:保持开发分支与上游分支同步

# 在开发分支执行以下操作
git fetch upstream
git rebase upstream/branch

步骤 7:推送更改至远程分支

# 在开发分支执行以下操作
git push -u origin new-branch-name

步骤 8:创建 PR

  1. 访问您 Fork 的仓库。

  2. 单击 new-branch-name 分支旁的 Compare & pull request 按钮。

以上就是参与 OceanBase 数据库文档共建的步骤,如果在此过程中遇到任何问题,可以加入我们唯一官网钉钉群:41203246,与社区热心的技术大神、热情的贡献者、经验丰富的技术专家一起交流、探讨问题。

关于
284.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号