首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >fundb-server设计与实现

fundb-server设计与实现

作者头像
用户4700054
发布2022-08-17 12:55:25
发布2022-08-17 12:55:25
3910
举报

fundb-server设计与实现

fundb-server 设计

  • fundb-server的实现是基于wiretiger,目前设计采用主从架构。参考了部分daos的框架代码,服务端上层采用go语言开发,数据库服务层是采用c来写。fundbjust for fun的意思。设计的主要目的是提供kv的服务,灵活的操作kv数据库。目前完成了dbservice的服务,包括create schema/delete schema/query schema meta/set kv/get kv/del kv的功能。如果想要存储服务的配置服务,可以基于这个二次开发。
  • 如果是fundb-server的架构,所有来自客户端的请求都路由到go服务端的grpc服务,然后采用多线程和本地套接字的方式的转发到dbservice层,请求由dbservice处理完成后在给go的服务层,最终转发给客户端。

fundb-server 源代码

代码语言:javascript
复制
git clone git@github.com:perrynzhou/fundb-server.git

wiretiger 编译和安装

代码语言:javascript
复制
$ wget https://github.com/wiredtiger/wiredtiger/archive/refs/tags/10.0.0.tar.gz
$ tar zxvf 10.0.0.tar.gz && cd wiredtiger-10.0.0/
$ env CFLAGS="-ggdb3 -O0" ./configure 

$ make CFLAGS="-ggdb3 -O0" && make install

编译drpc服务端和客户端

代码语言:javascript
复制
$ git clone git@github.com:perrynzhou/fundb-server.git
$ cd fundb-server/ && ./build.sh

编译存储engine服务

代码语言:javascript
复制
$ cd fundb-server/module/dbservice && ./build.sh
// demo 是配置服务的存储服务,/tmp是数据库存储路径,4代表线程数
$ ./engine conf.json

启动dbserver服务

代码语言:javascript
复制
// 启动kv 的存储服务,接受哦来自drpc服务端的请求
$ cd cmd && dbserver -c conf.json

客户端请求示例

代码语言:javascript
复制
// 请求创建创建schema
$ cd cmd && dbclient -n 3
//删除schema
$ ./dbclient  -t drop_schema -n 10
// put kv
$ dbclient -t put_kv -n 3
// get kv
$ dbclient -t get_kv -n 3

fundb-server项目进度

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 存储内核技术交流 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • fundb-server设计与实现
    • fundb-server 设计
    • fundb-server 源代码
    • wiretiger 编译和安装
    • 编译drpc服务端和客户端
    • 编译存储engine服务
    • 启动dbserver服务
    • 客户端请求示例
  • fundb-server项目进度
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档