2011-01-31 67 views
29

BASE代表'基本可用,軟狀態,最終一致'BASE中的「軟狀態」是什麼意思?

所以,我來到這麼遠:「基本可用:系統可用,但不一定在任何給定時間點的所有項目「和」最終一致:在一段時間後,所有節點都是一致的,但在任何時候這可能都不是這樣「(如果我錯了,請糾正我)。

但是,「軟狀態」究竟意味着什麼?我還沒有在互聯網上找到任何像樣的解釋。

+2

此頁對我更有幫助。 http://www.fredberinger.com/musings-on-nosql/ – 2012-11-16 22:52:43

回答

20

此頁面(原here,現在只能從web archive)可能會有幫助:

[軟狀態]是信息(州)的用戶投入到系統 會消失,如果用戶沒有按沒有保持它。換句話說, 信息將會到期,除非它被刷新。

相比之下,一個典型的簡單光開關的位置是「硬狀態」的 。如果你把它翻過來,它可能會永遠保持不變。當你(或某個其他用戶)明確地返回來操縱它時,它只會變回原來的狀態。

+0

在Cassandra的情況下,它應該是列上的TTL,對不對?這意味着並非所有的數據都會自動失效,但是可以設置數據的失效時間 - 是否正確? – 2012-01-10 07:44:41

+2

BASE的首字母縮寫是有點人爲的,大多數NoSQL商店實際上並不需要以這種方式刷新數據。在http://stackoverflow.com/questions/3342497/explanation-of-base-terminology上有另一個解釋,表明軟狀態意味着系統將在沒有用戶干預的情況下改變狀態,因爲最終的一致性(但是隨後軟狀態部分的首字母縮寫是多餘的)。正如你所說,人們可以用TTL設置Cassandra以使其完全處於軟狀態,但這是一種不尋常的使用模式(本質上是一種瞬態緩存)。 – DNA 2012-01-11 09:17:35

5

軟狀態意味着未保存在磁盤上的數據,但在失敗的情況下可以恢復它(例如,從高質量的圖像重新創建較低質量的圖像)。解決這個問題和其他有趣問題的好文章是Cluster-Based Scalable Network Services

2

我在課堂上教過「軟狀態」意味着系統的狀態可能會隨着時間而改變(即使在沒有輸入的時候),因爲可能有變化由於「最終一致性」而繼續進行。這就是爲什麼說「軟」的狀態。

一些來源:link

1

基本系統放棄的一致性,從而提高數據庫的性能。因此,大多數着名的nosql數據庫比ACID兼容的關係數據庫更強大。

軟狀態表示即使沒有輸入,系統的狀態也會隨時間而改變。這是因爲最終的一致性模型。 最終一致性表示系統在一段時間內會保持一致,因爲系統在此期間沒有收到輸入。

相關問題