DCache-CacheServer分析(一)

2019年12月7日

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

DCache版本:1.0.1

一、服务列表

启动时会启动多个服务对象:

  • 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文件)的处理流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员柒叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值