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 ...
随机推荐
- JS_理解函数参数按值传递
本文是我基于红宝书<Javascript高级程序设计>中的第四章,4.1.3传递参数小节P70,进一步理解javaSript中函数的参数,当传递的参数是对象时的传递方式. (结合资料的个人 ...
- JS_高程4.变量,作用域和内存问题(3)垃圾收集
JavaScript的自动垃圾收集机制 执行环境会负责管理代码执行过程中使用的内存,编写JavaScript程序时,所需内存的分配以及无用内存的回收完全实现自动管理. 原理: 找出那些不再继续使用的变 ...
- 微信小程序中的单位
vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%. vh:viewpoint height,视窗高度,1vh等于视窗高度的1%. rpx:rpx单位是微信小程序中css的尺寸单 ...
- C# 实现Remoting双向通信
本篇文章主要介绍了C# 实现Remoting双向通信,.Net Remoting 是由客户端通过Remoting,访问通道以获得服务端对象,再通过代理解析为客户端对象来实现通信的 闲来无事想玩玩双向通 ...
- JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?(转)
如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610m java -Xmx1610M -versionjava -Xmx1610m -version 网摘的tomcat内 ...
- Apache Kafka 快速入门
概述 Apache Kafka是一个分布式发布-订阅消息系统和强大的队列,可以处理大量的数据,将消息从一个端点传递到另一个端点.Kafka适合离线和在线消息消费,Kafka消息保存在磁盘上,并在集群内 ...
- jvm理论-字节码指令
Java虚拟机的指令由一个字节长度的.代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个代表此操作所需参数(称为操作数,Operands)而构成. 基本数据类型 1.除了l ...
- mysql百分比显示
select doll_name, type, value concat( left(get /(get+ fall)*100, 5), '%') as 抓取概率 from doll_conf
- SCF: 简单配置门面[转]
原文:https://blog.csdn.net/koqizhao/article/details/82178100 Simple Configuration Facade :简单配置门面 是 代码 ...
- 分析轮子(九)- Cloneable.java
注:玩的是JDK1.7版本 一:Cloneable.java 接口也是标记接口,所以,它没有任何方法和属性,实现此接口表示的意思是:可以调用 Object.java 类的 clone() 方法,进行简 ...