[發明專利]排名更新方法及裝置有效
| 申請號: | 201610098421.1 | 申請日: | 2016-02-23 |
| 公開(公告)號: | CN105787011B | 公開(公告)日: | 2019-02-22 |
| 發明(設計)人: | 劉晗 | 申請(專利權)人: | 網易(杭州)網絡有限公司 |
| 主分類號: | G06F16/23 | 分類號: | G06F16/23;G06F16/958;G06F7/08 |
| 代理公司: | 深圳新創友知識產權代理有限公司 44223 | 代理人: | 江耀純 |
| 地址: | 310052 浙江省杭州*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 排名 更新 方法 裝置 | ||
本發明公開了一種排名更新方法和裝置。所述排名更新方法包括:接收客戶端發送的排名更新請求;所述排名更新請求包括待更新的第一名次和第二名次;從排名表中獲取所述第一名次及其所對應的第一用戶信息和所述第二名次及其所對應的第二用戶信息,并保存在事務數據表中;對所述排名表中的所述第一名次所對應的第一用戶信息和所述第二名次所對應的第二用戶信息進行交換;當檢測到交換失敗時,根據所述事務數據表回滾所述排名表中的所述第一名次所對應的用戶信息和所述第二名次所對應的用戶信息。采用本發明實施例,能夠避免排名的重復和混亂,保證排名更新的原子性和可靠性。
技術領域
本發明涉及計算機技術領域,尤其涉及一種排名更新方法和裝置。
背景技術
在現有技術中,對數據庫中的排行榜進行更新的操作通常采用內存交換更新和數據庫交換更新兩種形式。其中,內存交換更新的做法是直接替換內存中兩個玩家的排名信息。內存交換在實現上比較簡單,但是需要在進程內存中維護整個排行榜數據表,并定時寫回數據庫,該方式僅適用于規模比較小的排行榜,當排行榜內玩家數量過大時,該方法將消耗大量內存,同時整個排行榜存在于某一個進程中,玩家訪問排行榜的時候都要訪問這個進程,容易產生單點故障。根據實際的壓力測試,當排行榜中玩家的數量達到200000以上,或并發訪問頻率達到100次/秒的時候,進程占用的CPU會出現明顯的飆升,同時整個排行榜在定時寫回數據庫的時候,由于數據量過大,也會造成數據庫的卡頓。而數據庫交換更新的做法是使用事務來操作這兩個排名的數據,以保證這兩個數據在操作的過程中不會受到其他操作的影響而發生改變,其可擴展性相對于內存交換更強。
發明內容
由于mongo數據庫本身并不支持事務的特性,采用mongo數據庫進行交換更新時,如果對兩條數據分別進行操作,則有可能在操作完一條數據的時候,另一條數據已經發生了變化,或者在操作完一條數據的時候,游戲進程意外終止,使另一條數據的操作未完成,從而導致數據庫中的數據不一致,使排行榜中的排名出現重疊和混亂。
本發明實施例提出一種排名更新方法和裝置,能夠避免排名的重復和混亂,保證排名更新的原子性和可靠性。
本發明實施例提供的一種排名更新方法,具體包括:
接收客戶端發送的排名更新請求;所述排名更新請求包括待更新的第一名次和第二名次;
從排名表中獲取所述第一名次及其對應的第一用戶信息和所述第二名次及其對應的第二用戶信息,并保存在事務數據表中;
對所述排名表中的所述第一名次對應的第一用戶信息和所述第二名次對應的第二用戶信息進行交換;
當檢測到交換失敗時,根據所述事務數據表回滾所述排名表中的所述第一名次對應的用戶信息和所述第二名次對應的用戶信息。
進一步地,所述排名更新請求還包括所述第一名次對應的第一用戶數據和所述第二名次對應的第二用戶數據;
所述從排名表中獲取所述第一名次及其對應的第一用戶信息和所述第二名次及其對應的第二用戶信息,并保存在事務數據表中,具體包括:
從所述排名表中獲取所述第一名次對應的第一用戶信息和所述第二名次對應的第二用戶信息;
將所述第一用戶數據與所述第一用戶信息進行對比,并將所述第二用戶數據與所述第二用戶信息進行對比;
在所述第一用戶數據與所述第一用戶信息都對應于同一用戶,且所述第二用戶數據與所述第二用戶信息也都對應于同一用戶時,將所述第一名次及其對應的第一用戶信息和所述第二名次及其對應的第二用戶信息保存在所述事務數據表中。
進一步地,所述對所述排名表中的所述第一名次對應的第一用戶信息和所述第二名次對應的第二用戶信息進行交換,具體包括:
將所述排名表中的所述第一名次對應的第一用戶信息替換為所述第二用戶信息;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于網易(杭州)網絡有限公司,未經網易(杭州)網絡有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610098421.1/2.html,轉載請聲明來源鉆瓜專利網。





