CMU15445-2021-FALL 项目教程
1. 项目的目录结构及介绍
CMU15445-2021-FALL/
├── src/
│ ├── buffer/
│ ├── catalog/
│ ├── concurrency/
│ ├── execution/
│ ├── index/
│ ├── storage/
│ ├── transaction/
│ ├── type/
│ └── common/
├── include/
│ ├── buffer/
│ ├── catalog/
│ ├── concurrency/
│ ├── execution/
│ ├── index/
│ ├── storage/
│ ├── transaction/
│ ├── type/
│ └── common/
├── test/
│ ├── buffer/
│ ├── catalog/
│ ├── concurrency/
│ ├── execution/
│ ├── index/
│ ├── storage/
│ ├── transaction/
│ ├── type/
│ └── common/
├── CMakeLists.txt
├── README.md
└── .gitignore
目录结构介绍
-
src/: 包含项目的源代码文件。
- buffer/: 缓冲池管理相关代码。
- catalog/: 数据库目录管理相关代码。
- concurrency/: 并发控制相关代码。
- execution/: 查询执行相关代码。
- index/: 索引管理相关代码。
- storage/: 存储管理相关代码。
- transaction/: 事务管理相关代码。
- type/: 数据类型相关代码。
- common/: 通用工具和辅助函数。
-
include/: 包含项目的头文件。
- 结构与
src/
类似,每个子目录对应相应的头文件。
- 结构与
-
test/: 包含项目的测试代码。
- 结构与
src/
类似,每个子目录对应相应的测试代码。
- 结构与
-
CMakeLists.txt: CMake 配置文件,用于构建项目。
-
README.md: 项目说明文档。
-
.gitignore: Git 忽略文件配置。
2. 项目的启动文件介绍
项目的启动文件通常位于 src/
目录下,具体文件名可能因项目结构而异。以下是一个典型的启动文件示例:
// src/main.cpp
#include <iostream>
#include "common/bustub_instance.h"
int main(int argc, char *argv[]) {
BustubInstance instance;
instance.Init();
instance.Run();
return 0;
}
启动文件介绍
- main.cpp: 主程序入口文件。
- 包含
BustubInstance
类的实例化,并调用Init()
和Run()
方法来初始化和运行数据库系统。
- 包含
3. 项目的配置文件介绍
项目的配置文件通常是一个独立的文件,用于配置数据库系统的各种参数。以下是一个典型的配置文件示例:
# config.yaml
database:
name: "my_database"
storage_path: "/path/to/storage"
buffer_pool:
size: 1024
page_size: 4096
concurrency:
isolation_level: "REPEATABLE_READ"
logging:
enabled: true
path: "/path/to/log"
配置文件介绍
- config.yaml: 配置文件,使用 YAML 格式。
- database: 数据库配置。
- name: 数据库名称。
- storage_path: 数据库存储路径。
- buffer_pool: 缓冲池配置。
- size: 缓冲池大小。
- page_size: 页面大小。
- concurrency: 并发控制配置。
- isolation_level: 隔离级别。
- logging: 日志配置。
- enabled: 是否启用日志。
- path: 日志文件路径。
- database: 数据库配置。
以上是 CMU15445-2021-FALL 项目的基本教程,涵盖了项目的目录结构、启动文件和配置文件的介绍。希望对您有所帮助!