青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Daly的游戲人生

基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎

    最近組內(nèi)發(fā)表一篇小論文,是關(guān)于改進(jìn)游戲儲(chǔ)存系統(tǒng)的IO性能思路。老大原來(lái)早有相同的想法,并且已經(jīng)實(shí)現(xiàn)了大部分模塊,后來(lái)和老大一同努力,新的儲(chǔ)存引擎終于逐步完善。在外服環(huán)境跑了兩個(gè)多月,性能和可靠性得到了明顯的提升。具體的細(xì)節(jié)就不方便發(fā)表了,實(shí)踐證明,用binlog來(lái)做MMORPG的數(shù)據(jù)儲(chǔ)存是行得通的。

幾個(gè)事實(shí):
   1. 磁盤IO的瓶頸在尋道,順序?qū)懶阅鼙入S機(jī)寫性能高一個(gè)數(shù)量級(jí)。

目前典型硬盤的順序?qū)懭胨俣却蠹s是60MB/s , 而尋道時(shí)間在5~8ms (200/)。可以看到硬盤IO的主要瓶頸在于磁頭尋道,也就是隨機(jī)寫。在linux開(kāi)發(fā)服(非虛擬機(jī),Xeon 3.0G 4/16G內(nèi)存)上做了一個(gè)benchmark

順序?qū)?/span>50MB: 700ms

5000個(gè)文件,每個(gè)10KB(50MB): 12

        10000次隨機(jī)寫,每次1KB(10MB): 21
   2. 游戲數(shù)據(jù)都是K-V數(shù)據(jù),關(guān)系查詢需求極少;k-v數(shù)據(jù)的update很頻繁(實(shí)測(cè)是每玩家每5秒一次修改)
   3. MMORPG單服的玩家同時(shí)在線數(shù)量是10K級(jí)別, 這個(gè)數(shù)量級(jí)可以有效估算binlog的規(guī)模,使得方案可行。

     一般MMORPG系統(tǒng)的存盤策略: 定時(shí)存盤。就是過(guò)一段時(shí)間(比如5分鐘)把在線有修改過(guò)的玩家數(shù)據(jù),整個(gè)snapshot存下去(mysql也好,文件系統(tǒng)也好)。這樣有兩個(gè)主要問(wèn)題:一到保存點(diǎn),IO隨機(jī)寫暴增,玩家卡機(jī);如果系統(tǒng)down機(jī), 數(shù)據(jù)就會(huì)有幾分鐘的回檔。而性能和數(shù)據(jù)可靠性兩則是矛盾的,存盤間隔過(guò)小,玩家卡機(jī),過(guò)大,故障后數(shù)據(jù)回檔時(shí)間長(zhǎng)。需知現(xiàn)在的MMORPG,貴價(jià)武器價(jià)值都成千上萬(wàn)RMB,數(shù)據(jù)可靠性對(duì)游戲營(yíng)運(yùn)影響還是很大的。
    so,   可以用定制的binlog來(lái)記錄玩家數(shù)據(jù),也就是說(shuō),不記錄整個(gè)snapshot,而是每個(gè)k-v變化時(shí)記錄opcode馬上寫入binlog文件, binlog的格式根據(jù)游戲情況可以高度定制,盡量減少空間。由于是順序?qū)懀阅芸梢苑浅8摺H绻鹍own機(jī),可以根據(jù)binlog來(lái)恢復(fù),基本上沒(méi)有回檔。不過(guò)要解決一個(gè)問(wèn)題:binlog增長(zhǎng)過(guò)大 --> 崩潰恢復(fù)時(shí)間過(guò)程 & binlog文件本身?yè)p壞的風(fēng)險(xiǎn)增大 & 磁盤空間用光。因此binlog需要有rotate機(jī)制, rotate的時(shí)候需要存一次在線玩家數(shù)據(jù)的snapshot, 這樣舊的binlog就可以存到遠(yuǎn)處或者丟棄。rotate的過(guò)程中需要考慮恢復(fù)時(shí)玩家數(shù)據(jù)一致性和完備性等等一系列細(xì)節(jié)問(wèn)題,后來(lái)一一解決了。
    這是最近做的成就感的事。幾年沒(méi)寫blog了,筆記都記在evernote里,最近又想在公開(kāi)的地方寫點(diǎn)東西,發(fā)個(gè)文紀(jì)念一下。


posted on 2012-07-01 18:05 Daly 閱讀(2261) 評(píng)論(6)  編輯 收藏 引用 所屬分類: 游戲開(kāi)發(fā)

評(píng)論

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-07-02 09:08 zuhd

能詳細(xì)說(shuō)下binlog的幾個(gè)缺陷嗎?  回復(fù)  更多評(píng)論   

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-07-02 12:39 Daly

@zuhd

