成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

TIDB基礎(chǔ)架構(gòu)

IT那活兒 / 1550人閱讀
TIDB基礎(chǔ)架構(gòu)

點擊上方“IT那活兒”公眾號,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!??!


Tidb基礎(chǔ)架構(gòu)

與傳統(tǒng)的單機數(shù)據(jù)庫相比tidb擁有純分布式價格,擁有良好的擴展性,支持彈性的闊縮容,且兼容大多數(shù)Mysql的語法在大多數(shù)場景下可以直接替換Mysql。
默認(rèn)支持高可用,在少說副本失效情況下,數(shù)據(jù)庫可以自動進行數(shù)據(jù)修復(fù)和故障轉(zhuǎn)移,支持ACID事務(wù),對于一些有強一致性需求的場景,如銀行轉(zhuǎn)賬。

圖1
  • Tidb Server
    SQL 層,對外暴露 MySQL 協(xié)議的連接 endpoint,負(fù)責(zé)接受客戶端的連接,執(zhí)行 SQL 解析和優(yōu)化,最終生成分布式執(zhí)行計劃。
    TiDB SERVER本身是無狀態(tài)的,實踐中可以啟動多個 TiDB 實例,通過負(fù)載均衡組件(如 LVS、HAProxy 或 F5)對外提供統(tǒng)一的接入地址,客戶端的連接可以均勻地分?jǐn)傇诙鄠€ TiDB 實例上以達到負(fù)載均衡的效果。TiDB Server 本身并不存儲數(shù)據(jù),只是解析 SQL,將實際的數(shù)據(jù)讀取請求轉(zhuǎn)發(fā)給底層的存儲節(jié)點 TiKV。tidb_mem_quota_query 控制每條sql占用緩存閥值大小。
    Tidb server熱點小表緩存:對于一些熱點小表,tidb server可以將其直接從磁盤中取出存儲在緩存當(dāng)中,以提高查詢速率。首先該表不大于64MB,且表的寫操作極少情況只存在大量讀操作。
    ALTER TABLE users CACHE;

    將查詢頻繁數(shù)據(jù)不大(極少修改)的小表放入緩存來減清TIKV壓力  table<64MB,開啟小表熱點緩存DDL無法操作需先關(guān)閉(互斥關(guān)系)

  • TIDB PD(Placement Driver) 
    提供TIDB Dashboard監(jiān)控PD是整個Tidb的大腦,負(fù)責(zé)存儲每個 TiKV 節(jié)點實時的數(shù)據(jù)分布情況和集群的整體拓?fù)浣Y(jié)構(gòu),提供 TiDB Dashboard 管控界面,并為分布式事務(wù)分配事務(wù) ID。PD 不僅存儲元信息,同時還會根據(jù) TiKV 節(jié)點實時上報的數(shù)據(jù)分布狀態(tài),下發(fā)數(shù)據(jù)調(diào)度命令給具體的 TiKV 節(jié)點。此外,PD 本身也是由至少 3 個節(jié)點構(gòu)成,擁有高可用的能力。
    PD client:PD client是tidb server和PD的中間交互模塊,事務(wù)請求需要先向PD申請TSO時間戳。
    TSO請求者===>PD Client=返還tsFuture,解析編譯=>TSO請求者
    ====異步請求TSO=>PD==>返還TSO==PD Client==>tso請求者

    當(dāng)PD TSO需求量大處理性能方法:PD會一次性分享出一段時間段(3s)的TSO串放入緩存中供TIDB server排隊獲取。

  • TIKV Server
    負(fù)責(zé)存儲數(shù)據(jù),從外部看 TiKV 是一個分布式的提供事務(wù)的 Key-Value值存儲引擎。存儲數(shù)據(jù)的基本單位是 Region,每個 Region 負(fù)責(zé)存儲一個 Key Range左閉右開區(qū)間的數(shù)據(jù),每個 TiKV 節(jié)點會負(fù)責(zé)多個 Region。region 分布式存儲在TIKV 96-144MB 默認(rèn)3個副本(高可用性),數(shù)據(jù)都存儲在 TiKV 中。另外,TiKV 中的數(shù)據(jù)都會自動維護多副本(默認(rèn)為三副本),天然支持高可用和自動故障轉(zhuǎn)移。

    TIKV持久化存儲是通過rocksdbraft(存取日志) rocksdbkv(region)來實現(xiàn)的。把數(shù)據(jù)保存在 RocksDB 中,具體的數(shù)據(jù)落地由 RocksDB 負(fù)責(zé)。TiKV 利用 Raft 來做數(shù)據(jù)復(fù)制,每個數(shù)據(jù)變更都會落地為一條 Raft 日志,通過 Raft 的日志復(fù)制功能,將數(shù)據(jù)安全可靠地同步到復(fù)制組的每一個節(jié)點中。不過在實際寫入中,根據(jù) Raft 的協(xié)議,只需要同步復(fù)制到多數(shù)節(jié)點,即可安全地認(rèn)為數(shù)據(jù)寫入成功。


RAFT日志復(fù)制

1. propose 請求操作===>leader 將請求變成寫入日志。
2. append  將日志持久化寫入的到RocksDB。
3. replicate 將node1日志復(fù)制給node2,node3....,接收到日志后也要自己進行append。
4. committed 不僅僅是leader持久化log其他節(jié)點>50%節(jié)點保障log在多個節(jié)點丟失不了后進行commit。
5. APPLY 將rocksdb raft日志寫入到 rocksdb kv中 (實際一個kv有兩個rocksdb)。


本文作者:李孝林(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129245.html

相關(guān)文章

  • TiDB Binlog 源碼閱讀系列文章(一)序

    摘要:總體而言,讀者需要有一定的使用經(jīng)驗,以及可以讀懂語言程序。內(nèi)容概要本篇作為源碼閱讀系列文章的序篇,會簡單的給大家講一下后續(xù)會講哪些部分以及邏輯順序,方便大家對本系列文章有整體的了解。小結(jié)本篇文章主要介紹了源碼閱讀系列文章的目的和規(guī)劃。 作者:黃佳豪 TiDB Binlog 組件用于收集 TiDB 的 binlog,并準(zhǔn)實時同步給下游,如 TiDB、MySQL 等。該組件在功能上類似于 ...

    whidy 評論0 收藏0
  • CNCF案例研究:PingCAP

    摘要:中國論壇提案征集月日截止論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進行交流合作。贊助方案出爐多元化獎學(xué)金現(xiàn)正接受申請即將首次合體落地中國 PingCAP將其TiDB數(shù)據(jù)庫平臺押注在云原生上 showImg(https://segmentfault.com/img/bVbogKp?w=508&h=477); 公司:PingCAP地點:中國北京和加利福尼亞州圣馬特奧行業(yè):軟件 挑戰(zhàn) 流行的...

    h9911 評論0 收藏0
  • CNCF案例研究:PingCAP

    摘要:中國論壇提案征集月日截止論壇讓用戶開發(fā)人員從業(yè)人員匯聚一堂,面對面進行交流合作。贊助方案出爐多元化獎學(xué)金現(xiàn)正接受申請即將首次合體落地中國 PingCAP將其TiDB數(shù)據(jù)庫平臺押注在云原生上 showImg(https://segmentfault.com/img/bVbogKp?w=508&h=477); 公司:PingCAP地點:中國北京和加利福尼亞州圣馬特奧行業(yè):軟件 挑戰(zhàn) 流行的...

    notebin 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<