游戲云存儲架構(gòu)變遷之路_第1頁
游戲云存儲架構(gòu)變遷之路_第2頁
游戲云存儲架構(gòu)變遷之路_第3頁
游戲云存儲架構(gòu)變遷之路_第4頁
游戲云存儲架構(gòu)變遷之路_第5頁
已閱讀5頁,還剩31頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、游戲云存儲的架構(gòu)變遷之路目錄?單實(shí)例時(shí)代? 游戲DB分布介紹? 自動(dòng)化提供海量DB服務(wù)?多實(shí)例時(shí)代? 高可用/靈活調(diào)度? MySQL源碼定制?分布式時(shí)代? TSpider動(dòng)態(tài)調(diào)度 (在線擴(kuò)容及縮容) 單實(shí)例時(shí)代,游戲DB分布及架構(gòu)?典型游戲DB分布介紹? 大型多人在線游戲(MMOG): 三國/地下城與勇士? 高級休閑游戲(ACG): QQ飛車/英雄聯(lián)盟? 平臺休閑游戲(PLAT):玫瑰小鎮(zhèn)/QQ游戲大廳?游戲DB架構(gòu)簡化? 核心數(shù)據(jù) 熱備? 日志數(shù)據(jù) 單實(shí)例MMOG游戲DB分布? 部署策略:就近接入? 切分策略:SET化? 承載策略:Scale Upclusterworldworldzone

2、serverzone serverzone serverzone serverzone serverzone serverdir serverdir serverdir serverlog serverlog servercs server初級游戲服務(wù)器組ACG游戲DB分布? 部署策略:就近接入? 切分策略:水平 + 垂直? 承載策略:Scale Out目錄服務(wù)器客戶端客戶端客戶端DB服務(wù)器DB服務(wù)器DB服務(wù)器日志服務(wù)器日志服務(wù)器LogProxy商店服務(wù)器新手游戲服務(wù)器組公用網(wǎng)絡(luò)分IDCLogProxyProxy服務(wù)器邊境服務(wù)器休閑服務(wù)器新手游戲服務(wù)器組 初級游戲服務(wù)器組Name服務(wù)器&

3、;國家服務(wù)器PLAT游戲DB分布? 部署策略:集中部署,跨IDC容災(zāi)? 切分策略:水平? 承載策略:Scale Out游戲DB架構(gòu)簡化?核心數(shù)據(jù) 增加熱備?日志數(shù)據(jù) 單實(shí)例單實(shí)例時(shí)代,自動(dòng)化提供海量DB服務(wù)? 效率為王,工具平臺解放DBA雙手250+款游戲(端游+手游)、10000+臺服務(wù)器、20000+個(gè)實(shí)例690次SQL變更/月,人均每天支撐3個(gè)業(yè)務(wù)SQL變更,人均管理著500臺機(jī)器、1000個(gè)實(shí)例? DB服務(wù)舉例單實(shí)例DB管理的痛點(diǎn)? 硬件故障影響用戶時(shí)間長 ? DB無法實(shí)現(xiàn)調(diào)度,DB Scale耗費(fèi)停機(jī)時(shí)間長 ? DB加字段耗時(shí)長,無透明DB壓縮方案 多實(shí)例時(shí)代,高可用/靈活調(diào)度? 游

4、戲云存儲架構(gòu)1.0Auto Switch組件? MySQL-PrOxy擴(kuò)展(基于0.8.2)? 去掉lua擴(kuò)展,提升性能? 擴(kuò)展ADMIN接口 ? refresh_backendsrefresh_usersrefresh_cOnnlOg ? shOW prOcesslistshOW balances ? 監(jiān)控? 多點(diǎn)監(jiān)控,IDC內(nèi)/IDC外? 進(jìn)程探測、SSH探測及TOuch文件? DOuble Check ? 切換前檢查 ? 數(shù)據(jù)一致性檢查? Slave狀態(tài)檢查? Time Delay 故障切換數(shù)據(jù)一致性保證 ? 數(shù)據(jù)自動(dòng)校驗(yàn)pt-table-checksum例行化 ? 數(shù)據(jù)塊切分不均在可重

