共計 1549 個字符,預計需要花費 4 分鐘才能閱讀完成。
本文丸趣 TV 小編為大家詳細介紹“TiDB 實例測試分析”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“TiDB 實例測試分析”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。
首先對我來說,我覺得能夠開發(fā)數(shù)據(jù)庫,而且能夠有很深的技術(shù)情結(jié),真是一件很 cool 的事情,我比較欣賞極客精神,同時滿足了業(yè)務,也在技術(shù)上的價值得以體現(xiàn),這種模式值得很多開源項目參考借鑒。
首先,讓我感興趣的不是 TiDB 的 NewSQL 角色,而是對 TiDB 的發(fā)展過程,TiDB 的架構(gòu)演進對于理解 TiDB 技術(shù)還是很有幫助的,也對我們的工作和實踐具有一定的借鑒。如果讓我來總結(jié),我覺得有幾個里程碑事件對我的觸發(fā)較大。
① 設計 MySQL 分布式存儲引擎。
整個項目從 2015 年 4 月份開始,初期是寫一個 MySQL 分布式存儲引擎,來期望達到分布式的基本需求,但是性能差強人意,同時存儲引擎層對優(yōu)化器層面,事務模型層的支持非常有限,所以初期的架構(gòu)設計沒有達到預期。
② 兼容 MySQL 協(xié)議,自上而下實現(xiàn)
后期的架構(gòu)設計對標 MySQL 協(xié)議,自上而下重寫,完全兼容 MySQL 協(xié)議,實現(xiàn) Server 層的基本需求。
TiDB 0.5 版本的架構(gòu)如下:
③ 存儲引擎引入 HBase
初期的 TiDB 是沒有存儲引擎的,數(shù)據(jù)都是在內(nèi)存層面,接入 HBase,也是一個戰(zhàn)略選型,主要是為了初步驗證 SQL 層的實現(xiàn)是否穩(wěn)定。
④ 使用 Rust 重寫 Etcd 里的 Raft
KV 存儲層使用 Rust 來實現(xiàn),主要的難點就是對 Etcd 的 Raft 實現(xiàn)使用 Rust 完全重寫,我覺得這是最 cool 的一件事情了,難度可想而知,但是做成了會發(fā)現(xiàn)成就滿滿。
⑤ 接入 RocksDB
RocksDB 是一個單機的 key-value
engine,前身其實是 LevelDB,是 Google 在 2011 年左右開源的 key-value 的存儲引擎。RocksDB 的數(shù)據(jù)結(jié)構(gòu)是 LSM
Tree 是一個對寫非常友好,在機器內(nèi)存比較大的時候讀性能會非常好的數(shù)據(jù)結(jié)構(gòu)。
技術(shù)架構(gòu)層面,TiDB 和 Oracle 中的 RAC 其實很像(組件和功能),當然最大的不同就是一個是分布式,彈性擴縮容,另外一個是集成共享式。
我測試的時候使用了如下的部署架構(gòu)。
測試的過程中,對 TP,AP 業(yè)務做了一些基本的測試和性能壓測,對高可用,彈性擴縮容,滾動升級,備份恢復也做了一些基本的覆蓋測試。
優(yōu)點的內(nèi)容很明顯,可以從部署安裝感覺到,很多新技術(shù)都在大規(guī)模使用了。
亮點功能如下:
① 支持多種部署方式(離線部署,在線部署,docker 部署)
② 監(jiān)控部署一體化
③ 快速部署
④ 備份恢復, 定制了主流工具 mydumper,myloader,
⑤ 增量復制 syncer
⑥ 實時備份和恢復的特性 TiDB 的 binlog 方案,和 kafka 對接
⑦ 承接 AP 的業(yè)務,基于 spark
⑧ 彈性擴縮容
⑨ 滾動升級
⑩ 讀寫混合,單不只局限于密集型寫入
11 Tidb 重新部署,原有的數(shù)據(jù)不會刪除,如果優(yōu)惠復用起來
12 故障自動恢復
13 產(chǎn)品定制能力強,定制了將近 30 個參數(shù),針對 TiDB 的使用需求
還有一些細節(jié)的小錯誤或者問題,后續(xù)和朋友對接集中反饋下。
從我的理解來看,目前的 TiDB 的業(yè)務切入點可以作為對已有的 MySQL 方案的補充,甚至可以做到透明的集群方案,無論你是采用了 PXC,MHA, 還是 MGR,整個過程都可以通過級聯(lián)的方式銜接起來。
另外一個切入點應該是大數(shù)據(jù)部分,目前從我的測試來看,TiDB 是樂觀鎖,對于 AP 業(yè)務的支持其實需求是更大一些,所以能夠?qū)拥酱髷?shù)據(jù)平臺,能夠?qū)崿F(xiàn)一些基本的數(shù)據(jù)流轉(zhuǎn)甚至數(shù)據(jù)下沉至大數(shù)據(jù),都是一些不錯的點。
讀到這里,這篇“TiDB 實例測試分析”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領(lǐng)會,如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。