DCache-CacheServer分析(一)

DCache-CacheServer分析(一)DCache 是一个基于 TARS 框架开发的分布式 NoSQL 存储系统 数据采用内存存储 支持连接后端 DB 实现数据持久化 DCache 采用集群模式 具有高扩展 高可用的特点 本文对 DCache 中 CacheServer 的结构做了总体分析 希望对初识 DCache 的开发者有所帮助

2019年12月7日

 本文对DCache的存储服务CacheServer做了总体介绍,让大家对存储服务有初步的了解。

DCache版本:1.0.1

一、服务列表

启动时会启动多个服务对象:DCache-CacheServer分析(一)

  • BackUpObj,         备份、恢复服务,
  • BinLogObj,           binlog处理
  • CacheObj,            缓存读服务,
  • WCacheObj            缓存写服务,
  • ControlAckObj,   备机上报心跳给主节点,     
  • RouterClientObj, 上报心跳给Router

二、运维指令

支持的指令如下:

help: 显示支持的指令列表 status: 显示Server的状态信息 statushash: (help指令中无解释) reload: 重新加载配置 syncdata: 回写所有脏数据 cachestatus: 内存使用情况 binlogstatus: binlog同步情况 ver: 显示Cache版本 erasedatainpage: 删除指定页范围内的数据 erasewrongrouterdata: 删除不属于此cacheserver的页 servertype: 显示服务状态,是主还是备 key: 显示信号量或者共享内存key dirtystatic: 统计不可淘汰的脏数据 calculateData: 统计未被访问数据大小 resetCalculatePoint: (help指令中无解释) setalldirty: 将cache内全部数据设置成脏数据 clearCache: 清空cache,危险操作,请三思

其中,以下命令在”help”指令中会展现,但没有对应的实现方法:

recreatedata, 备机重建数据

三、服务初始化顺序

1.拉取配置文件,读配置

2.注册服务对象

3.注册运维指令

4.属性上报服务(tarsproperty)初始化

5.状态上报服务(tarsstat)初始化

6.初始化RouterHandle,初始化路由信息

7.设置组信息

8.设置允许产生coredump的大小

9.初始化字段信息

10.生成binlog文件

11.启动定时生成binlog文件线程(_createBinlogFileThread)

12.hashmap初始化

  • 读取SemKey.dat
  • 共享内存初始化

13.MKCacheToDoFunctor 初始化

14.内存结构初始化(g_HashMap)

15.判断是否正在恢复数据(SlaveCreating.dat)

16.是否正在备份数据(dumping)

17.确定server启动模式,是master还是slave

18.主节点上报重启信息

19.创建获取Binlog日志线程(_syncBinlogThread)

20.创建获取备份源最后记录binlog时间的线程(_binlogTimeThread)

21.创建定时作业线程,负责读取路由表和回写脏数据等等(_timerThread)

22.创建淘汰线程(_eraseThread)

23.创建回写脏数据线程(_syncThread)

24.创建定时上报心跳线程(_heartBeatThread)

25.创建删除数据线程(_deleteThread),有开关

26.创建自动过期数据线程(_expireThread),有开关

27.创建回写所有脏数据线程(_syncAllThread)

28.初始化 EraseDataInPageFunctor

29.创建线程池_tpool,用来执行后台操作(1个线程)

30.启动统计线程,(_dirtyStatisticThread)

31.创建统计未访问数据线程(_clodDataCntingThread),有开关


写在最后

本文对DCache的概况做了整体介绍,帮助大家对DCache的各个Servant和服务处理流程有初步的了解。

后续,我会分多篇文章分别介绍每个线程(cpp文件)的处理流程。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/176521.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午9:43
下一篇 2026年3月26日 下午9:44


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号