littlebot
Published on 2025-04-13 / 1 Visits
0

【源码】基于C++的MiniOB数据库引擎

项目简介

MiniOB是OceanBase与华中科技大学联合开发的数据库入门实践工具,主要面向在校学生。其诸多模块做了简化,不考虑并发操作,旨在帮助学生快速了解数据库并深入学习数据库内核,使学生对数据库内核各模块功能及其关联有所认知,从而在使用数据库时能设计出高效的SQL。

项目的主要特性和功能

  1. 数据库内核学习工具:助力学生快速了解并深入学习数据库内核,明晰各模块功能及关联。
  2. SQL解析与执行:支持创建表、创建索引、插入数据、更新数据、删除数据等SQL命令的解析与执行。
  3. 事务处理:提供事务的开始、提交和回滚功能,保障数据的一致性和完整性。
  4. 日志管理:实现日志的生成、添加、同步、恢复及获取事务管理器等功能,确保操作可追溯与数据安全。
  5. 内存管理:借助内存池管理器和磁盘缓冲池,优化内存分配与释放,提升数据库性能和稳定性。
  6. 文件与目录操作:支持文件和目录的创建、打开、关闭、删除、读写和定位等操作,保障数据库文件的正确管理。
  7. 多线程支持:通过线程池和事件驱动架构(SEDA),支持多线程并发操作,提高并发处理能力。
  8. 性能监控:提供度量指标的收集和报告功能,便于监控和分析数据库性能。

安装使用步骤

环境准备

  • 确保系统已安装C++编译器(如GCC)和CMake。
  • 安装必要的依赖库,如libevent、gtest等。

获取源码

下载源码的zip压缩包并解压。

编译源码

  1. 进入项目目录:cd miniob
  2. 创建构建目录:mkdir build && cd build
  3. 运行CMake配置:cmake ..
  4. 编译项目:make

启动数据库

  1. 运行编译生成的可执行文件:./observer
  2. 数据库启动后,可通过客户端工具(如obclient)连接到数据库并执行SQL命令。

执行测试

  1. 运行单元测试:./unitest/unitest_test
  2. 运行性能测试:./perf/client_performance_test

提交测试

完成测试后,可在MiniOB训练营上提交代码进行测试。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】