From 87d9a37558523a55f0c26893890b05ab8305adf0 Mon Sep 17 00:00:00 2001 From: wangyunlai Date: Mon, 20 May 2024 16:13:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=96=87=E6=A1=A3=E4=B8=AD?= =?UTF-8?q?=E7=9A=84=E4=B8=80=E4=BA=9B=E9=93=BE=E6=8E=A5=20(#415)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ### What problem were solved in this pull request? Problem: 修复文档中的一些链接 --- README.md | 10 ++++---- docs/docs/blog/1.md | 12 +++++----- docs/docs/game/introduction.md | 43 ++++++++++++++++++---------------- 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 184c58876..f3ac471c6 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[![Chinese Doc](https://img.shields.io/badge/文档-简体中文-blue)](https://oceanbase.github.io/miniob/miniob-introduction.html) +[![Chinese Doc](https://img.shields.io/badge/文档-简体中文-blue)](https://oceanbase.github.io/miniob/) [![MiniOB stars](https://img.shields.io/badge/dynamic/json?color=blue&label=stars&query=stargazers_count&url=https%3A%2F%2Fapi.github.com%2Frepos%2Foceanbase%2Fminiob)](https://github.com/oceanbase/miniob) [![Coverage Status](https://codecov.io/gh/oceanbase/miniob/branch/main/graph/badge.svg)](https://codecov.io/gh/oceanbase/miniob) @@ -19,10 +19,10 @@ MiniOB 整体代码简洁,容易上手,设计了一系列由浅入深的题 为了帮助开发者更好地上手并学习 MiniOB,建议阅读以下内容: -1. [MiniOB 框架介绍](https://oceanbase.github.io/miniob/miniob-introduction.html) -2. [如何编译 MiniOB 源码](https://oceanbase.github.io/miniob/how_to_build.html) -3. [如何运行 MiniOB](https://oceanbase.github.io/miniob/how_to_run.html) -4. [使用 GitPod 开发 MiniOB](https://oceanbase.github.io/miniob/dev-env/dev_by_gitpod.html) +1. [MiniOB 框架介绍](https://oceanbase.github.io/miniob/design/miniob-architecture/) +2. [如何编译 MiniOB 源码](https://oceanbase.github.io/miniob/how_to_build/) +3. [如何运行 MiniOB](https://oceanbase.github.io/miniob/how_to_run/) +4. [使用 GitPod 开发 MiniOB](https://oceanbase.github.io/miniob/dev-env/dev_by_gitpod/) 5. [doxygen 代码文档](https://oceanbase.github.io/miniob/design/doxy/html/index.html) 为了帮助大家更好地学习数据库基础知识,OceanBase社区提供了一系列教程。更多文档请参考 [MiniOB GitHub Pages](https://oceanbase.github.io/miniob/)。建议学习: diff --git a/docs/docs/blog/1.md b/docs/docs/blog/1.md index b9612e396..5dd61d421 100644 --- a/docs/docs/blog/1.md +++ b/docs/docs/blog/1.md @@ -42,7 +42,7 @@ title: High-Performance Concurrency Control Mechanisms for Main-Memory Databases 论文以 lock-free hashtable index为例,介绍并发控制策略,也可用于trees以及skip list等顺序索引结构中。 -memory storage engine prototype +![memory storage engine prototype](images/1-storage-engine-prototype.png) **Record** @@ -54,7 +54,7 @@ title: High-Performance Concurrency Control Mechanisms for Main-Memory Databases - 增加了一个无锁B-tree(Bw-tree)用于范围查询,叶子节点指向第一个版本 - 可同时存在多个hash index(见附录) -hekaton storage engine +![hekaton storage engine](images/1-hekaton-storage-engine.png) ## 事务执行 1. Active:事务创建,获取开启时间戳 @@ -63,7 +63,7 @@ title: High-Performance Concurrency Control Mechanisms for Main-Memory Databases 4. Postprocessing phase:commit成功则替换新旧版本中事务ID为事务end时间戳;abort则将事务ID替换为infinity 5. Transaction terminated:旧版本通过garbage colloctor -事务状态图 +![事务状态图](images/1-transaction-state.png) ## 版本可见性 RT为事务T读取时间, @@ -127,7 +127,7 @@ Commit依赖将所有的等待步骤都推迟到了Commit阶段。 包含Index Scan定位对应版本以及读/写。 可串行化级别下,使用事务开始时间作为读操作TS。 -事务流程图 +![事务流程图](images/1-transaction-process-phases.png) 1. Start Scan: 执行scan操作,记录scan信息 2. Check Predicate: 谓词检查 @@ -137,7 +137,7 @@ Commit依赖将所有的等待步骤都推迟到了Commit阶段。 6. Update Version: 执行更新,插入新版本,旧版本end修改为事务ID(失败就abort),写入WriteSet 7. Delete Version: 修改旧版本end字段为事务ID,记录其指针到WriteSet -事务流程图2 +![事务流程图2](images/1-transaction-process-phases-2.png) **PreCommit** @@ -196,7 +196,7 @@ SI 或者 RC隔离级别性能更好 - 只对最新版本加锁 - 使用Record End 字段实现(64 bits) -记录锁 +![记录锁](images/1-record-lock.png) ### Bucket Lock(Range Locks) - 避免幻读 diff --git a/docs/docs/game/introduction.md b/docs/docs/game/introduction.md index 920b70bbd..44b281cfb 100644 --- a/docs/docs/game/introduction.md +++ b/docs/docs/game/introduction.md @@ -1,46 +1,49 @@ --- title: OceanBase 数据库大赛 --- +# OceanBase 数据库大赛 > ***注意*** 由于最新代码的事务模型与2022年已经不同,因此最新代码不能通过MiniOB-2022的训练营测试的basic用例,但是不影响做其它的用例测试。同学们遇到官方代码无法通过MiniOB-2022的basic用例,请忽略。 -# OceanBase 数据库大赛 +## 大赛介绍 2022 OceanBase 数据库大赛是由中国计算机学会(CCF)数据库专业委员会指导,OceanBase 与蚂蚁技术研究院学术合作团队联合举办的数据库内核实战赛事。本次大赛主要面向全国爱好数据库的高校学生,以“竞技、交流、成长”为宗旨,搭建基于赛事的技术交流平台,促进高校创新人才培养机制,不仅帮助学生从0开始系统化学习数据库理论知识,提升学生数据库实践能力,更能帮助学生走向企业积累经验,促进国内数据库人才的发展,碰撞出创新的火花。 更多详情, 请参考 [OceanBase 大赛](https://open.oceanbase.com/competition/index) -在开始参加大赛或者训练营之前,需要创建自己的代码仓库,这里有一个gitee的使用说明: -[大赛手把手入门教程](./gitee-instructions.md) - -作为参考,这里有第一届数据库大赛的题目介绍: -[第一届数据库大赛题目介绍](./miniob_topics.md) - -还有往届选手给出了一些题解: -- [date 测试说明](./miniob-test-comment-date.md) -- [date 实现解析](./miniob-date-implementation.md) -- [drop table 实现解析](./miniob-drop-table-implementation.md) - -在参赛前,除了学习基础的理论知识,还可以使用OceanBase提供的训练营,来快速上手: -[训练营](https://open.oceanbase.com/train?questionId=200001) +## 训练营 +[OceanBase 训练营](https://open.oceanbase.com/train)是大赛测试使用的平台,同时也可以用于日常训练测试。 训练营是一个自动化黑盒测试平台。同学们可以按照题目的描述要求,基于MiniOB实现相应的SQL功能,然后将自己的代码提交至训练营做测试验证,最终得到测试结果。 +在开始参加大赛或者训练营之前,需要创建自己的代码仓库,这里有一个github的使用说明:[大赛手把手入门教程](./github-instroduction.md) + 当前训练营有两个MiniOB的题库,其中MiniOB是2021年OceanBase大赛的题库,MiniOB-2022是2022年数据库大赛的题库。题库中都会有basic测试用例,是MiniOB官方代码中既有的功能,通常不需要同学们做修改。此题目的目的是为了检测在实现新功能时,不破坏现有的功能。 ***注意*** 由于最新代码的事务模型与2022年已经不同,因此最新代码不能通过MiniOB-2022的训练营测试的basic用例,但是不影响做其它的用例测试。同学们遇到官方代码无法通过MiniOB-2022的basic用例,请忽略。 -训练营的使用方法比较简单,不过这里也有一个小手册: -[训练营使用手册](https://ask.oceanbase.com/t/topic/35600372) +训练营的使用方法比较简单,使用手册参考:[训练营使用手册](https://ask.oceanbase.com/t/topic/35600372) -为了方便大家使用训练营时获取调试信息,这里有一个小手册: -[训练营调试输出手册](./debug-output.md) +为了方便大家使用训练营时获取调试信息,这里有一个小手册:[训练营调试输出手册](./debug-output.md) 注意,在训练营开始前,需要注意自己的程序输出需要满足一定的要求,请参考: [提交测试需要满足的输出要求](./miniob-output-convention.md) -我们也收集了一些常见问题,可以参考: -[常见问题](https://ask.oceanbase.com/t/topic/35601465) +我们也收集了一些常见问题,可以参考:[常见问题](https://ask.oceanbase.com/t/topic/35601465) 训练营建议: 训练营对同学们的大工程实战能力提升非常高,在现在有的几万行代码上需要添加非常多的功能,整个训练营完成后代码量很可观。因此,同学们在实现各种功能时,不要一直堆砌代码,需要不停的优化重构现有功能模块与架构,以使自己的代码能够稳步前进。 + +## 赛题介绍 + +作为参考,这里有第一届数据库大赛的题目介绍: +[第一届数据库大赛题目介绍](./miniob_topics.md) + +## 赛题题解 +还有往届选手给出了一些题解: +- [date 测试说明](./miniob-test-comment-date.md) +- [date 实现解析](./miniob-date-implementation.md) +- [drop table 实现解析](./miniob-drop-table-implementation.md) + + +