ddia/zh-tw/glossary.md

753 lines
15 KiB
Markdown
Raw Normal View History

2020-10-06 01:21:28 +08:00
# 術語表 【DRAFT】
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
> 請注意,本術語表中的定義簡短而簡單,旨在傳達核心思想,而不是術語的完整細微之處。 有關更多詳細資訊,請參閱正文中的參考資料。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
[TOC]
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 非同步asynchronous
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
不等待某些事情完成例如將資料傳送到網路中的另一個節點並且不會假設要花多長時間。請參閱第153頁上的“同步與非同步複製”第284頁上的“同步與非同步網路”以及第306頁上的“系統模型與現實”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 原子atomic
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
1.在併發操作的上下文中:描述一個在單個時間點看起來生效的操作,所以另一個併發程序永遠不會遇到處於“半完成”狀態的操作。另見隔離。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
2.在事務的上下文中將一些寫入操作分為一組這組寫入要麼全部提交成功要麼遇到錯誤時全部回滾。參見第223頁的“原子性”和第354頁的“原子提交和兩階段提交2PC”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 背壓backpressure
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
接收方接收資料速度較慢時強制降低傳送方的資料傳送速度。也稱為流量控制。請參閱第441頁上的“訊息系統”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 批處理batch process
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種計算,它將一些固定的(通常是大的)資料集作為輸入,並將其他一些資料作為輸出,而不修改輸入。見第十章。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 邊界bounded
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
有一些已知的上限或大小。例如網路延遲情況請參閱“超時和未定義的延遲”在本頁281和資料集請參閱第11章的介紹
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 拜占庭故障Byzantine fault
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
表現異常的節點這種異常可能以任意方式出現例如向其他節點發送矛盾或惡意訊息。請參閱第304頁上的“拜占庭故障”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 快取cache
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種元件,透過儲存最近使用過的資料,加快未來對相同資料的讀取速度。快取中通常存放部分資料:因此,如果快取中缺少某些資料,則必須從某些底層較慢的資料儲存系統中,獲取完整的資料副本。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### CAP定理CAP theorem
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一個被廣泛誤解的理論結果在實踐中是沒有用的。參見第336頁的“CAP定理”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 因果關係causality
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
事件之間的依賴關係當一件事發生在另一件事情之前。例如後面的事件是對早期事件的迴應或者依賴於更早的事件或者應該根據先前的事件來理解。請參閱第186頁上的“發生之前的關係和併發性”和第339頁上的“排序和因果關係”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 共識consensus
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
分散式計算的一個基本問題就是讓幾個節點同意某些事情例如哪個節點應該是資料庫叢集的領導者。問題比乍看起來要困難得多。請參閱第364頁上的“容錯共識”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 資料倉庫data warehouse
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一個數據庫其中來自幾個不同的OLTP系統的資料已經被合併和準備用於分析目的。請參閱第91頁上的“資料倉庫”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 宣告式declarative
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
描述某些東西應有的屬性但不知道如何實現它的確切步驟。在查詢的上下文中查詢最佳化器採用宣告性查詢並決定如何最好地執行它。請參閱第42頁上的“資料的查詢語言”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 非規範化denormalize
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
為了加速讀取在標準資料集中引入一些冗餘或重複資料通常採用快取或索引的形式。非規範化的值是一種預先計算的查詢結果像物化檢視。請參見“單物件和多物件操作”第228頁和“從同一事件日誌中派生多個檢視”第461頁
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 衍生資料derived data
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種資料集,根據其他資料透過可重複執行的流程建立。必要時,你可以執行該流程再次建立衍生資料。衍生資料通常用於提高特定資料的讀取速度。常見的衍生資料有索引、快取和物化檢視。參見第三部分的介紹。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 確定性deterministic
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
描述一個函式,如果給它相同的輸入,則總是產生相同的輸出。這意味著它不能依賴於隨機數字、時間、網路通訊或其他不可預測的事情。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 分散式distributed
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
在由網路連線的多個節點上執行。對於部分節點故障具有容錯性系統的一部分發生故障時其他部分仍可以正常工作通常情況下軟體無需瞭解故障相關的確切情況。請參閱第274頁上的“故障和部分故障”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 持久durable
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
以某種方式儲存資料即使發生各種故障也不會丟失資料。請參閱第226頁上的“永續性”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### ETLExtract-Transform-Load
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
提取-轉換-載入Extract-Transform-Load。從源資料庫中提取資料將其轉換為更適合分析查詢的形式並將其載入到資料倉庫或批處理系統中的過程。請參閱第91頁上的“資料倉庫”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 故障切換failover
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
在具有單一領導者的系統中故障切換是將領導角色從一個節點轉移到另一個節點的過程。請參閱第156頁的“處理節點故障”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 容錯fault-tolerant
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
如果出現問題例如機器崩潰或網路連線失敗可以自動恢復。請參閱第6頁上的“可靠性”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 流量控制flow control
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
見背壓backpressure
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 追隨者follower
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種資料副本僅處理領導者發出的資料變更不直接接受來自客戶端的任何寫入。也稱為輔助、僕從、只讀副本或熱備份。請參閱第152頁上的“領導和追隨者”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 全文檢索full-text search
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
透過任意關鍵字來搜尋文字通常具有附加特徵例如匹配類似的拼寫詞或同義詞。全文索引是一種支援這種查詢的次級索引。請參閱第88頁上的“全文搜尋和模糊索引”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 圖graph
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種資料結構由頂點可以指向的東西也稱為節點或實體和邊從一個頂點到另一個頂點的連線也稱為關係或弧組成。請參閱第49頁上的“和圖相似的資料模型”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 雜湊hash
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
將輸入轉換為看起來像隨機數值的函式。相同的輸入會轉換為相同的數值不同的輸入一般會轉換為不同的數值也可能轉換為相同數值也被稱為衝突。請參閱第203頁的“根據鍵的雜湊值分隔”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 冪等idempotent
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
用於描述一種操作可以安全地重試執行即執行多次的效果和執行一次的效果相同。請參閱第478頁的“冪等”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 索引index
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種資料結構。透過索引你可以根據特定欄位的值在所有資料記錄中進行高效檢索。請參閱第70頁的“讓資料庫更強大的資料結構”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 隔離性isolation
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
在事務上下文中用於描述併發執行事務的互相干擾程度。序列執行具有最強的隔離性不過其它程度的隔離也通常被使用。請參閱第225頁的“隔離”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 連線join
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
彙集有共同點的記錄。在一個記錄與另一個記錄有關外來鍵文件參考圖中的邊的情況下最常用查詢需要獲取參考所指向的記錄。請參閱第33頁上的“多對一和多對多關係”和第393頁上的“減少端連線和分組”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 領導者leader
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
當資料或服務被複制到多個節點時由領導者分發已授權變更的資料副本。領導者可以透過某些協議選舉產生也可以由管理者手動選擇。也被稱為主人。請參閱第152頁的“領導者和追隨者”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 線性化linearizable
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
表現為系統中只有一份透過原子操作更新的資料副本。請參閱第324頁的“線性化”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 區域性性locality
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種效能最佳化方式如果經常在相同的時間請求一些離散資料把這些資料放到一個位置。請參閱第41頁的“請求資料的區域性性”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 鎖lock
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種保證只有一個執行緒、節點或事務可以訪問的機制如果其它執行緒、節點或事務想訪問相同元素則必須等待鎖被釋放。請參閱第257頁的“兩段鎖2PL”和301頁的“領導者和鎖”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 日誌log
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
日誌是一個只能以追加方式寫入的檔案用於存放資料。預寫式日誌用於在儲存引擎崩潰時恢復資料請參閱第82頁的“使二叉樹更穩定”結構化日誌儲存引擎使用日誌作為它的主要儲存格式請參閱第76頁的“有序字串表和日誌結構的合併樹”複製型日誌用於把寫入從領導者複製到追隨者請參閱第152頁的“領導者和追隨者”事件性日誌可以表現為資料流請參閱第446頁的“分段日誌”
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 物化materialize
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
急切地計算並寫出結果而不是在請求時計算。請參閱第101頁的“聚合資料立方和物化檢視”和419頁的“中間狀態的物化”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 節點node
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
計算機上執行的一些軟體的例項,透過網路與其他節點通訊以完成某項任務。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 規範化normalized
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
以沒有冗餘或重複的方式進行結構化。 在規範化資料庫中,當某些資料發生變化時,您只需要在一個地方進行更改,而不是在許多不同的地方複製很多次。 請參閱第33頁上的“多對一和多對多關係”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### OLAPOnline Analytic Processing
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
線上分析處理。 透過對大量記錄進行聚合(例如,計數,總和,平均)來表徵的訪問模式。 請參閱第90頁上的“交易處理或分析”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### OLTPOnline Transaction Processing
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
線上事務處理。 訪問模式的特點是快速查詢,讀取或寫入少量記錄,這些記錄通常透過鍵索引。 請參閱第90頁上的“交易處理或分析”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 分割槽partitioning
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
將單機上的大型資料集或計算結果拆分為較小部分,並將其分佈到多臺機器上。 也稱為分片。 見第6章。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 百分位點percentile
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
透過計算有多少值高於或低於某個閾值來衡量值分佈的方法。 例如某個時間段的第95個百分位響應時間是時間t則該時間段中95的請求完成時間小於t5的請求完成時間要比t長。 請參閱第13頁上的“描述效能”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 主鍵primary key
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
唯一標識記錄的值(通常是數字或字串)。 在許多應用程式中,主鍵由系統在建立記錄時生成(例如,按順序或隨機); 它們通常不由使用者設定。 另請參閱二級索引。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 法定人數quorum
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
在操作完成之前,需要對操作進行投票的最少節點數量。 請參閱第179頁上的“讀寫的法定人數”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 再平衡rebalance
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
將資料或服務從一個節點移動到另一個節點以實現負載均衡。 請參閱第209頁上的“再平衡分割槽”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 複製replication
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
在幾個節點副本上保留相同資料的副本以便在某些節點無法訪問時資料仍可訪問。請參閱第5章。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 模式schema
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一些資料結構的描述,包括其欄位和資料型別。 可以在資料生命週期的不同點檢查某些資料是否符合模式請參閱第39頁上的“文件模型中的模式靈活性”模式可以隨時間變化請參閱第4章
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 次級索引secondary index
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
與主要資料儲存器一起維護的附加資料結構,使您可以高效地搜尋與某種條件相匹配的記錄。 請參閱第85頁上的“其他索引結構”和第206頁上的“分割槽和二級索引”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 可序列化serializable
2021-08-09 22:26:03 +08:00
保證多個併發事務同時執行時,它們的行為與按順序逐個執行事務相同。 請參閱第7章的“[可序列化](ch7.md#可序列化)”。
2020-10-06 01:21:28 +08:00
### 無共享shared-nothing
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
與共享記憶體或共享磁碟架構相比獨立節點每個節點都有自己的CPU記憶體和磁碟透過傳統網路連線。 見第二部分的介紹。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 偏斜skew
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
1.各分割槽負載不平衡例如某些分割槽有大量請求或資料而其他分割槽則少得多。也被稱為熱點。請參閱第205頁上的“工作負載偏斜和減輕熱點”和第407頁上的“處理偏斜”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
2.時間線異常導致事件以不期望的順序出現。 請參閱第237頁上的“快照隔離和可重複讀取”中的關於讀取偏斜的討論第246頁上的“寫入偏斜和模糊”中的寫入偏斜以及第291頁上的“訂購事件的時間戳”中的時鐘偏斜。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 腦裂split brain
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
兩個節點同時認為自己是領導者的情況,這種情況可能違反系統擔保。 請參閱第156頁的“處理節點中斷”和第300頁的“真相由多數定義”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 儲存過程stored procedure
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種對事務邏輯進行編碼的方式,它可以完全在資料庫伺服器上執行,事務執行期間無需與客戶端通訊。 請參閱第252頁的“實際序列執行”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 流處理stream process
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
持續執行的計算。可以持續接收事件流作為輸入,並得出一些輸出。 見第11章。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 同步synchronous
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
非同步的反義詞。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 記錄系統system of record
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一個儲存主要權威版本資料的系統,也被稱為真相的來源。首先在這裡寫入資料變更,其他資料集可以從記錄系統衍生。 參見第三部分的介紹。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 超時timeout
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
檢測故障的最簡單方法之一,即在一段時間內觀察是否缺乏響應。 但是,不可能知道超時是由於遠端節點的問題還是網路中的問題造成的。 請參閱第281頁上的“超時和無限延遲”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 全序total order
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種比較事物的方法(例如時間戳),可以讓您總是說出兩件事中哪一件更大,哪件更小。 總的來說,有些東西是無法比擬的(不能說哪個更大或更小)的順序稱為偏序。 請參見第341頁的“因果順序不是全序”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 事務transaction
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
為了簡化錯誤處理和併發問題,將幾個讀寫操作分組到一個邏輯單元中。 見第7章。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 兩階段提交2PC, two-phase commit
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種確保多個數據庫節點全部提交或全部中止事務的演算法。 請參閱第354頁上的“原子提交和兩階段提交2PC”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 兩階段鎖定2PL, two-phase locking
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
一種用於實現可序列化隔離的演算法,該演算法透過事務獲取對其讀取或寫入的所有資料的鎖,直到事務結束。 請參閱第257頁上的“兩階段鎖定2PL”。
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
### 無邊界unbounded
2021-08-09 22:26:03 +08:00
2020-10-06 01:21:28 +08:00
沒有任何已知的上限或大小。 反義詞是邊界bounded