game 角色相关记录
GameServer启动
(role, misc, mail, offline)
从共享内存中加载数据到m_mBlob中
如果共享内存没有则从DB加载
主要是修改了同步共享内存,共享内存同步数据库
{//role,misc
getRoleByUid()
内存
map<uint32_t, list<>::iterator> m_map;//管理内存cache
list<pair<uint32_t, Role*>> m_list;
blob
mfw::CMemKV m_mBlob;
存储:zlib压缩sdp存储,//管理共享内存
共享内存
getRoleByUid:
访问内存,如果内存没有,从blob加载出来并放到内存中
RoleManager::loop(50ms)
{
1.Role::loop 2s bChanged->serialieze()->setBlobByUid() m_mBlob.set --写入到m_mBlob中,写了共享内存
2.loop删除的时候如果 bChanged->serialieze()->setBlobByUid()
定时删除不活跃,和根据配置的最小和最大数量删除
}
{
BlobRoleManager::loop
BlobMiscManager::loop
将变化的blob放入入库的线程队列中
SyncDbThread
map<string, SyncDataTypePtr> m_mQueueItem;
mfw::CThreadQueue<SyncDataTypePtr> m_dataQueue;
}
SyncDbThread
{
syncThreadEntry入库线程
从队列m_dataQueue,m_mQueueItem pop出来入库
executeSave 执行入库操作
执行完成之后放入完成队列mfw::CThreadQueue<SyncDataTypePtr> m_finishQueue
}
loop从完成队列m_finishQueue取出来。。
}
{//mail
BlobMailManager::loop
m_stLruCache.loop 有变化的mail写入m_mBlob
BlobMailManager::getInstance()->startThead//mail入库线程
}
{//offline
BlobOfflineManager::getInstance()->startThead//offline入库线程
}
数据库
GameServer关闭
game 角色相关记录的更多相关文章
- [Android学习笔记]理解焦点处理原理的相关记录
焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...
- 关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset)
关于视觉跟踪中评价标准的相关记录(The Evaluation of Visual Tracking Results on OTB-100 Dataset) 2018-01-22 21:49:17 ...
- Linux系列笔记 - vim相关记录
一.常用到的vim命令 这里只简单记录常用到的命令,后面会有自己记录的命令,但有些可能不常用. 常规模式: gg 跳到文件头 shift+g 跳到文件尾 行数+gg 跳到指定行 如:123gg 跳到1 ...
- web app 相关记录
今天在手机浏览器上运行cocos2d-html5的sample, crystalcraze运行起来只有10~20帧, moonwarrior只有20~30帧,很不理想的数据: 记录下几个web app ...
- oracle数据库管理--对象、角色相关查询
1.数据字典: 记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有用户者为sys用户.用户只能在数据字典上执行查询操作(select语句),而其维护与修改是由系统自动完成的.数据字 ...
- quartz相关记录
1.http://www.quartz-scheduler.org/api/2.3.1-SNAPSHOT/ api地址 2.https://www.jianshu.com/p/3c3e166a7da1 ...
- Jexus使用的相关记录
前言 本文是零零散散的记录,部分内容是我在平时工作中用到的,部分是从群里"偷"来的,所以难免会有一些错误. 主要还是希望能帮到部分使用Jexus的朋友. 安装 curl https ...
- powerdesigner相关记录
背景 项目逐步开始规范化,表设计直接用designer来,然后生成语句,到oracle数据库,把相关的操作等记录一下, designer版本:15.1 oracle版本:11.2,64位 oracle ...
- git使用相关记录
上传github操作记录:https://blog.csdn.net/pql925/article/details/72772660 git提交仓库相关:https://blog.csdn.net/M ...
随机推荐
- GMA Round 1 函数求值
传送门 函数求值 设函数$f(x)=x^{2018}+a_{2017}*x^{2017}+a_{2016}*x^{2016}+...+a_{2}*x^2+a_{1}*x+a_{0}$,其中$a_{0} ...
- delphi 响应鼠标进入控件消息
procedure MSGEnter(var msg:TMessage);message CM_MOUSEENTER;//响应进入的消息 procedure MSGLeave(var msg: TMe ...
- 安装bootcamp时提示“找不到$winpedriver$文件夹,请验证该文件夹是否和bootcamp处于同一文件夹内?”
问题:我苹果系统是10.8.3的 装的win7 64位的! 这个bootcamp是我在别人那里拷贝的,我装的时候就这样了,但是别人装是好好的,还有我在MAC系统下载bootcamp的时候我的U盘格式是 ...
- mysql select into 不支持
不支持的 select * into order_new from orders 改为 Create table order_new(select * from orders)
- 【Java】maven多项目资源共享
方案一: <resources> <resource> <!-- <directory>${project.parent.relativePath}/../. ...
- 深入理解Java String类(综合)
在Java语言了中,所有类似“ABC”的字面值,都是String类的实例:String类位于java.lang包下,是Java语言的核心类,提供了字符串的比较.查找.截取.大小写转换等操作:Java语 ...
- 让rpc支持双向通信
rpc采用了C/S模型,不支持双向通信:client只能远程调用server端的RPC接口,但client端则没有RPC供server端调用,这意味着,client端能够主动与server端通信,但s ...
- Unity应用架构设计(7)——IoC工厂理念先行
一谈到 『IoC』,有经验的程序员马上会联想到控制反转,将创建对象的责任反转给工厂.IoC是依赖注入 『DI』 的核心,大名鼎鼎的Spring框架就是一个非常卓越的的控制反转.依赖注入框架.遗憾的是, ...
- MySQL遇到Deadlock found when trying to get lock,解决方案
最近遇到一个MYSQL update语句出现Deadlock found when trying to get lock的问题,分析一下原因. 什么情况下会出现Deadlock found when ...
- maven project 报错解决方法
1 maven 在添加包后出错,project 处有红线的解决办法 Maven默认会使用本地缓存的库来编译工程,对于上次下载失败的库,maven会在~/.m2/repository/<group ...