"與其考慮如何權(quán)衡“一致性”與“可用性”束昵,不如思考怎么樣在“一致性”與“延遲”之間取舍拔稳。”這是我對書中印象最深刻的一句話锹雏。
概述
按照慣例巴比,相對書的內(nèi)容進(jìn)行簡要的概述,從內(nèi)容上分為兩個(gè)部分:第一部分針對NoSql的基本概念進(jìn)行闡述,第二部分專注于實(shí)現(xiàn)NoSql數(shù)據(jù)庫轻绞。從第一部分的針對NoSql的概念講解采记,是對得起書名叫NoSql精粹的。另外铲球,書中插圖也是很給力的挺庞。從為什么使用NoSql問題出發(fā),首先分析傳統(tǒng)的關(guān)系型數(shù)據(jù)優(yōu)勢稼病,與在解決目前問題上的短板选侨,引入NoSql的概念,接著然走,從數(shù)據(jù)模型援制、分布式模型、一致性芍瑞、版本戳晨仑、映射-簡化操作等方面論述與關(guān)系數(shù)據(jù)庫的異同。第二部分針對上面介紹的概念拆檬,從市面上開源的NoSql產(chǎn)品中演示是如何實(shí)現(xiàn)上述所講的概念的洪己。對于書中的內(nèi)容就做以上簡單的介紹,重點(diǎn)在我的觀感上竟贯。
我的觀感
在讀這本書之前答捕,可能是受了關(guān)系型數(shù)據(jù)庫一些概念的太久的荼毒,以致于剛開始對一些概念容易跳到關(guān)系型數(shù)據(jù)的角度去理解屑那。本書刷新我的認(rèn)識的是第五章對于一致性的論述拱镐。雖然說并非所有的NoSql數(shù)據(jù)庫都是為了運(yùn)行在集群上而設(shè)計(jì),但是我們看到的絕大多數(shù)NoSql數(shù)據(jù)庫持际,都是運(yùn)行在集群上的沃琅,HBase、redis蜘欲、Cassandra等益眉。自然,對于分布式數(shù)據(jù)庫而言芒填,數(shù)據(jù)一致性是必須要考慮的呜叫,作者討論了更新一致性、讀取一致性殿衰,然后討論我們有哪些理由可以放開對于“一致性”的約束朱庆,如果說CAP定理出發(fā),因?yàn)檫@些年我們看到了太多的文章說最終一致性之類闷祥,對于放開“一致性”的約束娱颊,似乎不是很難理解傲诵。但是對于放開對于“持久性”的約束的呢?這些作者都有論述箱硕,比我寫的精彩多了拴竹。這些說下我感受:不管是對于NoSql數(shù)據(jù)庫來說,還是我們做應(yīng)用開發(fā)剧罩,在開發(fā)系統(tǒng)的過程中栓拜,難免會有這些思考和權(quán)衡,那這本書所提供的思考方式和思路值得你借鑒惠昔。在“仲裁”章節(jié)中幕与,對與“一致性”與“持久性”之間的取舍的論述,可謂精彩镇防,從“復(fù)制因子”啦鸣、“執(zhí)行讀取操作時(shí)所需聯(lián)系的節(jié)點(diǎn)數(shù)”、“參與寫入操作的節(jié)點(diǎn)數(shù)”三者的關(guān)系来氧,把復(fù)雜的事情分解的簡單诫给,容易理解,又不失深刻啦扬,強(qiáng)烈推薦中狂。
沒有理論指導(dǎo)的實(shí)踐是盲目的,沒有實(shí)踐的理論是空洞扑毡。所以對于這本書的閱讀不僅僅只限于了解下NoSql,最好的方式是:比如你正在學(xué)習(xí)HBase的基本用法吃型,了解了掌握之后,想進(jìn)一步理解僚楞,可以針對書中的基本概念,探究下Hbase是怎么實(shí)現(xiàn)這些思想枉层,做了哪些取舍泉褐。相信這樣操作之后,無論在技術(shù)上還是面試過程中的你鸟蜡,談笑間膜赃、羽扇綸巾。