自己编写的数据库如何和mapkeeper相连进行评测

编程入门 行业动态 更新时间:2024-10-08 18:36:00

自己编写的<a href=https://www.elefans.com/category/jswz/34/1771350.html style=数据库如何和mapkeeper相连进行评测"/>

自己编写的数据库如何和mapkeeper相连进行评测

      刚开始遇到这个问题的时候首先的思路就是生成动态链接库和静态链接库,但是真的是好难,比如说怎么把怎么把第三方库加进去,怎么保证所有的头文件都可以被调用。想了好久都丝毫没有头绪,简直是已经接近崩溃的边缘了。(如果大家有什么详细的资料或者是方法可以分享下的话,欢迎在下面评论呦,可以共同学习)

然后我觉得我可以尝试下简单粗暴的方法,首先我在mapkeeper库中执行以下命令:

mkdir RHDB

然后把自己的数据库复制到这个文件夹中:

cp /home/hsk/kvcalue/software/RHDB/*  /mapkeeper/RHDB 

然后对makefile文件进行修改,编译需要编译的c文件,并生成mapkeeper_RHDB可执行文件用于和ycsb相连:


include ../Makefile.config
EXECUTABLE = mapkeeper_RHDB
NVM_SRC = ./db/mem/pflush.c ./db/mem/alloc_mem.cc
DB_SRC = ./db/rhtree.cc ./db/db.cc ./db/threadpool.cc ./db/log.cc
LIB_SRC = ./lib/city.cc
UTIL = ./util/testutil.cc
#MAIN = ./RHDBServer.cpp
TABLE = ./table/table.cc
all : thriftg++ -Wall -o $(EXECUTABLE) *cpp -I $(THRIFT_DIR)/include/thrift -I $(THRIFT_DIR)/include \/usr/local/lib/libleveldb.a /usr/local/lib/libsnappy.a -lpthread -lboost_thread -lboost_system -lboost_filesystem -lthrift -lleveldb -I ../thrift/gen-cpp  \-L $(THRIFT_DIR)/lib \-L ../thrift/gen-cpp -lmapkeeper \-L ./third-party/jemalloc-4.2.1/lib -ljemalloc -L ./third-party/tbb -ltbb -Itable -Iinclude -Idb/mem -Ilib -Idb -Iutil -Itbb  $(NVM_SRC) $(DB_SRC) $(LIB_SRC) $(UTIL) $(TABLE) \-Wl,-rpath,\$$ORIGIN/../thrift/gen-cpp                       \-Wl,-rpath,$(THRIFT_DIR)/lib \-std=c++11export_lib:export LD_LIBRARY_PATH=./third-party/tbb:./third-party/jemalloc-4.2.1/lib/
thrift:make -C ../thriftrun:./$(EXECUTABLE) --syncclean :-rm -rf $(THRIFT_SRC) $(EXECUTABLE) *.o wipe:-rm -rf data/*

在make的时候会报错显示找不到jemalloc和tbb对应的libjemalloc.so.2和libtbb.so.2找不到,主要是没有复制到/usr/lib里面

sudo cp libjemalloc.so.2 /usr/lib64/
sudo cp libtbb.so.2 /usr/lib64/

这是即会显示make成功。(这里面server.cpp文件修改和我上传过的资料“rocksdbsever.cpp”修改方式差不多,这里不再说明)

然后执行:

./mapkeeper_RHDB 0 1 1 /home/hsk/kvstore/software/mapkeeper/RHDB/data

在ycsb端执行下面脚本:

bin/ycsb load mapkeeper -s -P workloads/workloada -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/1_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloada -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/1_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*
bin/ycsb load mapkeeper -s -P workloads/workloadb -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/2_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloadb -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/2_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*
bin/ycsb load mapkeeper -s -P workloads/workloadc -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/3_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloadc -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/3_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*
bin/ycsb load mapkeeper -s -P workloads/workloadd -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/4_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloadd -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/4_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*
bin/ycsb load mapkeeper -s -P workloads/workloade -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/5_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloade -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/5_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*
bin/ycsb load mapkeeper -s -P workloads/workloadf -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/6_load.txt 2>&1
bin/ycsb run mapkeeper -s -P workloads/workloadf -p "mapkeeper.host=127.0.0.1" -p "mapkeeper.port=9090" > /home/hsk/kvstore/test_data/YCSB_RHDB/6_run.txt 2>&1
rm -rf /home/hsk/kvstore/software/mapkeeper/RHDB/data/*

 

更多推荐

自己编写的数据库如何和mapkeeper相连进行评测

本文发布于:2023-07-03 14:52:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1007923.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据库   mapkeeper

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!