本文主要介紹如何解決聯(lián)網(wǎng)dota2協(xié)同服務(wù)器正在登錄的問(wèn)題(聯(lián)網(wǎng)dota 2游戲協(xié)同服務(wù)器正在登錄),下面一起看看如何解決聯(lián)網(wǎng)dota2協(xié)同服務(wù)器正在登錄的問(wèn)題(聯(lián)網(wǎng)dota 2游戲協(xié)同服務(wù)器正在登錄)相關(guān)資訊。
2月4日,dota2協(xié)同服務(wù)器維護(hù)已經(jīng)打響了一場(chǎng)21億的戰(zhàn)役。dota2將于2月4日上午8點(diǎn)維護(hù),維護(hù)時(shí)間為大學(xué)1小時(shí)。
翻譯:nga
dota2游戲協(xié)調(diào)服務(wù)器將于太平洋時(shí)間下午4點(diǎn)關(guān)閉維護(hù),屆時(shí)新游戲無(wú)法進(jìn)行,但正在進(jìn)行的游戲不會(huì)受到影響——當(dāng)然游戲結(jié)果的結(jié)算和任務(wù)完成會(huì)有所延遲。如果一切順利,dota2游戲協(xié)調(diào)服務(wù)器將宕機(jī)一小時(shí)左右,我們將在twitter上報(bào)告最新情況。
很久以前,我們認(rèn)為32位整數(shù)可以編號(hào)43億左右的游戲,作為游戲的id號(hào)應(yīng)該足夠了。然而事實(shí)證明,我們的思維太簡(jiǎn)單了。
我們的數(shù)據(jù)庫(kù)沒(méi)有。;t支持無(wú)符號(hào)整數(shù),所以總數(shù)據(jù)量變成了2.31≈21.4億左右,我們做了很多事情讓編號(hào)池工作得更快:
例如,游戲一匹配就被分配一個(gè)會(huì)話id,即使游戲不匹配。;t啟動(dòng)不成功,甚至所有離線人機(jī)游戲都分配了一個(gè)會(huì)話id...
因此,這個(gè)32位編號(hào)池比我們想象的要快得多...
一句話,它 現(xiàn)在快用完了。不知道有沒(méi)有人注意到,目前最大的游戲id已經(jīng)超過(guò)了21億。
為此,我們一直在更新數(shù)據(jù)結(jié)構(gòu),使用64位會(huì)話id進(jìn)行編號(hào)。(以下涉及數(shù)據(jù)庫(kù)知識(shí),不了解可以跳過(guò) 我不明白。)
sql語(yǔ)言在改變列的大小時(shí)一般都不錯(cuò),幾分鐘就能搞定;當(dāng)寫(xiě)入新數(shù)據(jù)時(shí),存儲(chǔ)數(shù)據(jù)的原始行的大小會(huì)自動(dòng)擴(kuò)展。
但是,當(dāng)一個(gè)列是表的主鍵,或者表的索引包含該列時(shí),您可以 這并不容易,所以你只能重建表格。
我們有很多這樣的表,使用會(huì)話id作為主鍵或索引...幸運(yùn)的是,這些桌子并不是特別大,我們有能力重建它們。
但是所有事件id的數(shù)據(jù)加起來(lái)很大,大概170億行,大小6tb。將它們?nèi)窟w移到新表可能需要一周時(shí)間。如果我們遷移,我們還可以順便優(yōu)化這些數(shù)據(jù)
在服務(wù)器維護(hù)期間,我們會(huì)將過(guò)去幾個(gè)小時(shí)的會(huì)話id從舊表遷移到新的64位表中,以后使用新表,然后協(xié)調(diào)服務(wù)器會(huì)重新上線。如果一切正常就好了!
2038年下期再見(jiàn)!
你什么意思,你不 i don’我不在乎幾個(gè)小時(shí)前發(fā)生的事情,是嗎
(注2:許多計(jì)算機(jī)會(huì)遇到 新千年蟲(chóng) 2038年的問(wèn)題。有興趣的可以搜索 2038問(wèn)題與答案你自己。
同志們,我們玩了差不多21億回合的dota2。
據(jù)水友 s的解釋,2038原本是32位計(jì)算時(shí)基。為了達(dá)到最高年份(19702038年最高值),v社打得不錯(cuò)。
了解更多如何解決聯(lián)網(wǎng)dota2協(xié)同服務(wù)器正在登錄的問(wèn)題(聯(lián)網(wǎng)dota 2游戲協(xié)同服務(wù)器正在登錄)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。