Skip to content

Commit

Permalink
修复文档中的一些链接 (oceanbase#415)
Browse files Browse the repository at this point in the history
### What problem were solved in this pull request?

Problem:
修复文档中的一些链接
  • Loading branch information
hnwyllmm authored May 20, 2024
1 parent eff2408 commit 87d9a37
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 31 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<div align="left">

[![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)

Expand All @@ -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/)。建议学习:
Expand Down
12 changes: 6 additions & 6 deletions docs/docs/blog/1.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ title: High-Performance Concurrency Control Mechanisms for Main-Memory Databases

论文以 lock-free hashtable index为例,介绍并发控制策略,也可用于trees以及skip list等顺序索引结构中。

<img src="images/1-storage-engine-prototype.png" width = "50%" alt="memory storage engine prototype" align=center />
![memory storage engine prototype](images/1-storage-engine-prototype.png)

**Record**

Expand All @@ -54,7 +54,7 @@ title: High-Performance Concurrency Control Mechanisms for Main-Memory Databases
- 增加了一个无锁B-tree(Bw-tree)用于范围查询,叶子节点指向第一个版本
- 可同时存在多个hash index(见附录)

<img src="images/1-hekaton-storage-engine.png" width = "50%" alt="hekaton storage engine" align=center />
![hekaton storage engine](images/1-hekaton-storage-engine.png)

## 事务执行
1. Active:事务创建,获取开启时间戳
Expand All @@ -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

<img src="images/1-transaction-state.png" width = "50%" alt="事务状态图" align=center />
![事务状态图](images/1-transaction-state.png)

## 版本可见性
RT为事务T读取时间,
Expand Down Expand Up @@ -127,7 +127,7 @@ Commit依赖将所有的等待步骤都推迟到了Commit阶段。
包含Index Scan定位对应版本以及读/写。
可串行化级别下,使用事务开始时间作为读操作TS。

<img src="images/1-transaction-process-phases.png" width = "40%" alt="事务流程图" align=center />
![事务流程图](images/1-transaction-process-phases.png)

1. Start Scan: 执行scan操作,记录scan信息
2. Check Predicate: 谓词检查
Expand All @@ -137,7 +137,7 @@ Commit依赖将所有的等待步骤都推迟到了Commit阶段。
6. Update Version: 执行更新,插入新版本,旧版本end修改为事务ID(失败就abort),写入WriteSet
7. Delete Version: 修改旧版本end字段为事务ID,记录其指针到WriteSet

<img src="images/1-transaction-process-phases-2.png" width = "40%" alt="事务流程图2" align=center />
![事务流程图2](images/1-transaction-process-phases-2.png)

**PreCommit**

Expand Down Expand Up @@ -196,7 +196,7 @@ SI 或者 RC隔离级别性能更好
- 只对最新版本加锁
- 使用Record End 字段实现(64 bits)

<img src="images/1-record-lock.png" width = "40%" alt="记录锁" align=center />
![记录锁](images/1-record-lock.png)

### Bucket Lock(Range Locks)
- 避免幻读
Expand Down
43 changes: 23 additions & 20 deletions docs/docs/game/introduction.md
Original file line number Diff line number Diff line change
@@ -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)



0 comments on commit 87d9a37

Please sign in to comment.