GithubHelp home page GithubHelp logo

kernel-quickstart's Introduction

OceanBase 数据库开发者入门教程

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

  • 文档介绍

  • 贡献文档

文档介绍

开发者入门教程共分为五个章节,从 MiniOB 概述、环境搭建、存储、索引、SQL 引擎、事务几个方面介绍数据库和 MiniOB,各章节内容如下。

第 1 章:数据库系统概述

本章介绍数据库系统概述、MiniOB 概述及 MiniOB 研发环境搭建,主要包含如下内容。

第 2 章:数据库的存储结构

本章介绍数据库存储结构基础及 MiniOB 存储实现原理。主要包含如下内容。

  • 2.1 存储器的层次结构:介绍存储器的层次和特点,并介绍虚拟存储器。

  • 2.2 磁盘存储器:介绍存储器的基础概念,空间计算和存取性能,以及如何优化性能,并介绍磁盘的故障以及如何检测。

  • 2.3 块与记录组织:从概念、记录的类型、记录的存储结构、块的存储结构四个方面介绍块与记录组织。

  • 2.4 变长数据和记录:介绍变长数据的定义和类型、具有变长字段/重复字段/可变格式/大值类型的记录,并简单介绍 blob 二进制大对象和列存储。

  • 2.5 记录的修改:根据插入、更新和删除三种场景介绍如何修改记录。

  • 2.6 MiniOB 存储实现原理:从存储层面介绍 MiniOB 的实现。

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

第 3 章:索引结构

本章主要介绍数据库索引结构基础,以及 MiniOB 中 B+ 树的实现,主要包含如下内容。

  • 3.1 B+ 树介绍:介绍 B+ 树的概念,以及在 B+ 树中如何查找结点、插入结点和删除结点。

  • 3.2 散列表:简单介绍静态散列表和动态散列表,并介绍散列表的插入和删除。

  • 3.3 LSM 介绍:介绍 LSM-Tree 的基本概念,并以 LevelDB 的 LSM-Tree 为例进行详细介绍。

  • 3.4 MiniOB B+Tree 实现:介绍 MiniOB 的 B+ 树如何实现,以及如何对 B+ 树进行插入和删除操作。

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

第 4 章:SQL 引擎

本章主要介绍数据库 SQL 引擎基础,并对 SQL 的优化和执行进一步拓展,主要包含如下内容。

第 5 章:事务引擎

事务是数据库很重要的概念之一,通过事务保证了很多操作量大,数据量高的业务的稳定性。本章主要介绍事务相关的概念和操作,主要包含如下内容。

  • 5.1 事务简介:介绍事务的基本概念和 ACID 属性。

  • 5.2 故障类型和事务模型:介绍数据库中故障的产生和处理方法、事务模型,并结合示例介绍事务原语。

  • 5.3 undo 日志:主要介绍回滚日志(undo log)规则、如何使用 undo 日志恢复数据,并结合示例介绍检查点机制和动态检查点。

  • 5.4 redo 日志:主要介绍 redo 日志规则、如何使用 redo 日志恢复数据,并结合示例介绍 redo 日志的检查点。

  • 5.5 undo/redo 日志:主要介绍 undo/redo 日志规则、如何使用 undo/redo 日志恢复数据,并结合示例介绍 undo/redo 日志的检查点及 undo/redo 日志的应用。

  • 5.6 隔离级别:介绍数据库的隔离级别,包括读未提交、读提交、可重复读、可有序化等。

  • 5.7 锁:通过示例介绍数据库中锁的概念,包括细粒度的锁和两阶段加锁。

  • 5.8 时间戳:介绍数据库中时间戳的概念。

  • 5.9 多版本并发控制:介绍版本控制协议和快照隔离的概念。

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

贡献文档

开始之前

感谢您对 OceanBase 数据库文档的贡献兴趣。为厘清就个人或实体贡献内容而授予的知识产权许可,我们必须对每位贡献者签署的贡献者许可协议(Contributor Licence Agreement,简称 CLA)(“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 [email protected]:$user/kernel-quickstart.git
    # 或: git clone https://github.com/$user/kernel-quickstart.git
    
    # 添加上游分支
    cd $working_dir/kernel-quickstart
    git remote add upstream [email protected]:oceanbase/kernel-quickstart.git
    # 或: git remote add upstream https://github.com/oceanbase/kernel-quickstart.git
    
    # 为上游分支设置 no_push
    git remote set-url --push upstream no_push
    
    # 确认远程分支有效
    git remote -v

步骤 3:创建新分支

  1. 更新本地分支。

    cd $working_dir/kernel-quickstart
    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,与社区热心的技术大神、热情的贡献者、经验丰富的技术专家一起交流、探讨问题。

kernel-quickstart's People

Contributors

wangzelin19961202 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

kernel-quickstart's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.