git clone [email protected]:HuangDunD/DDBMS.git
git submodule update --init --recursive
# 安装brpc依赖
sudo apt-get install -y git g++ make libssl-dev libgflags-dev libprotobuf-dev libprotoc-dev protobuf-compiler libleveldb-dev
sudo apt-get install -y libsnappy-dev
cd deps/brpc
mkdir build && cd build && cmake .. && cmake --build . -j6 && make install
目前,整个系统分为服务端和元数据服务器meta_server。
对meta_server进行编译之前需要进行相关参数的配置
dbconfig.h
//config for metaserver
static const std::string DATA_DIR = "/home/t500ttt/DDBMS/data/"; //这里改成自己的数据存放地址,要自己新建一个文件夹
static const std::string META_SERVER_FILE_NAME = "META_SERVER.meta";
static const int META_SERVER_PORT = 8001; // maybe not used
static const std::string META_SERVER_LISTEN_ADDR = "0.0.0.0:8001"; //这里可以修改元数据服务器的监听地址
static const int idle_timeout_s = -1;
之后可以使用以下命令来进行元数据服务器的编译:
cd meta_server
mkdir build
cd build
cmake .. [-DCMAKE_BUILD_TYPE=Debug]|[-DCMAKE_BUILD_TYPE=Release]
make <-j4>|<-j8> # 选择4 or 8线程编译
对数据库服务端进行编译之前无须进行额外配置,本项目通过gflag可以在命令行输入相关参数避免反复编译
你可以使用以下命令来进行服务端的编译:
mkdir build
cd build
cmake .. [-DCMAKE_BUILD_TYPE=Debug]|[-DCMAKE_BUILD_TYPE=Release]
make <-j4>|<-j8> # 选择4 or 8线程编译
首先运行meta_server:
cd meta_server/build
./meta_server
然后开启数据库服务端,可以根据自己的机器配置选择合适的节点数量配置伪分布环境,有条件的同学也可以部署真分布式环境,目前当前项目不支持用户直接输入SQL,最高层级为事务层,实验的目标是通过测试样例,并完成性能测试
mkdir build/test
./相应测试用例
GoogleTest框架测试
包含以下模块测试: 每一个测试模块的使用和需要完成的代码会在各个任务中详细列出, 以下测试文件也并不是全部都需要的。具体任务请看大作业文档
-
事务模块:
- Lock_manager_test
- transaction_test transaction_test2
-
日志模块:
- log_manager_test
-
Raft模块:
- raft_test
-
性能测试:
- benchmark_test