資料庫領域又一里程碑式突破!騰訊雲TcaplusDB支援過億DAU遊戲

遊資網發表於2020-11-05
11月1日晚,《王者榮耀》官方宣佈2020年日活躍使用者數日均1億,成為國內乃至全球首個日均DAU過億的手遊。與此同時,騰訊雲TcaplusDB作為《王者榮耀》的資料庫服務產品,成為全球首款支援過億DAU遊戲的資料庫。

資料庫領域又一里程碑式突破!騰訊雲TcaplusDB支援過億DAU遊戲

任何一款遊戲的成功都不是偶然的,《王者榮耀》在保證遊戲的挑戰性、趣味性和多樣性上做了很多功夫,僅系統就有幾十個,包括戰鬥系統、玩家系統、銘文等。目前,《王者榮耀》的後臺資料量已高達數百TB,1個區有100多個表且還在不斷增加。這就致使了《王者榮耀》對資料庫效能、穩定性、擴縮容、成本、遊戲特有場景等方面有著更高要求。

對於《王者榮耀》而言,資料庫是靈魂,承載著所有系統的資訊落地,而專為遊戲而生的騰訊雲自研分散式NoSQL資料庫TcaplusDB,5年來一直為《王者榮耀》的核心資料提供資料庫服務。可以說,每一次的玩家登陸、每一局的對戰、每一輪的錄影回放都是對TcaplusDB的考驗,每一次的團戰都需要在海量的資料中進行增刪改查。

“我們對比過很多資料庫,在目前王者的資料容量和併發條件下,TcaplusDB的讀寫時延是最穩定的!”《王者榮耀》相關技術負責人評價道。在他看來,TcaplusDB高併發、低時延、低成本的效能優勢為《王者榮耀》的資料執行和遊戲業務場景提供了強勁支撐。

具體來說,TcaplusDB擁有接近無限的水平擴充套件能力。基於shard分片的分散式技術,其單表容量可以支援2.56 PB,吞吐能力隨硬體擴充呈線性增長。同時,通過快慢請求分離與記錄級鎖,它可以解決複雜請求和簡單請求的隔離,減少鎖定範圍提升讀寫效率。此外,基於創新演算法,TcaplusDB可以在一個程式中實現冷熱資料的交換,解決跨程式資料交換的一致性、可用性與管理複雜等問題。

從遊戲業務場景的角度出發,TcaplusDB支援表級和記錄級的資料生命週期管理,能夠有效實現活動資料的過期清理。此外,基於冷備資料和二進位制日誌資料,TcaplusDB還可以針對全服級、表級、記錄級或按照指定條件進行回檔,且時間精確到毫秒。

另一方面,面對海量增長的使用者數,系統穩定和擴容一直是《王者榮耀》的關注焦點。

不管是每年的“開黑節”、春節期間的DAU上漲還是5週年慶的計劃性擴容,TcaplusDB都能在應對頻繁擴容需求的同時確保著5個9的高可用性。

2020年春節,TcaplusDB陸續對各個大區7個表進行了15次擴容,擴容叢集服務只增加了20組。最後一次擴容,在1小時內完成了突增100萬-200萬 PCU擴容,且在擴容過程中玩家無感知。

這是個幾乎不可能完成的任務,但TcaplusDB交上了滿分答卷。它是怎麼做到的?

首先是理解應用的自動負載均衡和過載保護。以過載保護為例,TcaplusDB能站在“遊戲伺服器”的視角感知業務過載,通過處理時延、佇列長度、成功率等指標綜合評估資料庫的負載能力,對高負載應用進行保護,防止雪崩發生。

同時,TcaplusDB針對計劃內擴容和計劃外擴容,提出了不同的解決方案,根據實際情況隨機應變,靈活處理,並通過對可用區故障的自動切換與修復,在技術上支援跨可用區和單裝置的故障自動切換和修復,既保障了擴容的速度和效率,又做到對玩家的完全無感。

值得一提的是,這不是首次面對這樣的挑戰。早在2017年春節期間,TcaplusDB就經歷了連續七天的深夜擴容,在系統能力不足的情況下,通過開啟讀分流規避方案,成功度過高峰期。S賽季期間,由於玩家想看的賽季場數超過最初設計的10場,TcaplusDB是進行了大規模改表結構,緊急支援表結構修改對使用者無感方案。

歷經騰訊內部8年的遊戲經驗積累,TcaplusDB資料庫已廣泛應用於《王者榮耀》、《刺激戰場》、《穿越火線》、《火影忍者》等數百款流行遊戲,並通過騰訊雲向全球遊戲業務提供服務。

未來,隨著以《王者榮耀》為代表的手遊市場邁入新臺階,騰訊雲資料庫也將持續投入資源以豐富遊戲行業的技術產品生態,不斷提升綜合服務能力,助力手遊市場高質量快速增長。

相關文章