TiDB術語表

術語表

A

ACID

ACID 是指數據庫管理系統在寫入或更新資料的過程中,爲保證事務是正確可靠的,所必須具備的四個特性:原子性 (atomicity)、一致性 (consistency)、隔離性(isolation)以及持久性(durability)。

  • 原子性 (atomicity) 指一個事務中的所有操作,或者全部完成,或者全部不完成,不會結束在中間某個環節。TiDB 通過 Primary Key 所在 Region 的原子性來保證分佈式事務的原子性。

  • 一致性 (consistency) 指在事務開始之前和結束以後,數據庫的完整性沒有被破壞。TiDB 在寫入數據之前,會校驗數據的一致性,校驗通過纔會寫入內存並返回成功。

  • 隔離性 (isolation) 指數據庫允許多個併發事務同時對其數據進行讀寫和修改的能力。隔離性可以防止多個事務併發執行時由於交叉執行而導致數據的不一致,主要用於處理併發場景。TiDB 目前只支持一種隔離級別,即可重複讀。

  • 持久性 (durability) 指事務處理結束後,對數據的修改就是永久的,即便系統故障也不會丟失。在 TiDB 中,事務一旦提交成功,數據全部持久化存儲到 TiKV,此時即使 TiDB 服務器宕機也不會出現數據丟失。

B

悲觀事務

悲觀事務假定併發事務會發生衝突,所以每一條 SQL 語句執行後都會檢測衝突,只有在確保事務一定能夠執行成功後,纔開始提交。另有樂觀事務

L

Leader/Follower/Learner

它們分別對應 Peer 的三種角色。其中 Leader 負責響應客戶端的讀寫請求;Follower 被動地從 Leader 同步數據,當 Leader 失效時會進行選舉產生新的 Leader;Learner 是一種特殊的角色,它只參與同步 raft log 而不參與投票,在目前的實現中只短暫存在於添加副本的中間步驟。

樂觀事務

樂觀事務假定不會發生併發衝突,只有在事務最終提交時纔會檢測衝突。另有悲觀事務

O

Operator

Operator 是應用於一個 Region 的,服務於某個調度目的的一系列操作的集合。例如“將 Region 2 的 Leader 遷移至 Store 5”,“將 Region 2 的副本遷移到 Store 1, 4, 5”等。

Operator 可以是由 Scheduler 通過計算生成的,也可以是由外部 API 創建的。

Operator Step

Operator Step 是 Operator 執行過程的一個步驟,一個 Operator 常常會包含多個 Operator Step。

目前 PD 可生成的 Step 包括:

  • TransferLeader:將 Region Leader 遷移至指定 Peer
  • AddPeer:在指定 Store 添加 Follower
  • RemovePeer:刪除一個 Region Peer
  • AddLearner:在指定 Store 添加 Region Learner
  • PromoteLearner:將指定 Learner 提升爲 Follower
  • SplitRegion:將指定 Region 一分爲二

P

Pending/Down

Pending 和 Down 是 Peer 可能出現的兩種特殊狀態。其中 Pending 表示 Follower 或 Learner 的 raft log 與 Leader 有較大差距,Pending 狀態的 Follower 無法被選舉成 Leader。Down 是指 Leader 長時間沒有收到對應 Peer 的消息,通常意味着對應節點發生了宕機或者網絡隔離。

R

Region/Peer/Raft Group

每個 Region 負責維護集羣的一段連續數據(默認配置下平均約 96 MiB),每份數據會在不同的 Store 存儲多個副本(默認配置是 3 副本),每個副本稱爲 Peer。同一個 Region 的多個 Peer 通過 raft 協議進行數據同步,所以 Peer 也用來指代 raft 實例中的成員。TiKV 使用 multi-raft 模式來管理數據,即每個 Region 都對應一個獨立運行的 raft 實例,我們也把這樣的一個 raft 實例叫做一個 Raft Group。

Region Split

TiKV 集羣中的 Region 不是一開始就劃分好的,而是隨着數據寫入逐漸分裂生成的,分裂的過程被稱爲 Region Split。

其機制是集羣初始化時構建一個初始 Region 覆蓋整個 key space,隨後在運行過程中每當 Region 數據達到一定量之後就通過 Split 產生新的 Region。

S

Scheduler

Scheduler(調度器)是 PD 中生成調度的組件。PD 中每個調度器是獨立運行的,分別服務於不同的調度目的。常用的調度器及其調用目標有:

  • balance-leader-scheduler:保持不同節點的 Leader 均衡。
  • balance-region-scheduler:保持不同節點的 Peer 均衡。
  • hot-region-scheduler:保持不同節點的讀寫熱點 Region 均衡。
  • evict-leader-{store-id}:驅逐某個節點的所有 Leader。(常用於滾動升級)

事務

事務指一系列有限的數據庫操作序列。TiDB 中的事務具備 ACID 四個特性。

Store

PD 中的 Store 指的是集羣中的存儲節點,也就是 tikv-server 實例。Store 與 TiKV 實例是嚴格一一對應的,即使在同一主機甚至同一塊磁盤部署多個 TiKV 實例,這些實例也對會對應不同的 Store。

X

顯式事務/隱式事務

由事務控制語句定義開始和結束的事務爲顯式事務。無需定義開始的事務爲隱式事務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章