Skip to content

Cloudlab docs #576

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 27, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,24 +63,18 @@ MiniOB 整体架构如下图所示:
OceanBase 初赛基于一套适合初学者实践的数据库实训平台 MiniOB,代码量少,易于上手学习,包含了数据库的各个关键模块,是一个系统性的数据库学习平台。基于该平台设置了一系列由浅入深的题目,以帮助同学们更好"零"基础入门。

为了帮助大家能在大赛中取得好成绩,我们提供了一系列的教程和指导,帮助大家更好地学习数据库基础知识,更好地完成大赛题目。
欢迎大家查看[《从0到1数据库内核实战教程》 视频教程](https://open.oceanbase.com/activities/4921877?id=4921946),视频中包含了代码框架的介绍和一些入门题目的讲解。
欢迎大家查看[《从0到1数据库内核实战教程》 视频教程](https://open.oceanbase.com/course/427),视频中包含了代码框架的介绍和一些入门题目的讲解。
> 由于MiniOB是一个持续演进的产品,视频教程中有些内容会与最新代码有冲突,建议大家参考讲解中的思路。

大赛的初赛是在MiniOB上进行的,同学们可以在前几届的题目上进行提前训练,可以让自己比别人提前一步。大家在日常训练时可以在[MiniOB 训练营](https://open.oceanbase.com/train?questionId=500003) 上提交代码进行测试。
大赛的初赛是在MiniOB上进行的,同学们可以在前几届的题目上进行提前训练,可以让自己比别人提前一步。大家在日常训练时可以在[MiniOB 训练营](https://open.oceanbase.com/train) 上提交代码进行测试。

在提交前, 请参考并学习 [训练营使用说明](https://ask.oceanbase.com/t/topic/35600372)。
在提交前, 请参考并学习 [训练营使用说明](https://oceanbase.github.io/miniob/dev-env/how_to_submit_for_testing/)。

如果大家在大赛中或使用训练营时遇到一些问题,请先查看[大赛 FAQ](https://ask.oceanbase.com/t/topic/35601465)。

# 在线开发平台

搭建开发环境是一个比较耗时而且繁琐的事情,特别是对于初学者。为了让大家更快地上手 MiniOB,本仓库基于 Gitpod 建立了快速在线开发平台。点击下面的按钮即可一键体验(建议使用 Chrome 浏览器)。

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/oceanbase/miniob)

> 注意:这个链接打开的是MiniOB主仓库的开发环境,同学们需要通过gitpod进入自己的仓库开发环境。

首次进入 Gitpod 时需要安装一些依赖。安装完成后,终端界面会显示 "Dependency installed successfully"。运行 `bash build.sh --make -j4` 命令即可编译 MiniOB。
搭建开发环境是一个比较耗时而且繁琐的事情,特别是对于初学者。为了让大家更快地上手 MiniOB,我们为大家提供了一个[开源学堂在线编程环境](./docs/docs/dev-env/cloudlab_setup.md),推荐大家使用开源学堂在线编程环境进行实验,在线编程环境已经提供了可以直接用于 MiniOB 编程的环境,便于大家快速开始。对于希望在本地准备开发环境的同学,[这篇文档](./docs/docs/dev-env/introduction.md) 中已经介绍的十分详细,请先认真阅读。如果仍有疑问,欢迎提问,也非常欢迎刚刚入门的同学分享自己准备开发环境的经验。

# Contributing

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/db_course_lab/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ title: 数据库系统实现原理与实践课程实验

1. **学习 C++ 编程基础。** MiniOB 用 C++ 编写,如果你没有 C++ 编程基础,请先参考本文中 `c++编程语言学习` 的参考资料(或者其他任何资料)学习 C++ 基础知识。可以通过 Cpplings: `src/cpplings/README.md` 和 [LAB#0](./lab0.md) 来做一个编程练习。
2. **准备自己的代码仓库。** 请参考[文档](../game/github-introduction.md),在 Github/Gitee 上创建自己的**私有代码**仓库。(**请不要创建公开仓库,也不要将代码提交到公开仓库。**)
3. **准备自己的开发环境。** 我们为大家提供了一个[开源学堂在线编程环境](./cloudlab_setup.md),推荐大家使用开源学堂在线编程环境进行实验,在线编程环境已经提供了可以直接用于 MiniOB 编程的环境,便于大家快速开始。对于希望在本地准备开发环境的同学,[这篇文档](../dev-env/introduction.md) 中已经介绍的十分详细,请先认真阅读。如果仍有疑问,欢迎提问,也非常欢迎刚刚入门的同学分享自己准备开发环境的经验。
3. **准备自己的开发环境。** 我们为大家提供了一个[开源学堂在线编程环境](../dev-env/cloudlab_setup.md),推荐大家使用开源学堂在线编程环境进行实验,在线编程环境已经提供了可以直接用于 MiniOB 编程的环境,便于大家快速开始。对于希望在本地准备开发环境的同学,[这篇文档](../dev-env/introduction.md) 中已经介绍的十分详细,请先认真阅读。如果仍有疑问,欢迎提问,也非常欢迎刚刚入门的同学分享自己准备开发环境的经验。
4. **浏览实验手册中的文档。** 实验手册文档位于本目录下,需要大家理解各个题目描述功能,写代码,实现题目要求的功能。[MiniOB 教程](https://open.oceanbase.com/course/427)中有一些视频讲解教程,可以辅助学习 MiniOB。
5. **提交自己的代码到线上测试平台**(需要使用 git 命令提交代码,可参考[文档](../game/git-introduction.md)),在训练营中提交测试(参考[训练营使用说明](https://ask.oceanbase.com/t/topic/35600372) )。
6. **继续重复上述 4-5 步骤,直到完成所有实验题目。** 提交代码后,训练营会自动运行你的代码,返回测试结果。你需要根据训练营中返回的日志信息,继续修改自己的代码/提交测试。并不断重复这一过程,直到完成所有实验题目。此时,恭喜你,本门课程的实验课程你拿到了满分。
Expand All @@ -46,7 +46,7 @@ title: 数据库系统实现原理与实践课程实验
如果你已经对 Git/Github 的使用有了一定的了解,可以参考[Github 使用文档](../game/github-introduction.md) 或 [Gitee 使用文档](../game//gitee-instructions.md)来创建自己的 MiniOB 代码仓库(**注意:请创建私有(Private)仓库**)。

#### 2. 准备自己的开发环境
MiniOB 的开发环境需要使用 Linux/MacOS 操作系统,建议使用 Linux 操作系统。我们为大家准备好了一个[开源学堂在线编程环境](./cloudlab_setup.md)(**建议大家优先使用在线编程环境,避免由于自己开发环境问题导致的bug**),除此之外,我们准备了详细的[本地开发环境准备文档](../dev-env/introduction.md)。
MiniOB 的开发环境需要使用 Linux/MacOS 操作系统,建议使用 Linux 操作系统。我们为大家准备好了一个[开源学堂在线编程环境](../dev-env/cloudlab_setup.md)(**建议大家优先使用在线编程环境,避免由于自己开发环境问题导致的bug**),除此之外,我们准备了详细的[本地开发环境准备文档](../dev-env/introduction.md)。

#### 3. 在开发环境中构建调试 MiniOB,并验证 MiniOB 的基本功能
在准备好自己的开发环境后,你就可以下载 MiniOB 代码,编译 MiniOB 并运行测试用例,验证 MiniOB 的基本功能。
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,23 @@ title: 开源学堂在线编程环境开发 MiniOB
# 开源学堂在线编程环境开发 MiniOB

## 加入课程
加入课程链接: [数据库系统实现原理与实践2025春](https://t.cloudlab.top/labAdminRegister-oceanbase/1aEaMb)

如下图加入课程:
![](images/cloudlab-setup-join-class.png)

加入课程链接: [MiniOB 日常练习](https://oceanbase.beta.oscollege.net/os/6uBLht)

## 初始化代码环境

### 初始化项目代码
1. 进入课程学习界面后,大家可以在左侧课程目录中找到对应的实验,然后点击对应的目录项,查看对应的实验的文档。

2. 点击上方`启动环境`即可启动开发环境,每次实验的开发环境中的内容是会持久化保存在云端。
1. 点击上方`启动环境`即可启动开发环境,每次实验的开发环境中的内容是会持久化保存在云端。

3. 点击实验工具中的`vscode`来进行开发,将项目在浏览器中打开。
2. 点击实验工具中的`vscode`来进行开发,将项目在浏览器中打开。
![](images/cloudlab-setup-startenv.png)

4. 点击在浏览器中打开,单独打开一个网页作为开发页面。
3. 点击在浏览器中打开,单独打开一个网页作为开发页面。
![](images/cloudlab-setup-openvscode.png)

5. `vscode`中只提供了开发环境,需要同学们从[https://github.com/oceanbase/miniob](https://github.com/oceanbase/miniob)中将项目克隆到环境中。使用下面命令将项目`clone`下来之后:`git clone https://github.com/oceanbase/miniob.git`,可以看到在`workspace`下面有一个`miniob`的文件夹。
4. `vscode`中只提供了开发环境,需要同学们从[https://github.com/oceanbase/miniob](https://github.com/oceanbase/miniob)中将项目克隆到环境中。使用下面命令将项目`clone`下来之后:`git clone https://github.com/oceanbase/miniob.git`,可以看到在`workspace`下面有一个`miniob`的文件夹。
![](images/cloudlab-setup-miniob.png)
6. 现在将`vscode`的工作目录设置成`miniob`文件夹,从左侧栏中打开`miniob`的文件夹即可,如下图。
5. 现在将`vscode`的工作目录设置成`miniob`文件夹,从左侧栏中打开`miniob`的文件夹即可,如下图。
![](images/cloudlab-setup-workspace.png)

#### 开发环境配置
Expand All @@ -42,7 +37,7 @@ title: 开源学堂在线编程环境开发 MiniOB
![](images/cloudlab-setup-launch-config.png)
![](images/cloudlab-setup-debug.png)
## 提交作业
实验课作业使用提交平台进行提交,提交平台:[OceanBase训练营](https://open.oceanbase.com/train?questionId=200001)
实验课作业使用提交平台进行提交,提交平台:[OceanBase训练营](https://open.oceanbase.com/train)

训练营提交代码需要gitee/github的仓库,并且大家创建的仓库必须是设置为**私有仓库**(否则会提交失败),具体教程可以参考下面链接:

Expand All @@ -55,10 +50,8 @@ title: 开源学堂在线编程环境开发 MiniOB
## 注意事项
1. 注意在线平台的实验时长的限制,到达限制之后会*回收当前环境*,但是**在持久化目录下的文件不会被清理,会持久保存**,就是上文提到的`workspace`下的文件。注意如果需要`debug`,一定要注意剩余环境时长。
2. 需要及时将代码上传到`github/gitee`上避免丢失代码。
3. 共有5个实验,实验文档会持续更新。
4. MiniOB的资料:[MiniOB](https://oceanbase.github.io/miniob/)
3. MiniOB的资料:[MiniOB](https://oceanbase.github.io/miniob/)
## 可能会出现的问题
出现了问题请先查看相关文档,对于一些文档中没有出现的异常提示/报错可以上网搜索,查询资料然后再可以问问助教,同学和老师。

### Github的网络没有问题,但是push代码失败
1. 使用令牌来做Github的身份验证,详细参考:
Expand Down
2 changes: 1 addition & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ nav:
- dev-env/miniob-how-to-debug.md
- dev-env/how_to_submit_for_testing.md
- dev-env/integration_test.md
- dev-env/cloudlab_setup.md

- 设计文档:
- design/miniob-architecture.md
Expand Down Expand Up @@ -54,7 +55,6 @@ nav:
- game/git-introduction.md
- 数据库系统实现原理与实践:
- db_course_lab/overview.md
- db_course_lab/cloudlab_setup.md
- db_course_lab/lab0.md
- db_course_lab/lab1.md
- db_course_lab/lab2.md
Expand Down