《No-SQL數(shù)據(jù)庫為什么能適應(yīng)分布式數(shù)據(jù)存儲(chǔ)?》要點(diǎn):
本文介紹了No-SQL數(shù)據(jù)庫為什么能適應(yīng)分布式數(shù)據(jù)存儲(chǔ)?,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
在上一篇文章中介紹了非關(guān)系型數(shù)據(jù)庫的CAP理論,但是我們也提到了在一致性和可用性上很難去達(dá)到均衡,如果實(shí)現(xiàn)高可用性,并且允許分區(qū)的話,節(jié)點(diǎn)和節(jié)點(diǎn)之間就會(huì)失去聯(lián)系,每個(gè)節(jié)點(diǎn)在所在的局部網(wǎng)絡(luò)上可能能達(dá)到數(shù)據(jù)一致性,但是從全局角度來看,在允許時(shí)間范圍內(nèi)的強(qiáng)一致性卻很難達(dá)到,現(xiàn)在很多的非關(guān)系型數(shù)據(jù)庫就屬于這一類.
CAP理論定義了分布式系統(tǒng)中如何存儲(chǔ)的問題,但是對(duì)于C和A原則的均衡問題并沒有得到很好的辦理,直到Base理論的提出,一致性和可用性的均衡才找到了一種比較合理的辦理方案.
Base理論 = 基本可用性+軟狀態(tài)+最終一致性,弱化了強(qiáng)一致性和可用性,雙方都退一步,找到一致性和可用性最適合的距離.
基本可用性
在分布式數(shù)據(jù)庫系統(tǒng)中只要保證基本的可用性就可以了,也就說允許分布式系統(tǒng)的部分功能不可用,但是不影響整體核心功能的使用,降低了對(duì)可用性的需求.
軟狀態(tài)
我們?cè)陉P(guān)系型數(shù)據(jù)庫的一致性中曾提到在事務(wù)提交后,數(shù)據(jù)庫的狀態(tài)從一種狀態(tài)轉(zhuǎn)變?yōu)榱硪环N狀態(tài),但是無論是轉(zhuǎn)變前還是轉(zhuǎn)變后都能夠數(shù)據(jù)庫的狀態(tài)都是一致的.而這里提到的軟狀態(tài)指的是允許數(shù)據(jù)庫在做狀態(tài)更新時(shí)存在一些中間狀態(tài),尤其是整個(gè)分布式系統(tǒng)中的不同節(jié)點(diǎn)之間以及數(shù)據(jù)副本之間存在數(shù)據(jù)同步所帶來的延時(shí),但只要保證不會(huì)影響到整體的可用性這種軟狀態(tài)的存在也是OK的.
最終一致性
最終一致性和強(qiáng)一致性的區(qū)別在于并不要求實(shí)時(shí)的數(shù)據(jù)一致性,只要保證在延時(shí)允許內(nèi)數(shù)據(jù)副本最終和數(shù)據(jù)保持一致性,像我們用一臺(tái)計(jì)算機(jī)拜訪某個(gè)網(wǎng)站,另一臺(tái)計(jì)算機(jī)也同時(shí)拜訪這個(gè)網(wǎng)站,假設(shè)這兩臺(tái)或者是更多的計(jì)算機(jī)拜訪同一個(gè)網(wǎng)站時(shí),如果這些計(jì)算機(jī)不在一個(gè)網(wǎng)段上,也就是處于不同的節(jié)點(diǎn)上,它們從網(wǎng)站服務(wù)器上獲取的數(shù)據(jù)可能在很短的時(shí)間內(nèi)是不同的,但是最終它們獲得的數(shù)據(jù)必須是一致的,這樣才能保證服務(wù)器提供正常的服務(wù).
非關(guān)系型數(shù)據(jù)能在大數(shù)據(jù)存儲(chǔ)上應(yīng)用廣泛,很大程度上還是因?yàn)榉顷P(guān)系型數(shù)據(jù)庫在分布式數(shù)據(jù)存儲(chǔ)的優(yōu)秀表現(xiàn).像Google之前提出的關(guān)系型分布式存儲(chǔ)系統(tǒng)也具備比擬靈活的擴(kuò)展性,并且也不影響RBMS的其他性能,但是并沒有得到大范圍的使用.
《No-SQL數(shù)據(jù)庫為什么能適應(yīng)分布式數(shù)據(jù)存儲(chǔ)?》是否對(duì)您有啟發(fā),歡迎查看更多與《No-SQL數(shù)據(jù)庫為什么能適應(yīng)分布式數(shù)據(jù)存儲(chǔ)?》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/10146.html