詞彙表¶
簡要說明
本詞彙表僅簡要說明各個詞代表意義,詳細資訊與應場景等等請看其對應的章節。
異步¶
asynchronous
呼叫工作後繼續執行其他工作,而不等待其完成(例如網路請求)。非同步工作不會假設其需要完成的時間。
反義:同步
原子性¶
atomic
- 在多線程中代表每項工作都是單一且獨立的,不受其他線程影響(類似於交易中的隔離性)。
- 在交易中代表所有工作整合成單一工作:要麻都完成,要麻都失敗。
反壓¶
back-pressure
接收方接收資料速度較慢時,強制降低傳送方的資料傳送速度,也稱為流控制。
批次處理¶
batch process
一種計算方式,它將一些固定的(量通常很大)資料作為輸入,經過一些計算後把新的資料作為輸出。過程中並不會修改輸入的資料源。
邊界¶
bounded
有一些已知的上限或大小。例如,網路延遲情況和叢集大小。
反義:無邊界
拜占庭錯誤¶
Byzantine fault
表現異常的節點,這種異常可能以任意方式出現,例如向其他節點發送矛盾或惡意訊息。
快取¶
cache
一種架構中的元件,透過儲存最近使用過的資料,加快未來對相同資料的讀取速度。因為快取中通常存放部分資料,所以如果快取中缺少某些資料,則必須從某些底層較慢的資料儲存系統中,獲取完整的資料副本。
CAP¶
CAP theorem
一個被廣泛誤解的理論結果,在實踐中是沒有用的。
因果關係¶
causality
事件之間的依賴關係,當一件事發生在另一件事情之前。例如,後面的事件是對早期事件的回應,或者依賴於更早的事件,或者應該根據先前的事件來理解。
共識¶
consensus
分散式系統的一個基本問題:該怎麼讓幾個節點同意某些結果(例如,哪個節點應該是資料庫叢集的領導者)。問題比乍看起來要困難得多。
資料倉儲¶
data warehouse
一種資料庫,其中的資料來自(透過 ETL) OLTP 資料庫且資料倉儲中的資料通常已經被整合並準備用於分析目的。
聲明式¶
declarative
聲明某些需要得到的資料或屬性,但不知道如何實現它的確切步驟。查詢最佳化器(query optimizer)會透過聲明性的查詢決定如何最好地執行它。
去正規化¶
denormalize
為了加速讀取,在資料庫中引入一些冗餘或重複資料,通常採用快取或索引的形式。去正規化的值是一種預先計算的查詢結果,像物化視圖。
反義:正規化
衍生資料¶
derived data
一種資料,透過可重複執行的運算把原始資料專成衍生資料。必要時,你可以執行該運算並再次建立衍生資料。衍生資料通常用於提高特定資料的讀取速度。常見的衍生資料有索引、快取和物化視圖。
確定性¶
deterministic
描述一個函式,如果給它相同的輸入,則總是產生相同的輸出。這意味著它不能依賴於隨機數字、時間、網路通訊或其他不可預測的事情。
分散式系統¶
distributed
讓服務透過多個節點執行,並以網路連線來作為溝通方式,當部分節點故障時具有容錯性(系統的一部分發生故障時,其他部分仍可以正常工作)。通常情況下,軟體無需瞭解故障相關的確切情況。
持續性¶
durable
以某種方式儲存資料,即使發生各種故障,也不會丟失資料。
ETL¶
Extract-Transform-Load
萃取、變換及載入,從源資料庫中提取資料,將其轉換為更適合分析查詢的形式,並將其載入到資料倉儲或批次處理系統中的過程。
故障切換¶
failover
在具有單一領導者的系統中,故障切換是將領導角色從一個節點轉移到另一個節點的過程。
容錯¶
fault-tolerant
如果出現問題(例如,機器崩潰或網路連線失敗),可以自動恢復。
流控制¶
flow control
接收方接收資料速度較慢時,強制降低傳送方的資料傳送速度,也稱為反壓。
隨動者¶
follower, secondary, slave, read replica, hot standby
一種資料副本,僅處理領導者發出的資料變更,不直接接受來自客戶端的任何寫入。
全文檢索¶
full-text search
透過任意關鍵字來搜尋文字,通常具有附加特徵,例如匹配類似的拼寫詞或同義詞。全文索引是一種支援這種查詢的次級索引。
圖像式模型¶
graph model
一種資料結構,由點(vertices,可以指向的東西,也稱為 nodes 或 entities)和邊(從一個點到另一個頂點的連線,也稱為 relationships 或 arcs)組成。
雜湊¶
hash
將輸入轉換為看起來像隨機數值的函式。相同的輸入會轉換為相同的數值,不同的輸入一般會轉換為不同的數值,也可能轉換為相同數值(也被稱為衝突 collision)。
獨立的¶
idempotent
用於描述一種操作可以安全地重試執行(類似於確定性),即執行多次的效果和執行一次的效果相同。
索引¶
index
一種資料結構。透過索引,你可以根據特定欄位的值,在所有資料記錄中進行高效檢索。
隔離性¶
isolation
在交易上下文中,用於描述並行執行交易的互相干擾程度。序列化隔離性具有最強的隔離性,不過其它程度的隔離也通常被使用。
聯合¶
join, document reference, edge
彙集有共同點的記錄。在一個記錄與另一個記錄有關(外來鍵,文件式模型中的 document reference,圖像式模型的邊 edge)的情況下最常用,查詢需要獲取參考所指向的記錄。
領導者¶
leader, master
當資料或服務被複制到多個節點時,由領導者分發已授權變更的資料副本。領導者可以透過某些協議選舉產生,也可以由管理者手動選擇。
線性化¶
linearizable
表現為系統中只有一份透過原子操作更新的資料副本。
局部性¶
locality
一種效能最佳化方式,如果經常在相同的時間請求一些離散資料,把這些資料放到一個位置。
鎖¶
lock
一種保證只有一個線程、節點或交易可以訪問的機制,如果其它線程、節點或交易想訪問相同元素,則必須等待鎖被釋放。
日誌¶
log
日誌是一個只能以追加方式寫入的檔案,用於存放資料。預寫式日誌(WAL)用於在資料庫崩潰時恢復資料;結構化日誌(log-structured)使用日誌作為它的主要儲存格式;複製型日誌(replication log)用於把寫入從領導者複製到隨動者;事件性日誌(event log)可以代表一種資料串流形式。
物化¶
materialize
預先計算並寫出結果,而不是在請求時計算。
節點¶
node
一個執行中的程序的單位,透過網路與其他節點通訊以完成某項任務。
正規化¶
normalized
以沒有冗餘或重複的方式進行結構化。 在正規劃資料庫中,當某些資料發生變化時,你只需要在一個地方進行更改,而不是在許多不同的地方複製很多次。
反義:去正規化
OLAP¶
Online Analytic Processing
線上分析處理。其特徵為聚合大量的資料,例如,計數,總和,平均。
OLTP¶
Online Transaction Processing
線上異動處理。其模式為快速查詢,讀取或寫入少量或特定的資料,這些資料通常透過鍵索引。
分區¶
partitioning, sharding
將單機上的大型資料集或計算結果拆分為較小部分,並將其分佈到多臺機器上。
百分位¶
percentile
透過計算有多少值高於或低於某個閾值來衡量值分佈的方法。
例如,某個時間段的第 95 個百分位響應時間是時間 t,則該時間段中,95%的請求完成時間小於 t,5%的請求完成時間要比 t 長。
主索引¶
primary index
唯一標識記錄的值 通常是數字或字串 。在許多應用程式中,主鍵由系統在建立資料時生成(例如,按順序或隨機)。它們通常不由使用者設定。
法定人數¶
quorum
在操作完成之前,需要對操作進行投票的最少節點數量。
再平衡¶
rebalance
將資料或服務從一個節點移動到另一個節點以實現負載均衡。
複製¶
replication
在幾個節點(或稱 replica)上保留相同資料的副本,以便在某些節點無法訪問時,資料仍可訪問。
綱目¶
schema
一些資料結構的描述,包括其欄位和資料型別。可以在資料不同的生命週期時檢查該資料是否符合該綱目,且該綱目可能已經隨時間有所變化了。
次級索引¶
secondary index
與資料一起維護的附加資料結構,使你可以高效地搜尋與某種條件相匹配的記錄。
序列化¶
serializable
保證多個併發交易同時執行時,它們的行為與按順序逐個執行交易相同。
無共享¶
shared-nothing
與共享記憶體或共享磁碟架構相比,獨立節點 每個節點都有自己的 CPU,記憶體和磁碟並透過網路溝通。
偏斜¶
skew
- 各分區的不平衡,例如某些分區有大量請求或資料,而其他分區則少得多。也被稱為 hot spot。
- 並行處理時交易的交錯處理導致資料以不期望的順序出現。
重複分權¶
split brain
兩個節點同時認為自己是領導者的情況,這種情況可能違反服務所能提供的保證。
貯存程序¶
stored procedure
一種把交易邏輯進行編碼後放進資料庫中,它可以完全在資料庫上執行,交易執行期間無需與客戶端通訊。
串流處理¶
stream process
一種一直保持計算的處理方式。可以持續接收事件流作為輸入,並得出一些輸出。
同步¶
synchronous
呼叫工作後等待其完成再繼續執行其他工作。
反義:異步
原始系統¶
system of record, source of truth
一種系統儲存最原始的資料(通常代表該資料最具權威或者最真實)。首先在這裡儲存資料後,其他資料庫便可以從中計算出衍生資料。
超時¶
timeout
檢測故障的最簡單方法之一,即在一段時間內觀察是否得到回應。但是不可能知道超時的原因(可能是遠端節點的問題或者網路溝通時的問題)。
全序¶
total order
一種比較交易的方法(例如時間戳),可以讓你總是說出兩件事中哪一件較早發生,哪件較晚發生。然而有些東西是不能比較其先後的,這時稱其為為偏序(partial order)。
交易¶
transaction
為了簡化容錯(fault tolerance)和並行(concurrency)問題,將幾個讀寫操作分組到一個邏輯單元中。
兩階段提交¶
2PC, two-phase commit
一種確保多個節點全部提交或全部中止交易的演算法。
兩階段鎖¶
2PL, two-phase locking
一種用於實現序列化隔離的演算法,該演算法會賦予鎖於交易中所有接觸到的資料,直到交易結束。
無邊界¶
unbounded
沒有任何已知的上限或大小。反義詞是邊界 bounded 。
反義:邊界