[發明專利]一種數據回滾實現內存一致性的方法及系統有效
| 申請號: | 202210150030.5 | 申請日: | 2022-02-08 |
| 公開(公告)號: | CN114504828B | 公開(公告)日: | 2023-04-28 |
| 發明(設計)人: | 呂文勇 | 申請(專利權)人: | 北京趣玩天橙科技有限公司 |
| 主分類號: | A63F13/77 | 分類號: | A63F13/77;G06F16/23;G06F16/27 |
| 代理公司: | 北京鼎真知識產權代理事務所(普通合伙) 11815 | 代理人: | 洪波 |
| 地址: | 100192 北京市海淀*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 實現 內存 一致性 方法 系統 | ||
本發明涉及一種數據回滾實現內存一致性的方法及系統,包括:獲取業務數據的原值,并設置更新值與副本值;所述更新值與副本值初始設置為原值;業務數據更新時,將業務數據變化后結果寫入所述更新值;業務數據提交時,將所述更新值同步到所述原值;業務出現異常,業務數據回滾時,將所述副本值同步到所述原值。本發明方案粒度更細,只有變化數據提交和回滾,相對性能更高,解決了常見業務開發中因為邏輯異常引起的內存一致性問題,極大方便了開發者把主要精力集中到具體的業務開發邏輯上而非處理異常以及異常引起的相關內存數據一致性問題。
技術領域
本發明涉及網絡通信技術領域,尤其涉及一種數據回滾實現內存一致性的方法及系統。
背景技術
隨著智能手機的迅速普及,與網絡的快速發展,移動互聯網的相關業務已逐漸成為國內各廠商關注的焦點。從整體行業來看,中國手機游戲行業處于快速發展期。近年來,在電信運營商和手機游戲開發商的聯合推動下,中國的手機游戲行業,取得了較快的發展。隨著互動娛樂技術的發展,各種類型的互動游戲類應用得到了極大的發展,存在著多種游戲類型與游戲控制方式,游戲的形式也從電腦或游戲機向手機游戲方面過度。
傳統的游戲服務器考慮性能的原因,數據都是即時操作內存的,而不是即時操作數據庫。通常一個游戲客戶端請求過來時,會引起多個模塊的內存數據變化。而在處理游戲業務邏輯時,如果中間拋出異常,則會出現內存數據一致性的問題。
以一個玩家用鉆石去商店購買道具的邏輯為例,通常游戲邏輯的偽代碼有兩種實現方式:
//第一種
costDiamond()//扣鉆石
somethingElse()//其他邏輯,比如記錄日志
addItem()//加道具
//第二種
addItem()//加道具
somethingElse()//其他邏輯,比如記錄日志
costDiamond()//扣鉆石
對于第一種實現方式,先扣后加。如果中間代碼(例如:somethingElse)拋出異常,則會造成扣了玩家的鉆石,但是沒有給玩家加上道具。這對于玩家是不公平的。通常出現這種情況后,是通過手動根據日志去補償玩家道具。
對于第二種實現方式,先加后扣。如果中間代碼(例如:somethingElse)拋出異常,則會出現給加上道具了,卻沒有扣除鉆石。這對于游戲運營商是不公平的。而且多次出現這種情況,會出現玩家不斷刷道具的游戲運營事故。
無論用哪種實現方式,當出現了內存數據不一致的情況后,都會對游戲產生一定的影響。
傳統的互聯網或者APP服務器,通常數據變化都是直接操作數據庫的,當發現錯誤后,可以直接執行回滾操作。游戲服務器的數據變化修改因為性能考慮,大多是直接修改內存的。所以需要一個內存數據的一致性解決方案,而傳統的數據庫方案并不適合。
發明內容
本發明提供一種數據回滾實現內存一致性的方法及系統,解決現有技術中常見的內存一致性導致的游戲體驗問題。
根據本發明的一個方面,提供一種數據回滾實現內存一致性的方法,包括:
獲取業務數據的原值,并設置更新值與副本值;所述更新值與副本值初始設置為原值;
業務數據更新時,將業務數據變化后結果寫入所述更新值;
業務數據提交時,將所述更新值同步到所述原值;
業務出現異常,業務數據回滾時,將所述副本值同步到所述原值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京趣玩天橙科技有限公司,未經北京趣玩天橙科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210150030.5/2.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





