真有趣的游戏内存数据库实践.pdf

面向游戏业务的内存数据库开发 真有趣的游戏内存数据库实践报告 正式开始之前 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 自我介绍 • 陈明达,花名:达达 • 来自厦门真有趣信息科技有限公司 • C#、PHP、Erlang、Go、AS3 • 杂而不精,现学现卖,土法造炮 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 今天主要的内容 • 游戏内存数据库方面的实践经验 • 游戏内存数据库的一些实现细节 • 供大家参考,希望大家可以少走弯路 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 为什么讲内存数据库 • 因为它影响产品的方方面面 • 产品品质:游戏过程要流畅,游戏数据要安全 • 开发效率:开发要简单高效,不要很容易出BUG • 运维效率:运维方案要成熟可靠并且高效 • 运营效率:要方便数据挖掘 • 它的演进过程也是架构演进的缩影 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 内存数据库的诞生过程 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 第一次实践 • 《魔法之城》,SLG,2008年 PHP • PHP + Memcached + MySQL • 手工编写数据库到缓存的加载代码 Memcached • 手工编写缓存到数据库的落地代码 MySQL CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 第一次实践遇到的问题 • 手工做的事情太多,每一个业务都 是特例,缺乏强约束力的规范,导 致BUG频发 • 没有事务保护,业务上的BUG直接 导致数据损坏,手工修数据和排查 问题耗费大量精力 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 迷茫阶段 • 怎样才能减少手工和特例化产生的BUG? • 怎么实现事务机制? • 怎么容灾? • 传统数据库还是KV数据库? • 是否有现成方案? CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 理清思路 • 时间和能力有限,做最有把握做到的事 • 使用MySQL,运维方案成熟可靠,便于数据挖掘 • 自动映射MySQL表结构,规则简单,容易自动化 • 在游戏进程内组织数据,运行效率最高,容易实现 CopyrightCopyright ©© 2016 SoFunny2016 SoFunny 第二次实践 • 《神仙道》,RPG,2010年 Erlang • Erlang + ETS + MySQL 业务逻辑 • 自动映射MySQL数据库结构 • 有事务机制 ETS • 有SQL日志

文档评论(0)

1亿VIP精品文档

相关文档