beansdb 分析

(看完这个文章,想对源码有进一步了解,可以到我的git里面看注释,或者邮件我讨论。附上地址:https://github.com/PhoneLi/beansdb)

在开始看这篇文章之前,建议花几分钟看下beansdb的结构分析。

             beansdb的结构分析:http://blog.csdn.net/l402398703/article/details/19371515


简述:

         1:数据存储实现。bitcask储存模型,HashTree 实现数据索引。

         2:协议实现。使用memcached的代码;修改redis的AE事件异步驱动库;多worker线程, leader/follower 模式;

(leader/follower模式介绍:http://www.habadog.com/2012/01/11/leader-follower-thread-model

    bitcask模型介绍:http://blog.nosqlfan.com/html/955.html)

    

                                        

(由上图看出,数据冗余直接在服务server之间实现。采用3为冗余数量。)

--------------------------==============水平分割线=================------------------------------

运行流程:

     1:beansdb.c的main函数启动;

     2:getopt处理各参数;

     3:一些资源的初始化,例如 getrlimit() ,  item_init();    stats_init();   conn_init();(资源参数很多,建议不要花事件耗在这里。等看完后面的函数代码,便会自然理解参数的含义。);

     4:hs_open函数 {

          打开数据目录(没有则创建),hstore的初始化。函数结尾调用parallelize函数;
          parallelize函数:启动一些线程运行scan_thread,每个scan_thread

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值