其實(shí)snapshot的保存還是需要的,只是用來(lái)binlog可以大大延長(zhǎng)存盤間隔。
主要缺陷是:
1. 如果熱數(shù)據(jù)很多,并且很頻繁。binlog文件增長(zhǎng)非常快, 硬盤很容易吃滿. 對(duì)于熱數(shù)據(jù)量大的項(xiàng)目不合適

2. 要勾住項(xiàng)目里的k-v變化, 對(duì)引用型的復(fù)雜類型(map或list),有可能會(huì)漏掉。如果代碼里的k-v set都是用統(tǒng)一接口,則問(wèn)題不大。

3. 要對(duì)復(fù)雜類型(map或list)的改變定義opcode比較難,要依賴于具體數(shù)據(jù)意義做opcode的定義,不然要整個(gè)map給dump下去,太耗了。

4. 這個(gè)binlog系統(tǒng)的opcode由于是高度定制,不同項(xiàng)目間不具有移植性。

5. 寫log一般是單獨(dú)的線程或進(jìn)程,要注意數(shù)據(jù)一致性等等細(xì)節(jié),要詳細(xì)驗(yàn)證。  回復(fù)  更多評(píng)論   

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-07-02 12:43 Daly

@zuhd

當(dāng)數(shù)據(jù)變化寫binlog的順序IO大到一定程度,則系統(tǒng)性能更糟糕(就是diff的數(shù)據(jù)量大于數(shù)據(jù)snapshot本身), 這個(gè)做法就不適合。所以要考慮數(shù)據(jù)規(guī)模,數(shù)據(jù)變化頻率等因素。  回復(fù)  更多評(píng)論   

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-07-17 22:12 liutp

做個(gè)存儲(chǔ)服務(wù)進(jìn)程 應(yīng)該就可以  回復(fù)  更多評(píng)論   

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-08-25 22:03 ZealotYin

我可不可以這樣理解,你們游戲行業(yè)的數(shù)據(jù)基本都是全基于內(nèi)存和DB的,你們需要定時(shí)給用戶設(shè)置一個(gè)存檔點(diǎn)(將某個(gè)時(shí)間的用戶數(shù)據(jù)存盤),傳統(tǒng)的操作是只使用snapshot來(lái)實(shí)現(xiàn),而你們是使用定期(較長(zhǎng)時(shí)間)snapshot加binlog的方式.這樣可以減少做snapshot的次數(shù),提高性能.對(duì)嗎?
抱歉,我是非游戲行業(yè)的,所以您的應(yīng)用場(chǎng)景有點(diǎn)看不懂,但是我專注于存儲(chǔ).所以以后有機(jī)會(huì)可以多交流一下。我新浪微博ID:殷偉雄  回復(fù)  更多評(píng)論   

# re: 基于binlog的游戲數(shù)據(jù)儲(chǔ)存引擎 2012-12-07 16:41 Daly

