[發(fā)明專利]游戲數(shù)據(jù)庫服務器的升級方法、裝置、設備及存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 201911174389.0 | 申請日: | 2019-11-26 |
| 公開(公告)號: | CN110879815A | 公開(公告)日: | 2020-03-13 |
| 發(fā)明(設計)人: | 郭小林 | 申請(專利權(quán))人: | 上海莉莉絲科技股份有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/22;A63F13/79 |
| 代理公司: | 上海華誠知識產(chǎn)權(quán)代理有限公司 31300 | 代理人: | 肖華 |
| 地址: | 201802 上海市嘉*** | 國省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 游戲 數(shù)據(jù)庫 服務器 升級 方法 裝置 設備 存儲 介質(zhì) | ||
本發(fā)明公開了一種游戲數(shù)據(jù)庫服務器的升級方法、裝置、設備及存儲介質(zhì),在proto協(xié)議文件中定義數(shù)據(jù)的存儲結(jié)構(gòu),然后將數(shù)據(jù)序列化成二進制數(shù)據(jù)并以該存儲結(jié)構(gòu)的形式存儲至游戲數(shù)據(jù)庫。在用戶用應用端登錄時,與目標用戶對應的目標數(shù)據(jù)的當前版本號與原始目標數(shù)據(jù)的版本號存在差異的情況下,調(diào)用升級函數(shù)將原始目標數(shù)據(jù)的版本號升級為當前版本號并以預定定義的該存儲結(jié)構(gòu)的形式將目標數(shù)據(jù)存儲至游戲數(shù)據(jù)庫。因此,采用該方案,數(shù)據(jù)的存儲不再依賴于傳統(tǒng)的數(shù)據(jù)庫表的方式,當玩家數(shù)據(jù)的結(jié)構(gòu)發(fā)生變化時,不需要再對數(shù)據(jù)庫表進行對應的修改,也無需進行停服操作,避免了因停服時間過長而引起的用戶體驗感低的問題。
技術領域
本發(fā)明涉及計算機技術領域,尤其涉及一種游戲數(shù)據(jù)庫服務器的升級方法、裝置、設備及存儲介質(zhì)。
背景技術
網(wǎng)絡游戲上線之后,網(wǎng)絡游戲產(chǎn)生的數(shù)據(jù)越來越多,這些數(shù)據(jù)主要包括玩家數(shù)據(jù),目前大部分的網(wǎng)絡游戲的玩家數(shù)據(jù)在數(shù)據(jù)庫中存儲,數(shù)據(jù)庫中以數(shù)據(jù)庫表為組織單位存儲玩家數(shù)據(jù),在數(shù)據(jù)庫表中采取分字段的方式存儲玩家數(shù)據(jù)。其中,玩家數(shù)據(jù)結(jié)構(gòu)是和數(shù)據(jù)庫表中的列一一對應的,因此,當玩家數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時,需要執(zhí)行Alter Table命令將數(shù)據(jù)庫表的結(jié)構(gòu)進行對應修改,在修改數(shù)據(jù)庫表的結(jié)構(gòu)時,必須進行停服操作,當玩家數(shù)據(jù)量很大時,修改數(shù)據(jù)庫表的結(jié)構(gòu)所耗費的時間也會特別長,導致停服時間過長,降低了游戲玩家的體驗感。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決現(xiàn)有技術中在玩家數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時,需要修改數(shù)據(jù)庫表的結(jié)構(gòu)而導致停服時間過長,降低了游戲玩家的體驗感的問題。因此,本發(fā)明提供一種游戲數(shù)據(jù)庫服務器的升級方法、裝置、設備及存儲介質(zhì),當玩家數(shù)據(jù)結(jié)構(gòu)發(fā)生變化時,無需修改數(shù)據(jù)庫表的結(jié)構(gòu),避免了停服時間過長的問題,提高了游戲玩家的體驗感。
為解決上述問題,本發(fā)明的實施方式公開了一種游戲服務器的數(shù)據(jù)持久化的升級方法,包括:
預先在proto協(xié)議文件中定義原始目標數(shù)據(jù)的存儲結(jié)構(gòu),所述存儲結(jié)構(gòu)中包含所述原始目標數(shù)據(jù)的版本號字段,將所述原始目標數(shù)據(jù)序列化為二進制數(shù)據(jù)并以所述存儲結(jié)構(gòu)的形式存儲至游戲數(shù)據(jù)庫;
在目標用戶從應用端登錄時,從所述游戲數(shù)據(jù)庫中提取與所述目標用戶對應的二進制數(shù)據(jù),基于Protobuf協(xié)議從所述二進制數(shù)據(jù)中解析所述原始目標數(shù)據(jù)和所述存儲結(jié)構(gòu)中包含的所述原始目標數(shù)據(jù)的版本號字段;
判斷與所述原始目標數(shù)據(jù)的版本號字段對應的版本號與所述目標用戶對應的目標數(shù)據(jù)的當前版本號是否一致,并判斷所述目標數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)是否增加或減少新的字段;
若所述版本號與所述當前版本號不一致,且所述目標數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)增加或減少所述新的字段時,則調(diào)用升級函數(shù)將所述版本號升級為所述當前版本號,并重新定義所述存儲結(jié)構(gòu)并得到新的存儲結(jié)構(gòu),并以所述新的存儲結(jié)構(gòu)的形式將與所述當前版本號對應的目標數(shù)據(jù)存儲至所述游戲數(shù)據(jù)庫以對所述游戲數(shù)據(jù)庫進行升級;
若所述版本號與所述當前版本號一致且所述目標數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)未增加或減少所述新的字段時,則無需對所述游戲數(shù)據(jù)庫進行升級并保持所述存儲結(jié)構(gòu)不變。
進一步地,在本發(fā)明的一些實施例中,所述將所述原始目標數(shù)據(jù)序列化為二進制數(shù)據(jù)并以所述存儲結(jié)構(gòu)的形式存儲至游戲數(shù)據(jù)庫包括:
基于Protobuf協(xié)議,調(diào)用編碼函數(shù)對所述原始目標數(shù)據(jù)進行序列化,獲得二進制數(shù)據(jù);
對所述二進制數(shù)據(jù)進行壓縮,獲得壓縮數(shù)據(jù);
對所述壓縮數(shù)據(jù)進行解壓縮,得到解壓縮文件;
基于所述Protobuf協(xié)議,調(diào)用解碼函數(shù)將所述解壓縮文件反序列化為Erlang數(shù)據(jù)結(jié)構(gòu)的二進制數(shù)據(jù),將所述Erlang數(shù)據(jù)結(jié)構(gòu)作為所述存儲結(jié)構(gòu)的形式并存儲至所述游戲數(shù)據(jù)庫。
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于上海莉莉絲科技股份有限公司,未經(jīng)上海莉莉絲科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201911174389.0/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





