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