@ZealotYin
嗯,是這個(gè)意思。另外兩次snapshot保存之間如果crash會(huì)丟數(shù)據(jù),binlog可以保證恢復(fù)。  回復(fù)  更多評(píng)論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美成人午夜视频| 欧美大秀在线观看| 在线观看亚洲视频| 国产日产高清欧美一区二区三区| 国产精品第三页| 国产精品国产三级国产aⅴ无密码| 国产精品家庭影院| 国产一二三精品| 在线看日韩欧美| 99国产精品一区| 午夜日韩在线观看| 媚黑女一区二区| 日韩网站在线看片你懂的| 亚洲欧美日韩一区在线| 久久嫩草精品久久久精品| 欧美精品97| 国产午夜精品一区二区三区视频| 亚洲丁香婷深爱综合| 中文欧美在线视频| 久久精品中文字幕一区| 欧美国产日本| 亚洲视频免费观看| 久久在线视频在线| 国产精品久久久久久av福利软件 | 亚洲人成啪啪网站| 一本久久知道综合久久| 久久精品国产精品亚洲综合 | 亚洲欧美国产精品桃花| 欧美成人免费全部| 国产一区美女| 亚洲一区亚洲| 欧美激情精品久久久| 午夜精品99久久免费| 欧美日本韩国一区| 亚洲高清视频在线观看| 欧美在线播放视频| 日韩视频精品在线| 欧美激情第9页| 亚洲电影免费观看高清完整版在线 | 国产欧美日韩视频一区二区三区| 樱花yy私人影院亚洲| 亚洲影院色在线观看免费| 欧美黄色aa电影| 久久久精品国产免费观看同学| 国产精品大全| 99re热这里只有精品视频| 免费观看在线综合| 欧美一区二区观看视频| 国产精品久久久久久久久久久久| 亚洲乱码久久| 亚洲欧洲视频在线| 牛人盗摄一区二区三区视频| 一区二区三区在线看| 久久精选视频| 欧美中文字幕不卡| 国产一区二区三区黄| 午夜亚洲精品| 亚洲午夜久久久| 国产精品美女www爽爽爽视频| 亚洲网站在线播放| 日韩天堂在线观看| 国产精品v亚洲精品v日韩精品 | 久久综合色一综合色88| 久久精品亚洲国产奇米99| 国产一区二区精品久久| 久久久九九九九| 久久深夜福利免费观看| 狠狠干综合网| 欧美成在线视频| 欧美99在线视频观看| 夜夜嗨av一区二区三区网站四季av | 在线观看欧美视频| 欧美 日韩 国产精品免费观看| 久久久久国内| 亚洲欧洲午夜| 99视频热这里只有精品免费| 国产精品久久久久av| 久久岛国电影| 久久亚洲综合网| 亚洲最新中文字幕| 欧美一区二区免费观在线| 亚洲高清一二三区| 99xxxx成人网| 狠狠色噜噜狠狠狠狠色吗综合| 欧美+亚洲+精品+三区| 欧美美女喷水视频| 久久久久久久国产| 欧美精品一区二区三区久久久竹菊| 亚洲一区中文字幕在线观看| 欧美一区二区精品久久911| 欧美在线视屏| 欧美日韩美女一区二区| 亚洲欧美日韩一区二区在线 | 亚洲人永久免费| 亚洲午夜精品| 亚洲国产视频a| 亚洲欧美视频| 亚洲片区在线| 亚洲欧美中文另类| 日韩性生活视频| 久久精品国产一区二区三| aa级大片欧美三级| 欧美在线亚洲在线| 亚洲在线播放电影| 欧美大胆人体视频| 久久全球大尺度高清视频| 欧美日韩亚洲综合| 欧美韩日一区二区| 国产一区二区久久| 国产精品99久久久久久人 | 国产一区二区三区电影在线观看| 亚洲片区在线| 亚洲国产日韩欧美在线动漫| 亚洲欧美日韩第一区| 亚洲最黄网站| 欧美成人国产| 欧美chengren| 国语自产精品视频在线看| 亚洲网站在线播放| 亚洲视频axxx| 欧美日韩1区2区3区| 欧美高清视频一区二区| 伊人蜜桃色噜噜激情综合| 午夜久久久久久久久久一区二区| 亚洲一区欧美一区| 欧美色图一区二区三区| 亚洲人永久免费| 亚洲精品日韩欧美| 免播放器亚洲| 欧美高清在线视频观看不卡| 尤物九九久久国产精品的特点| 午夜视频久久久| 欧美一级专区| 国产区亚洲区欧美区| 亚洲欧美日韩综合国产aⅴ| 欧美一区二区三区免费观看视频| 国产精品人人做人人爽人人添| 亚洲天堂网在线观看| 先锋影音国产一区| 国产日韩一区二区三区| 欧美一区二区三区的| 久久综合999| 亚洲第一页中文字幕| 裸体歌舞表演一区二区| 欧美高清不卡在线| 9国产精品视频| 国产精品日韩欧美一区| 欧美一区二区视频97| 欧美成人国产va精品日本一级| 亚洲国产视频一区| 亚洲一区二区三区四区五区黄| 美女久久网站| 亚洲精品免费一二三区| 一区二区日韩精品| 国产精品豆花视频| 欧美一级在线播放| 老牛嫩草一区二区三区日本 | 国产精品久久久久久久久久久久| 亚洲午夜黄色| 久久五月天婷婷| 亚洲欧洲综合| 国产精品国产三级欧美二区| 欧美影片第一页| 亚洲电影网站| 小黄鸭精品aⅴ导航网站入口| 国产一区二区精品丝袜| 欧美国产视频一区二区| 亚洲欧美日韩精品久久亚洲区| 欧美.www| 亚洲尤物精选| 91久久午夜| 国产精品入口尤物| 美女网站久久| 亚洲一区二区黄| 欧美成人一区二区三区在线观看| 一二美女精品欧洲| 影音先锋成人资源站| 欧美视频在线一区| 老司机免费视频一区二区三区| 亚洲夜晚福利在线观看| 亚洲国产另类久久久精品极度| 久久www成人_看片免费不卡| 一区二区福利| 伊人成人在线视频| 国产精品一区二区黑丝| 欧美大片一区| 久久精品一二三区| 亚洲永久字幕| 99这里只有久久精品视频| 欧美成人一区二区三区片免费| 欧美一区二粉嫩精品国产一线天| 夜夜嗨av色一区二区不卡| 在线观看视频一区二区| 国产婷婷成人久久av免费高清 | 久久综合激情| 亚洲欧洲av一区二区三区久久| 亚洲美洲欧洲综合国产一区| 欧美高清在线精品一区| 久久伊人精品天天| 久久精品国产清自在天天线|