5、復(fù)度隔離級別下的“鎖數(shù)據(jù)”問題 ?源碼改造兩個(gè)核心函數(shù)的代碼片段?_chunk_char_exact,引入輔助變量iqq# select $argschunk_col from $argsdb.$argstbl where (i :=i +1) 0 and (i % $chunk_rows) = 1order by $argschunk_col asc #?recursive_dynamic_calculate_chunks,二分遞歸切分 EXPLAIN SELECT * FROM $db_tbl where $col = . $q-quote_val($from_pos) . AND $co

6、l quote_val($end_pos)增 據(jù): - 1個(gè)區(qū)間包含5行按數(shù)據(jù)分塊的原理,5000M的表,chunk-size=10M時(shí),只有兩個(gè)區(qū)間包含數(shù) 加參數(shù): 第 chunk-size-excat=yes|no 數(shù)據(jù)(id=0 and id 集群管理? 自動(dòng)分表,應(yīng)用透明TSpider分布式數(shù)據(jù)庫? Spider存儲引擎? Kentoku SHIBA 開發(fā)的基于分區(qū)表的分布式存儲引擎? http:/? TSpider就是spider 3.1基礎(chǔ)上開發(fā)而成,進(jìn)一步提高了性能、穩(wěn)定性和兼容性,并結(jié)合互娛業(yè)務(wù)特性整合而成的分布式數(shù)據(jù)庫解決方案TSpider分布式數(shù)據(jù)庫? TSpider核心特

7、性? 高效全局自增ID? 自定義分區(qū)策略? 線性擴(kuò)展(在線擴(kuò)容縮容)? 兼容MySQL協(xié)議及性能優(yōu)化? SQL并行化TSpider分布式數(shù)據(jù)庫? 高效全局自增ID? 初始編號不同,自增的步長=集群TSpider最大節(jié)點(diǎn)數(shù)(16) ? TSpider重啟后,需select max獲得最大值? 可保證全局自增且唯一,但不保證+1? ID生成效率高但存在空洞ID=1TSpiderID=2TSpiderID=16TSpider。DBDBDBDB。TSpider分布式數(shù)據(jù)庫? 自定義分區(qū)策略 ? 一對多的ER關(guān)系,按照”一”進(jìn)行切分,減少跨分區(qū)SQL操作Create Table: CREATE TABL

8、E mail ( id int(20) unsigned NOT NULL, accOungd int(11) unsigned NOT NULL, PRIMARY KEY (id), KEY idx_accOungd (accOungd), KEY idx_egme (egme) ) ENGINE=SPIDER DEFAULT CHARSET=uk8 用戶訪問郵件表的SQL # SELECT count(1) FROM mail WHERE accountid = 102393935;# SELECT id, accountid, state, sender, sendername, typ

9、e, title, content, etime,ctime, hasitems, mailitem FROM mail WHERE accountid = 102393935 ;# DELETE FROM mail where accountid=102393935 and id = 142028645;/*! shard_key accound */TSpider分布式數(shù)據(jù)庫? 線性擴(kuò)展(在線擴(kuò)容縮容)? 例:一個(gè)集群8個(gè)shard,存儲層兩個(gè)物理機(jī)器? 擴(kuò)容一倍? 具體步驟?.5.確認(rèn)熱備已經(jīng)完成,無落后且數(shù)據(jù)校驗(yàn)一致lock all TSpider read only更新

10、集群路由信息unlock tspider斷開slave關(guān)系MySQL 熱備 TSpider分布式數(shù)據(jù)庫? 線性擴(kuò)展(性能)? 集群整體QPS隨分片數(shù)增加而線性提升TSpider分布式數(shù)據(jù)庫? 兼容MySQL協(xié)議? 支持99.99%SQL語句(join/sum/group by/order by/in/not in/limit/case when)? 支持所有mysql連接協(xié)議,如:CLIENT_FOUND_ROWS? 性能優(yōu)化? 減少網(wǎng)絡(luò)流量? 增加direct SQL? 智能下推- select limit m, n- delete/update limit n- select c1, count(*) from t1 where group by c1? 執(zhí)行計(jì)劃相關(guān)? 定期統(tǒng)計(jì)遠(yuǎn)程表信息 show table status? 禁用index merge,減少SQL分發(fā)數(shù)量 select * from t1 where

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論