安全公司报告
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210150030.5 (22)申请日 2022.02.08 (71)申请人 北京趣玩天橙科技有限公司 地址 100192 北京市海淀区宝盛南路1号院 26号楼5层5 05号 (72)发明人 吕文勇  (74)专利代理 机构 北京鼎真知识产权代理事务 所(普通合伙) 11815 专利代理师 洪波 (51)Int.Cl. A63F 13/77(2014.01) G06F 16/23(2019.01) G06F 16/27(2019.01) (54)发明名称 一种数据回滚实现内存一致性的方法及系 统 (57)摘要 本发明涉及一种数据回滚实现内存一致性 的方法及系统, 包括: 获取业务数据的原值, 并设 置更新值与副本值; 所述更新值与副本值初始设 置为原值; 业务数据更新时, 将业务数据变化后 结果写入所述更新值; 业务数据提交时, 将所述 更新值同步到所述原值; 业务出现异常, 业务数 据回滚时, 将所述副本值同步到所述原值。 本发 明方案粒度更细, 只有变化数据提交和回滚, 相 对性能更高, 解决了常见业务开发 中因为逻辑异 常引起的内存一致性问题, 极大方便了开发者把 主要精力集中到具体的业务开发逻辑上而非处 理异常以及异常引起的相关内存数据一致性问 题。 权利要求书1页 说明书8页 附图2页 CN 114504828 A 2022.05.17 CN 114504828 A 1.一种数据回滚实现内存一 致性的方法, 其特 征在于, 所述方法包括: 获取业务数据的原值, 并设置更新 值与副本值; 所述更新 值与副本值初始设置为原值; 业务数据更新时, 将业 务数据变化后结果写入所述更新 值; 业务数据提交时, 将所述更新 值同步到所述原值; 业务出现异常, 业 务数据回滚时, 将所述副本值同步到所述原值。 2.如权利要求1所述的方法, 其特征在于, 所述业务数据更新时, 将业务数据变化后结 果写入所述更新 值, 包括: 所述业务发生无异常的变化, 业 务数据发生更新时, 将更新后的业 务数据写入更新 值。 3.如权利要求2所述的方法, 其特 征在于, 所述方法还 包括: 所述业务发生异常变化, 业 务数据异常更新时, 所述更新 值不发生变化。 4.如权利要求1所述的方法, 其特征在于, 所述业务数据提交时, 将所述更新值同步到 所述原值, 包括: 所述业务数据更新、 提交过程均无异常时, 将所述更新值同步到所述原值, 完成业务数 据更新过程。 5.如权利要求1所述的方法, 其特征在于, 所述业务出现异常, 业务数据回滚时, 将所述 副本值同步到所述原值, 包括: 所述业务数据提交发生异常时, 业 务数据回滚, 将所述副本值同步到所述原值。 6.如权利要求1所述的方法, 其特 征在于, 所述方法还 包括: 所述更新 值发生异常时, 所述原值 不受影响。 7.一种数据回滚实现内存一 致性的系统, 其特 征在于, 所述系统包括: 原值获取 单元, 用于获取业 务数据的原值; 更新值设置单 元, 用于设置更新 值; 所述更新 值初始设置为原值; 副本值设置单 元, 用于设置副本值; 所述副本值初始设置为原值; 更新单元, 用于在业 务数据更新时, 将业 务数据变化后结果写入所述更新 值; 提交单元, 用于在业 务数据提交时, 将所述更新 值同步到所述原值; 回滚单元, 用于在业 务出现异常, 业 务数据回滚时, 将所述副本值同步到所述原值。 8.如权利要求7 所述的系统, 其特 征在于, 所述 提交单元, 具体用于: 所述业务数据更新、 提交过程均无异常时, 将所述更新值同步到所述原值, 完成业务数 据更新过程。 9.如权利要求7 所述的系统, 其特 征在于, 所述回滚单 元, 具体用于: 所述业务数据提交发生异常时, 业 务数据回滚, 将所述副本值同步到所述原值。 10.如权利要求7 所述的系统, 其特 征在于, 所述更新单 元, 具体用于: 所述业务发生无异常的变化, 业 务数据发生更新时, 将更新后的业 务数据写入更新 值; 所述业务发生异常变化, 业 务数据异常更新时, 所述更新 值不发生变化。权 利 要 求 书 1/1 页 2 CN 114504828 A 2一种数据回滚实现 内存一致性的方 法及系统 技术领域 [0001]本发明涉及网络通信技术领域, 尤其涉及 一种数据回滚实现内存一致性的方法及 系统。 背景技术 [0002]随着智能手机 的迅速普及, 与网络 的快速发展, 移动互联网的相关业务已逐渐成 为国内各厂商关注的焦点。 从整体行业来看, 中国手机游戏行业处于快速发展期。 近年来, 在电信运营商和手机游戏开 发商的联合推动下, 中 国的手机游戏行业, 取得了较快的发展。 随着互动娱乐技术的发展, 各种类型 的互动游戏类应用得到了极大 的发展, 存在着多种游 戏类型与游戏控制方式, 游戏的形式也从电脑或游戏 机向手机游戏方面过度。 [0003]传统的游戏服务器考虑性能的原因, 数据都是即时操作 内存的, 而不是即时操作 数据库。 通常一个游戏客户端请求过来时, 会引起多个模块的内存数据变化。 而在处理游戏 业务逻辑时, 如果中间抛 出异常, 则会出现内存数据一 致性的问题。 [0004]以一个玩家用钻石去商店购买道具的逻辑为例, 通常游戏逻辑的伪代码有两种实 现方式: [0005]//第一种 [0006]costDiamo nd()//扣钻石 [0007]somethingElse()/ /其他逻辑, 比如记录日志 [0008]addItem()/ /加道具 [0009]//第二种 [0010]addItem()/ /加道具 [0011]somethingElse()/ /其他逻辑, 比如记录日志 [0012]costDiamo nd()//扣钻石 [0013]对于第一种实现方式, 先扣后加。 如果中间代码(例如: somethingElse)抛出异常, 则会造成扣了玩家的钻石, 但是没有给玩家加上道具。 这对于玩家是不 公平的。 通常出现这 种情况后, 是通过手动根据日志去补偿玩家 道具。 [0014]对于第二种实现方式, 先加后扣。 如果中间代码(例如: somethingElse)抛出异常, 则会出现给加上道具了, 却没有扣除钻石。 这对于游戏运营商 是不公平的。 而且多次出现这 种情况, 会出现玩家不断刷道具的游戏运营事故。 [0015]无论用哪种 实现方式, 当出现了内存数据不一致的情况后, 都会对游戏产生一定 的影响。 [0016]传统的互联 网或者APP 服务器, 通常数据变化都是直接操作数据库的, 当发现错误 后, 可以直接执行回滚操作。 游戏服务器的数据变化修改因为性能考虑, 大多 是直接修改内 存的。 所以需要一个内存数据的一 致性解决方案, 而传统的数据库方案并不 适合。说 明 书 1/8 页 3 CN 114504828 A 3

.PDF文档 专利 一种数据回滚实现内存一致性的方法及系统

文档预览
中文文档 12 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共12页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种数据回滚实现内存一致性的方法及系统 第 1 页 专利 一种数据回滚实现内存一致性的方法及系统 第 2 页 专利 一种数据回滚实现内存一致性的方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 11:14:53上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。