Nosql

為什麼 NoSQL 數據庫不符合 ACID?

  • October 3, 2020

沒有 ACID 屬性意味著數據庫在集群上執行良好。但 ACID 是非常基本的東西。如果沒有原子性、一致性、隔離性和持久性(ACID),數據庫如何執行良好?

沒有 ACID 屬性意味著數據庫在集群上執行良好。但 ACID 是非常基本的東西。如果沒有原子性、一致性、隔離性和持久性(ACID),數據庫如何執行良好?

我不會拋棄 Vérace、Evan Carroll 和 Randolph West 的任何東西。

根據這個部落格,在他的演講NoSQL:過去、現在、未來Eric Brewer 提出了一個特別好的部分來解釋通常難以理解的 BASE(基本可用、軟狀態、最終一致)的想法。

如果沒有原子性、一致性、隔離性和持久性 (ACID),NoSQL 數據庫如何執行良好?因為根據我的專業dba知識,現在說這個路口還為時過早。

但我想與您分享 DataStax 首席執行官 Billy Bosworth 在 InfoWorld 新技術論壇上的文章:“非關係世界中關於 ACID 合規性的 5 大誤解。” 這可能會對您有所幫助。

誤解 1:沒有 ACID 合規性就無法建構線上應用程序

誤解二:ACID 是一個全有或全無的命題

誤解三:最終一致性違反了“ACID”中的“C”

誤解 4:數據庫和應用程序具有 1:1 的關係,因此它是/或在關係技術和 NoSQL 技術之間

誤解五:NoSQL 數據庫僅適用於“Web 規模”應用程序;其他一切都使用符合 ACID 的技術

為什麼它很重要Eric Brewer 繼續根據新技術完善他對CAP(一致性、可用性、分區容限)定理的理解。與此同時,開發人員、架構師和數據庫管理員正在提高他們對這種權衡的理解。至少,他們意識到我們並不是生活在一個千篇一律的世界中,必須為正確的工作採用正確的技術。那些擺脫關係誤解的人將利用這個多樣化數據庫技術的新世界所提供的力量和機會。

供進一步參考:

如果沒有原子性、一致性、隔離性和持久性,數據庫如何執行良好?

他們不能。這就是創建這些功能的原因。

有時您可以解決缺少這些功能的問題,因為您需要水平擴展或擴展成為您的首要關注點。您現在可能不需要一致性,您可能以後可以處理它。. 您可能不需要按順序返回所有數據:您可能希望在集群上並行執行查詢。或者您的數據本身可能相當不值錢。

不過,看看實現這些類型系統的主要產品——通常,它們很糟糕,而且有很多錯誤。是否曾經在 Facebook 上的牆上貼過一些東西,只是為了看到它消失又重新出現多​​次?或者讓您評論的對話消失很長一段時間然後回來?數百人使用“NoSQL”管理數據並將 PHP 編譯為 C++。它不是特別好用。它是有效的,而且對於大多數公司來說,他們無法開發替代方案。

引用自:https://dba.stackexchange.com/questions/185763