版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、網(wǎng)易MyRocks數(shù)據(jù)庫技術(shù)概述技術(shù)創(chuàng)新 變革未來目錄MyRocks技術(shù)實(shí)現(xiàn)MyRocks優(yōu)點(diǎn)分析MyRocks應(yīng)用案例MyRocks技術(shù)實(shí)現(xiàn)Log-Structured Merge-Tree (LSM-Tree)Mutli-Level LSM-TreeLevel-Based CompactionColumn Family (CF)One LSM-Tree Per CFSeveral MemTablesMemTableActive MemTableImmutable MemTableGlobal WAL FilesMyRocks技術(shù)實(shí)現(xiàn)WriteBatchEvery Trx has Write
2、BatchDML buffered in WriteBatchTrx CommitWritebatch - WAL, FlushWriteBatch - Active MemTableWhen Full, Active - ImmutableData Flush&CompactionImmutable - L0 SST File, AsyncL1Ln Compaction, AsyncMyRocks技術(shù)實(shí)現(xiàn)Read PathWriteBatch of THE TrxActive MemTable of THE CFImmutable MemTable of THE CFGlobal Block
3、 CacheSST File of THE CF from L0 to LnMyRocks技術(shù)實(shí)現(xiàn)FeaturesRC and RR Isolation levelRow-Level Locking, MVCCWAL based Crash safePowerful CompressionPhysical Backup (local and remote)More Efficiency Slave ReplicationShortcoming and LimitsOnline DDL, slowly and mem-costlyOnly Row-Based ReplicationNo Spat
4、ial, Fulltext indexsUnstable than InnoDB, Bugs on TTL Read Performance, Range 目錄MyRocks技術(shù)實(shí)現(xiàn)MyRocks優(yōu)點(diǎn)分析MyRocks應(yīng)用案例MyRocks優(yōu)點(diǎn)分析存儲效率高,寫性能好InnoDB頁填充率低RocksDB不存在頁內(nèi)碎片InnoDB 隨機(jī)寫 vs RocksDB順序?qū)慖nnoDB頁空間利用率不高,默認(rèn)闕值15/16,隨機(jī)寫時(shí)碎片嚴(yán)重RocksDB基于Append-only機(jī)制,空間利用率 高,默認(rèn)情況下僅有約10%空間放大MyRocks優(yōu)點(diǎn)分析存儲空間較小RocksDB記錄可進(jìn)行前綴編碼,默認(rèn)每1
5、6條記 錄才有一條完整的RocksDB每個(gè)索引占用7+1 bytes,看似比InnoDB 多(每記錄6+7 bytes),但Ln SST文件seq id可 置0MyRocks優(yōu)點(diǎn)分析壓縮效率更高InnoDB Page壓縮后需對齊到File BlockRocksDB壓縮只需SST File對齊到File BlockRocksDB雖也是塊壓縮,但壓縮后無需文件塊大 小對齊,只需要整個(gè)SST文件對齊即可InnoDB支持記錄級、頁級壓縮,壓縮后均需文件系統(tǒng)塊對齊。MyRocks優(yōu)點(diǎn)分析更小的寫入放大(SSD的寫次數(shù)有限,寫放大越小越好)InnoDB:Rows - Page + Doublewrite
6、RocksDB: 1 + 1 + fanout * ( n 2) / 2(n為LSM層數(shù),fanout為每層存儲增長倍數(shù))目錄MyRocks技術(shù)實(shí)現(xiàn)MyRocks優(yōu)點(diǎn)分析MyRocks應(yīng)用案例案例1 大數(shù)據(jù)量業(yè)務(wù)業(yè)務(wù)屬性及痛點(diǎn)寫多讀少,計(jì)算資源利用率低數(shù)據(jù)量大,存儲成本高增長速度快,需頻繁擴(kuò)容/拆分部署架構(gòu)DDB分庫分表16+ MySQL高可用實(shí)例每mysqld 1TB+數(shù)據(jù)量InnoDB, key_block_size=8數(shù)據(jù)量大,增長速度快InnoDB:1014GB案例1 大數(shù)據(jù)量業(yè)務(wù)替換策略維持部署架構(gòu)不變MyRocks作為Slave,觀察效果最終全部替換為MyRocks收益數(shù)據(jù)量減少近
7、2/3,節(jié)省超過20TB SSD盤空間 提高實(shí)例密度,節(jié)省計(jì)算資源 減低擴(kuò)容頻次,節(jié)省運(yùn)維成 本RocksDB未壓縮:916GB可節(jié)省100GBRocksDB Snappy:322GB節(jié)省近700GB案例1 大數(shù)據(jù)量業(yè)務(wù) 經(jīng)驗(yàn)與教訓(xùn)RocksDB比InnoDB占據(jù)更多內(nèi)存p Block Cache vs Buffer Poolp Write Buffer (CF based) vs Change Buffer (Global)p 將內(nèi)存分配器調(diào)整為tcmalloc/jemallocp 增加內(nèi)存監(jiān)控指標(biāo)Block Cacherocksdb_block_cache_sizerocksdb_cach
8、e_index_and_filter_blocksWrite Buffer (MemTable)合理規(guī)劃table/index和CF關(guān)系,避免過多CF 合理設(shè)置MemTable個(gè)數(shù):max_write_buffer_number max_write_buffer_number_to_maintain min_write_buffer_number_to_mergeGlobal Mem UsagePer CF Mem Usage案例2 寫密集型業(yè)務(wù)u 推薦系統(tǒng)業(yè)務(wù)屬性及痛點(diǎn)推薦類業(yè)務(wù),寫多讀多原為離線推薦,使用Redis緩存10w+算法讀寫tps,4w+業(yè)務(wù)讀qps 升級為實(shí)時(shí)推薦后,數(shù)據(jù)措變大
9、 仍用Redis,成本會急劇升高問題與挑戰(zhàn) 主從復(fù)制延遲高現(xiàn)象:主庫寫tps 5k+后,復(fù)制延遲不斷增大優(yōu)化1:啟用rocksdb_rpl_skip_tx_api,rocksdb_read_free_rpl_tables。性能提升有限;優(yōu)化2:提高并發(fā)度,將LOGICAL_LOCK為DATABASE,提升明顯但擴(kuò)展性差DDB + MyRocks主從峰回路轉(zhuǎn) 業(yè)務(wù)雙寫難題:主從復(fù)制架構(gòu)無法滿足性能要求契機(jī):業(yè)務(wù)對數(shù)據(jù)一致性要求不高最終方案:業(yè)務(wù)層雙寫案例2 寫密集型業(yè)務(wù) 系統(tǒng)架構(gòu)推薦系統(tǒng)雙寫部署架構(gòu)FlinkDDB2myrocks9myrocks16推薦1推薦n讀寫寫DDB1myrocks1my
10、rocks8讀內(nèi)部推薦算法系統(tǒng)業(yè)務(wù)推薦系統(tǒng)案例2 寫密集型業(yè)務(wù)Write Stall調(diào)優(yōu)(pending-compaction)增加Compaction線程數(shù):rocksdb_max_background_jobs 8-16無法增加過多,需考慮cpu利用率案例2 寫密集型業(yè)務(wù)Write Stall調(diào)優(yōu)(pending-compaction)曾Upending bytes limit:p soft_pending_compaction_bytes_limit - 512Gp hard_pending_compaction_bytes_limit - 768GStall頻率明顯改善,觸發(fā)了l0 s
11、st文件個(gè)數(shù)限制案例2 寫密集型業(yè)務(wù)Write Stall調(diào)優(yōu)(pending-compaction)增加l0 sst文件個(gè)數(shù)限制:plevel0_slowdown_writes_trigger 100 - 500plevel0_stop_writes_trigger 100 - 500Stall頻率進(jìn)一步改善,再次觸發(fā)了pending bytes limits案例2 寫密集型業(yè)務(wù)Write Stall調(diào)優(yōu)(pending-compaction)最優(yōu)參數(shù)組合:p level0_slowdown_writes_trigger 500p level0_stop_writes_trigger 500
12、p soft_pending_compaction_bytes_limit 1024G p hard_pending_compaction_bytes_limit 1536G p compression_per_level=kLZ4Compression犧牲存儲空間來提高寫性能業(yè)務(wù)每天凌晨為低峰期,可以消費(fèi)掉累積的pending compaction案例2 寫密集型業(yè)務(wù)調(diào)優(yōu)后性能計(jì)算節(jié)點(diǎn)讀寫1:1,性能均達(dá)到1.5w/s,寫無阻塞業(yè)務(wù)節(jié)點(diǎn)讀性能穩(wěn)定,峰值讀性能超0.5w/s案例2 寫密集型業(yè)務(wù)業(yè)務(wù)忱延遲低,波動(dòng)小推薦系統(tǒng)使用效果和收益業(yè)務(wù)忱延遲低(2ms以下),波動(dòng)小緩存熱點(diǎn)明顯(128-70
13、G),擴(kuò)展性較好基于lz4壓縮,減少50%+ SSD空間節(jié)省了硬件投入成本扛住了業(yè)務(wù)負(fù)載并節(jié)省了成本!案例3 延遲從庫 使用場景與價(jià)值業(yè)務(wù)核心庫:數(shù)據(jù)誤刪或損壞代價(jià)大MyRocks:也 占存儲空間小,壓縮效率高 部署成本低無負(fù)載:也 延遲從僅回放Binlog, 無讀操作,資源利用少M(fèi)ySQL提供了延遲復(fù)制功能問題與挑戰(zhàn) XA事務(wù)現(xiàn)狀:使用DDB分庫分表,有大量XA事務(wù)問題1:MyRocks不支持回放XA事務(wù)問題2:如何將數(shù)據(jù)從InnoDB遷到RocksDB問題3:如何復(fù)制回放建表操作案例3 延遲從庫 問題1:MyRocks不支持回放XA事務(wù)MySQL 5.7 XA事務(wù)復(fù)制框架全局事務(wù)對象Tra
14、nsaction_ctx引擎層事務(wù)對象trx_t(InnoDB) or rocksdb:TransactionXA START前:detach掉worker線程當(dāng)前事務(wù)對象XA PREPARE后:reattach之前的事務(wù)對象WL#6860: Binlogging XA-prepared transactionMyRocks限制Master端XA PREPARE后session退出數(shù)據(jù)丟失rocksdb_close_connectionSlave端未提供引擎層detach/reattach接口replace_native_transaction_in_thd案例3 延遲從庫問題1:MyRock
15、s不支持回放XA事務(wù)優(yōu)化和BugfixXA事務(wù)相關(guān)案例3 延遲從庫使用網(wǎng)易NDC解決XA PREPARE問題開始全量遷移前:也 獲取gtid_executed 等待XA RECOVER中的XA事務(wù)完成Commit結(jié)束增量遷移時(shí)也 獲取gtid_executed 執(zhí)行未Commit的XA PREPAREp alter table xxx ENGINE=ROCKSDB方案2:限制均允許創(chuàng)建RocksDB表p InnoDB等其他引擎DDL復(fù)制時(shí)報(bào)錯(cuò)停止 disabled_storage_engines=MyISAM,InnoDBp 建表語旬改為ENGINE=ROCKSDB,腳本執(zhí)行set session gtid_next=the gtid of create table sql;create table問題2:存在XA事務(wù), InnoDB - RocksDB問題3:解決延遲復(fù)制新增的表邏輯?物理?:MyRocks Online DDL太搓方案1:查找新增的InnoDB并轉(zhuǎn)為RocksDB案例3 延遲從庫使用效果單實(shí)例數(shù)據(jù)量減少70%單實(shí)例消耗內(nèi)存 8G, CPU開銷小每臺物理服務(wù)器可部署30+個(gè)實(shí)例成本可控,收益比較大MyRocks前景和計(jì)劃 MyRocks使用前景大量潛在MyRocks適用場景大數(shù)據(jù)量業(yè)務(wù):行為,動(dòng)態(tài),日志,歷史記錄等可有效減少存儲空
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)場踩點(diǎn)工作方案模板
- 月月活動(dòng)實(shí)施方案
- 市政污水管道臨時(shí)排水施工方案
- 運(yùn)行班衛(wèi)生管理制度
- 辦公室衛(wèi)生值日管理制度
- 便利店衛(wèi)生環(huán)境管理制度
- 學(xué)校衛(wèi)生間露天管理制度
- 愛國衛(wèi)生長效化管理制度
- 電力站環(huán)境衛(wèi)生管理制度
- 村級衛(wèi)生室物品管理制度
- 2023-2025年浙江中考數(shù)學(xué)試題分類匯編:圖形的性質(zhì)(解析版)
- 健康險(xiǎn)精算模型的風(fēng)險(xiǎn)調(diào)整-洞察與解讀
- 十年(2016-2025年)高考數(shù)學(xué)真題分類匯編:專題26 導(dǎo)數(shù)及其應(yīng)用解答題(原卷版)
- 2025年江蘇省常熟市中考物理試卷及答案詳解(名校卷)
- 旅游景區(qū)商戶管理辦法
- 2025年甘肅省中考物理、化學(xué)綜合試卷真題(含標(biāo)準(zhǔn)答案)
- DLT5210.1-2021電力建設(shè)施工質(zhì)量驗(yàn)收規(guī)程第1部分-土建工程
- 機(jī)械設(shè)備租賃服務(wù)方案
- 樂理考試古今音樂對比試題及答案
- 電影放映年度自查報(bào)告
- 心內(nèi)介入治療護(hù)理
評論
0/150
提交評論