使用TerarkDB提升MySQL的性能和壓縮率_第1頁
使用TerarkDB提升MySQL的性能和壓縮率_第2頁
使用TerarkDB提升MySQL的性能和壓縮率_第3頁
使用TerarkDB提升MySQL的性能和壓縮率_第4頁
使用TerarkDB提升MySQL的性能和壓縮率_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、使用TerarkDB提升MySQL的性能和壓縮率技術(shù)創(chuàng)新 變革未來互聯(lián)網(wǎng)和大數(shù)據(jù)帶來的挑戰(zhàn)海量用戶帶來的海量隨機(jī)訪問寫入性能目前通過單節(jié)點(diǎn)的持續(xù)寫入,多節(jié)點(diǎn)只讀,一般能滿足需求(如阿里云的 PolarDB )絕大多數(shù)互聯(lián)網(wǎng)用戶對在線服務(wù)的訪問偏向于隨機(jī)讀比如新聞資訊、搜索引擎、輿情監(jiān)控、電商類商品檢索等對大量隨機(jī)讀的優(yōu)化,目前沒有很好的解決方案(目前只能增加內(nèi)存或建立額外的索引緩解)非隨機(jī)讀的場景,往往允許離線進(jìn)行處理,一般不要求事務(wù),暫時(shí)還可以忍內(nèi)存和SSD依然很貴公司每個(gè)月的數(shù)據(jù)增長沒有幾個(gè)T,都不好意思跟人打招呼SSD 的價(jià)格依然是機(jī)械硬盤的數(shù)倍,容量越大,價(jià)格差距越大SSD 的壽命非常

2、有限存儲(chǔ)引擎數(shù)據(jù)庫數(shù)據(jù)庫領(lǐng)域的探索沒有止境TiDBCockroachDBMySQLMongoDBCassandraInnoDBRocksDBLevelDBWiredTigerTerarkDBPostgreSQLMariaDBPolarDBHBase為什么從引擎層優(yōu)化目前的存儲(chǔ)引擎底層算法,針對隨機(jī)讀較多、內(nèi)存受限的場景,還有很大的 改進(jìn)空間塊壓縮對隨機(jī)訪問很不友好壓縮率太低引擎層的修改不觸及用戶現(xiàn)有數(shù)據(jù)庫的使用邏輯,更加透明引擎層更加通用,可以適應(yīng)各類數(shù)據(jù)庫產(chǎn)品,應(yīng)用范圍更廣,也能和現(xiàn)有的 數(shù)據(jù)庫產(chǎn)品充分整合,設(shè)計(jì)各類解決方案TerarkDB 對MySQL 的改進(jìn)方式MySQLInnoDBMy

3、ISAMMyRocksTerarkDBMySQL 以 RocksDB 作為存儲(chǔ)引擎是發(fā) 揮了 RocksDB 的 LSM 隨機(jī)寫速度快的 優(yōu)勢,也是 Facebook 目前使用的主要方 法(MySQL on RocksDB, 簡稱 MyRocks)TerarkDB 基于 RocksDB 的接口,將自己 的算法適配到了 MyRocks 中,進(jìn)一步支 持了 MySQL 數(shù)據(jù)庫“塊壓縮”的問題塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)塊數(shù)據(jù)存在雙緩存問題及無效解壓問題塊的尺寸決定壓縮率和無效解壓的損失解壓前的塊數(shù)據(jù)解壓后的塊數(shù)據(jù)Terark 可檢索壓縮算法全局壓縮不需要解壓即

4、可提取單條記錄不需要常見的數(shù)據(jù)庫使用的 DB Cache層來緩存解壓后的塊壓縮率逼近理論上限(相當(dāng)于塊壓縮中 的塊就是整個(gè)庫)單條目標(biāo)記錄Terark 可檢索壓縮算法Terark 的可檢索壓縮算法,由以下兩部分組成:索引壓縮算法:CO-Index(Compressed Ordered Index)樹結(jié)構(gòu)高度壓縮具有通過 ID 反查 KEY 的功能(區(qū)別于傳統(tǒng)B+樹)數(shù)據(jù)壓縮算法:PA-Zip(Point Accessible Zip)全局壓縮提取單條數(shù)據(jù)時(shí)無需多余解壓索引壓縮算法:CO-IndexSuccinct Data StructureSuccinct數(shù)據(jù)結(jié)構(gòu)歷史悠久,但是并未引起大家的

5、重視,對于相同的樹結(jié)構(gòu),對比基于指針技術(shù),它僅僅需要 1/30 的內(nèi)存使用位向量來表達(dá)樹結(jié)構(gòu),開源實(shí)現(xiàn)有 Succinct Data Structure Library,缺點(diǎn)是性能較指針更 低,需要通過工程上大幅度優(yōu)化來接近指針性能Nested Patricia Trie原生的 Patricia支持路徑壓縮,通過把一串僅包含一個(gè)孩子的節(jié)點(diǎn),壓縮成一個(gè)包含多個(gè)字符 的節(jié)點(diǎn)我們對其進(jìn)行了更進(jìn)一步的嵌套壓縮:把壓縮后的路徑構(gòu)建成一個(gè)全新的 Patricia Trie,進(jìn)一步 提升數(shù)據(jù)的壓縮率。數(shù)據(jù)壓縮算法:PA-ZipLZ系列算法的變種基于 LZ 系列算法進(jìn)行了大幅度的改進(jìn),使用“全局字典” + “

6、局部字典”的方式,將壓縮率達(dá)到最 理想的程度采用滑動(dòng)窗口的方式進(jìn)行數(shù)據(jù)壓縮根據(jù)實(shí)際測試,全局字典的尺寸限制為 12GB 以內(nèi),效果比較理想,更大的字典對壓縮率的幫 助很有限數(shù)據(jù)壓縮算法的缺點(diǎn)由于需要進(jìn)行大量的計(jì)算,在數(shù)據(jù)寫入過程中對 CPU 的消耗會(huì)比較高目前可以采用寫入限流的方式減輕 CPU 負(fù)載(大多數(shù)情況下,并不需要全速寫入)在大型系統(tǒng)架構(gòu)下,可以采用計(jì)算和存儲(chǔ)分離的邏輯,單獨(dú)進(jìn)行數(shù)據(jù)壓縮集成進(jìn)入MySQL 數(shù)據(jù)庫MySQL ServerAbstract Storage Engine LayerAdapterMyRocks ( RocksDB Adapter )InnoDBRocksDBBlockBased TablePlain TableTerarkZip TableOperating SystemTerarkDB通過Facebook推出的MyRocks適配進(jìn)入MySQL,整合了 RocksDB 本身的優(yōu)秀調(diào)度層和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論