前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fundb-server设计与实现

fundb-server设计与实现

作者头像
用户4700054
发布2022-08-17 12:55:25
3170
发布2022-08-17 12:55:25
举报
文章被收录于专栏:存储内核技术交流

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项目进度
                相关产品与服务
                对象存储
                对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档