ACID 和 CAP 一致性的區別
-
ACID 代表資料庫的四個基本要素,分別是
- 原子性
Atomicity
- 一致性
Consistency
- 隔離性
Isolation
- 永續性
Durability
- 原子性
-
CAP 則是分散式系統的三要素 ,分別是
- 一致性
Consistency
- 可用性
Availability
- 區分容錯性
Partition tolerance
- 一致性
-
資料庫 ACID 的一致性,我們又稱之為內部一致性,可以理解為
- 事務開始前和結束後,資料庫的完整性約束沒有被破壞 。比如
A
B
轉賬,不可能A
扣了錢,B
卻沒收到。
- 事務開始前和結束後,資料庫的完整性約束沒有被破壞 。比如
-
分散式 CAP 的一致性,我們也稱之為外部一致性,可以理解為
- 在分散式系統中,寫操作後再讀,就必須返回寫入的值。比如分散式資料庫
A、B、C
,A
中寫入資料hello
,寫完馬上讀B
和C
,就一定要讀出hello
,讀出來我們就稱之為符合一致性
- 在分散式系統中,寫操作後再讀,就必須返回寫入的值。比如分散式資料庫
-
兩者區別,內部一致性注重於事務前後資料的完整性,而外部一致性則注重於讀寫資料的一致性
相關推薦
ACID 和 CAP 一致性的區別
ACID 代表資料庫的四個基本要素,分別是 原子性 Atomicity 一致性 Consistency 隔離性 Isolation 永續性 Durability CAP 則是分散式系統的三要素 ,分
一致性hash理解、拜占庭將軍問題解讀和CAP理論總結
一致性hash理解 白話概述: 比如說儲存圖片,有10臺伺服器用來儲存,對圖片名進行hash(pic_name)%10得到的值就是圖片存放的伺服器序號。這是正常的hash演算法分散圖片儲存。但是有一天,你覺得伺服器不夠了,需要加幾臺機器擴容儲存。這時候,假設加了10臺,變成20臺,那麼
分散式系統一致性(ACID、CAP、BASE、二段提交、三段提交、TCC、冪等性)原理詳解
本文內容屬於分散式事物處理範疇,強調強一致性與區塊鏈倡導的共識一致性略有不同,主要是最近以太坊ico導致交易擁堵問題引起我的思考,是不是有可能利用已有的解決方案進行演變增加每個節點的提交時的一致性,簡單來講就是在p2p網路中實現部分強一致性,提升區塊鏈交易效能,文中TCC就是一種演變思路,很
CAP理論,ACID和BASE
分散式領域CAP理論:Consistency(一致性)、Availability(可用性)、Tolerance to network Partitions)分割槽容錯性),任何分散式系統只可能同時滿足二點,沒法三者兼顧。架構師不要將精力浪費在如何設計能滿足三者的完美分散式系
關於ACID,BASE和CAP定理的探究
## 前言 當我看到"**根據CAP理論,由於分散式系統必須保證分割槽容錯性,所以只能選擇AP原則或者CP原則**"這種結論時,我感到很疑惑: - 什麼是分割槽容錯性? - 為什麼分散式系統必須保證分割槽容錯性? - 為什麼說Eureka這樣的分散式系統屬於AP原則,它明明沒有完全放棄一致性啊? - 真的
cookie 和session 的區別詳解
重復 處理方式 一行 所有 有效 依據 是把 存儲 一個 二者的定義: 當你在瀏覽網站的時候,WEB 服務器會先送一小小資料放在你的計算機上,Cookie 會幫你在網站上所打的文字或是一些選擇, 都紀錄下來。當下次你再光臨同一個網站,WEB 服務器會先看看有沒有它上次留下的
JS中isPrototypeOf 和hasOwnProperty 的區別
另一個 strong 是否 指定 不同 名稱 功能 成員 eof 1、isPrototypeOf isPrototypeOf是用來判斷指定對象object1是否存在於另一個對象object2的原型鏈中,是則返回true,否則返回false。 格式如下: object1.is
struts1和struts2的區別
mvc 項目 專註 邏輯 表單 類對象 區別 action 層次 struts是Apache基金會的一個開源項目。struts提供了通用的MVC:模型層(專註於業務邏輯(數據的存儲、處理))、視圖層(數據在瀏覽器端的顯示)、控制層(連接模型層與視圖層)、 MVC架構:層次分
Statement, PreparedStatement和CallableStatement的區別
通過 請求 簡單 state 頁面請求 對象 以及 最好 功能 Statement用於執行不帶參數的簡單SQL語句,並返回它所生成的結果,每次執行SQL豫劇時,數據庫都要編譯該SQL語句。 Satatement stmt = conn.getStatement(); st
清空文件內容命令之echo和/dev/null區別?
linux 字符串 null 定向 我們知道清空文件內容有很多種方法我們只談論echo "" 和 /dev/null這兩種有什麽區別一、黑洞設備/dev/null是什麽?在 Linux 中, null 設備基本上被用來丟棄某個進程不再需要的輸出流,或者作為某個輸入流的空白文件,這些通常可以利用
JSON.parse()和eval()的區別
如果 字符串 擔心 並且 spa 區別 color 操作 插入 JSON.parse()之可以解析json格式的數據,並且會對要解析的字符串進行格式檢查,如果格式不正確則不進行解析,而eval()則可以解析任何字符串,eval是不安全的。 比如下面的字符串: var
href和src的區別
方式 並且 資源 per frame 資源下載 為什麽 link 存在 href和src的區別 [標簽]src和href之間存在區別,能混淆使用。src用於替換當前元素,href用於在當前文檔和引用資源之間確立聯系。 src是source的縮寫,指向外部資源的位置,指向
left join 和 on 的區別
wid color left join where 單表查詢 不同 決定 width aaa SQL中on條件與where條件的區別 在使用left jion時,on和where條件的區別如下: 1、 on條件是在生成臨時表時使用的條件,它不管on中的條件是否為
徹徹底底理解C++中指針和引用的區別
c++ 區別 include 分享 sin style void png alt #include<iostream> using namespace std; void test(int **p) { int a=2; *p=&a;
em、rem和px的區別
版本 很好 浮點 調整 簡化 分辨 related 開心 大小 1、em與px的問題 px是何物? px像素(Pixel)。相對長度單位。像素px是相對於顯示器屏幕分辨率而言的。(引自CSS2.0手冊) em是相對長度單位。相對於當前對象內文本的字體尺寸。如當前對行內文本
mdev和udev的區別
logs htm tails net 區別 csdn targe blank cnblogs http://blog.csdn.net/hunanchenxingyu/article/details/40432275 http://www.cnblogs.com/lidab
HashMap和Hashtable的區別
性能 刪除 影響 之間 fail 創建 允許 hashmap 以及 HashMap和Hashtable都實現了Map接口,但決定用哪一個之前先要弄清楚它們之間的分別。主要的區別有:線程安全性,同步(synchronization),以及速度。 HashMap幾乎可以等價於
攔截器和過濾器的區別
str span line 實現 沒有 內部 不依賴 resp left 攔截器和過濾器都可以用來實現橫切關註功能,其區別主要在於: 1、攔截器是基於java反射機制的,而過濾器是基於函數回調的。 2、過濾器依賴於servlet容器,而攔截器不依賴於servlet容器。 3
線程同步和互斥的區別
之間 方法 無法 spa lock zed 模式 col 一定的 互斥是指某一資源同時只允許一個訪問者對其進行訪問,具有唯一性和排它性。但互斥無法限制訪問者對資源的訪問順序,即訪問是無序的。 同步是指在互斥的基礎上(大多數情況),通過其它機制實現訪問者對資源的有序訪問。
cnpm install -S 與cnpm install -D (dependencies和devDependencies的區別)
ive optional package bsp 後者 pack cti enc date npm install takes 3 exclusive, optional flags which save or update the package version in y