官术网_书友最值得收藏!

第二節(jié) 大數(shù)據(jù)的相關(guān)概念與理論

一、數(shù)據(jù)科學(xué)理論

在摸索數(shù)據(jù)生產(chǎn)要素理論和數(shù)據(jù)創(chuàng)新理論的過(guò)程中,我們發(fā)現(xiàn),對(duì)于兩者更為準(zhǔn)確的定位是數(shù)據(jù)中觀理論和數(shù)據(jù)微觀理論,因而必須要建立一個(gè)較為完整和宏觀的數(shù)據(jù)科學(xué)體系。在一個(gè)宏觀理論的基礎(chǔ)上才能對(duì)兩者進(jìn)行更加深入的研究和拓展。

我們認(rèn)為,如果放大至數(shù)據(jù)科學(xué)宏觀理論,就必須著眼于三點(diǎn):一是要有一個(gè)廣泛和詳盡的基礎(chǔ)概念;二是要了解數(shù)據(jù)的基本屬性;三是要以全新的思想和眼界,去觀察并發(fā)展一個(gè)近乎全新的科學(xué)體系。

(一)廣義數(shù)據(jù)的定義

數(shù)據(jù)的原有基礎(chǔ)概念是科學(xué)實(shí)驗(yàn)、檢驗(yàn)、統(tǒng)計(jì)等所獲得的和用于科學(xué)研究、技術(shù)設(shè)計(jì)、查證、決策等方向的數(shù)值,或者是進(jìn)行各種統(tǒng)計(jì)、計(jì)算、科學(xué)研究或技術(shù)設(shè)計(jì)等所依據(jù)的數(shù)值。

在信息技術(shù)高速發(fā)展的今天,各個(gè)行業(yè)對(duì)數(shù)據(jù)的要求發(fā)生了質(zhì)變,數(shù)據(jù)原有的基礎(chǔ)概念已經(jīng)不能滿足社會(huì)發(fā)展的需要,必須及時(shí)地對(duì)其加以修正和擴(kuò)展。我們對(duì)數(shù)據(jù)的初步定義如下:在自然界和人類文明的發(fā)展中,當(dāng)所有物質(zhì)和意識(shí)的存在以某種形式或語(yǔ)言記錄傳承下來(lái)時(shí),都會(huì)形成可見(jiàn)和不可見(jiàn)的載體或媒介,這些載體或媒介所承擔(dān)的內(nèi)容,都將被視為廣義數(shù)據(jù)。而原有的數(shù)據(jù)概念,我們可以將其定義為狹義數(shù)據(jù)。

廣義數(shù)據(jù)這個(gè)概念將是數(shù)據(jù)科學(xué)的起點(diǎn)、基礎(chǔ)和核心,它的生成將極大地促使數(shù)據(jù)概念本身的內(nèi)涵和外延更加豐富,使人類文明的延續(xù)和發(fā)展有更強(qiáng)有力的武器,甚至可以全面覆蓋語(yǔ)言和文字的歷史包容量和意義。而對(duì)于科技發(fā)展已經(jīng)支撐新生價(jià)值的80%的當(dāng)今社會(huì),廣義數(shù)據(jù)這個(gè)理念和思想,一定會(huì)給人們以巨大的想象空間,進(jìn)而融合、激發(fā)、再造出更多的創(chuàng)新思想、生產(chǎn)方式和新型的生態(tài)鏈、生態(tài)圈。

(二)數(shù)據(jù)的基因特質(zhì)

數(shù)據(jù)有許多人類沒(méi)有關(guān)注到的特性,最鮮明的特性主要有以下七個(gè)方面。

1.?dāng)?shù)據(jù)的準(zhǔn)確性、實(shí)時(shí)性、全面性

這是原有的狹義數(shù)據(jù)概念就包含的屬性,但這些屬性在原有概念中沒(méi)有占據(jù)重要地位,通常以樣本數(shù)據(jù)和事后分析來(lái)預(yù)估和推理事物的發(fā)展。在大數(shù)據(jù)發(fā)展的今天,這三個(gè)屬性的功能和意義都極大提升,甚至將成為人們永久奮斗的目標(biāo)。

2.?dāng)?shù)據(jù)的可復(fù)制性和繼承性

在廣義數(shù)據(jù)概念中,隨著數(shù)據(jù)自身主觀和客觀的演變,可復(fù)制性和繼承性的含義也將被無(wú)限放大。這是一個(gè)能令人無(wú)限遐想的理念。

3.?dāng)?shù)據(jù)的可見(jiàn)和不可見(jiàn)的規(guī)律性

可見(jiàn)和不可見(jiàn)的規(guī)律性,徹底打破了數(shù)據(jù)的傳統(tǒng)理念,使數(shù)據(jù)上升為既是物質(zhì)存在又是思想意識(shí)的客觀事物。

4.?dāng)?shù)據(jù)的跨界、跨領(lǐng)域的關(guān)聯(lián)性和重組性

跨界、跨領(lǐng)域的關(guān)聯(lián)和重組,將是數(shù)據(jù)自身發(fā)展的天性。隨著技術(shù)的進(jìn)步,這種數(shù)據(jù)主觀上或者客觀上被無(wú)限放大的蔓延方式,將是創(chuàng)新與創(chuàng)造最直接的發(fā)展路徑,但人類也將面臨前所未有的挑戰(zhàn)和危機(jī)。

5.事物的泛數(shù)據(jù)化傾向特性

所有事物在理論上均可數(shù)據(jù)化,這是數(shù)據(jù)科學(xué)的基礎(chǔ)概念和終極目標(biāo)。從某種意義上理解,數(shù)據(jù)科學(xué)將是所有自然科學(xué)和社會(huì)科學(xué)的載體和媒介,是一切科學(xué)傳承的外在表現(xiàn)。

6.?dāng)?shù)據(jù)的安全性和可靠性

廣義數(shù)據(jù)給了人們巨大無(wú)比的想象空間,但安全性和可靠性所帶來(lái)的問(wèn)題也成為文明發(fā)展重要的衍生物。這些問(wèn)題將是目前數(shù)據(jù)時(shí)代面臨的最大障礙。

7.?dāng)?shù)據(jù)的突變性及裂變性

裂變是病毒式發(fā)展的基本路徑,有助于高速度的實(shí)現(xiàn)。但突變是數(shù)據(jù)最可怕的敵人。隨著人工智能等各項(xiàng)信息技術(shù)的發(fā)展,突變性將越來(lái)越不可發(fā)現(xiàn)和不可預(yù)見(jiàn)。從生物界可以看出,突變中99%的結(jié)果都是惡變,僅有1%的結(jié)果是進(jìn)化,但這個(gè)進(jìn)化一定是革命性的。可以預(yù)言,廣義數(shù)據(jù)也具有這種屬性,需要我們高度關(guān)注和嚴(yán)防死守。

信息系統(tǒng)是數(shù)據(jù)應(yīng)用的平臺(tái)和工具,在實(shí)際運(yùn)行中,人們對(duì)系統(tǒng)的各種需求,其實(shí)質(zhì)就是對(duì)數(shù)據(jù)的需求。數(shù)據(jù)作為信息的最基礎(chǔ)的細(xì)胞要素,是目前所知的現(xiàn)實(shí)存在的最小物質(zhì)的規(guī)律性信息單元,其作用是決定性的。如果人們對(duì)這個(gè)最小單元進(jìn)行科學(xué)化、系統(tǒng)化的研究與拓展,發(fā)現(xiàn)和應(yīng)用好數(shù)據(jù)的規(guī)律和屬性,將極大地促進(jìn)人們了解并把握事物的發(fā)展規(guī)律,為諸多預(yù)言提供理論依據(jù)和佐證,這是新型信息化建設(shè)的基礎(chǔ)和核心。

利用這些特性,我們就可以解釋為什么新一代信息技術(shù)會(huì)以超出想象的速度發(fā)展,其本質(zhì)就是數(shù)據(jù)的重組、隱含性展現(xiàn)和突變等屬性在發(fā)揮積極的作用,進(jìn)而創(chuàng)造出令人咋舌的新生事物和發(fā)展模式。

(三)數(shù)據(jù)生產(chǎn)要素理論

在大數(shù)據(jù)時(shí)代,數(shù)據(jù)的實(shí)質(zhì)正在發(fā)生根本性的改變,數(shù)據(jù)已經(jīng)從記錄過(guò)程的依據(jù)發(fā)展成為生產(chǎn)要素。原有的生產(chǎn)要素大致分為能源、礦產(chǎn)、土地及其他自然資源,勞動(dòng)力,資本(諸如貨幣或貨幣等價(jià)物等)三大類。在過(guò)去某一時(shí)間段內(nèi),我們也模糊地將技術(shù)和信息劃分在生產(chǎn)要素里,但這種觀點(diǎn)不夠準(zhǔn)確。現(xiàn)在,我們可以清晰、堅(jiān)定地認(rèn)為:數(shù)據(jù)是一種重要的生產(chǎn)要素。這個(gè)定義不僅可以描述為數(shù)據(jù)是技術(shù)和信息的載體和表現(xiàn)形式,更能精準(zhǔn)闡述數(shù)據(jù)作為當(dāng)今科技的核心實(shí)質(zhì)。

當(dāng)一個(gè)新的生產(chǎn)要素加入任何原有的生產(chǎn)方式時(shí),會(huì)使原有生產(chǎn)要素的權(quán)重發(fā)生改變,對(duì)生產(chǎn)要素質(zhì)量進(jìn)化產(chǎn)生推動(dòng)作用,形成新的爆發(fā)式增長(zhǎng),甚至是技術(shù)性和產(chǎn)業(yè)性革命,從而大幅度地促進(jìn)人類文明的進(jìn)步。數(shù)據(jù)這個(gè)生產(chǎn)要素一定會(huì)起到這個(gè)作用。

數(shù)據(jù)生產(chǎn)要素還具有與原有生產(chǎn)要素相互轉(zhuǎn)化的作用,具體分為以下兩種形式。

(1)原有生產(chǎn)要素轉(zhuǎn)化為數(shù)據(jù)生產(chǎn)要素的傾向。在數(shù)據(jù)按照生產(chǎn)要素進(jìn)行重新配置時(shí),原有生產(chǎn)要素的存在形式并沒(méi)有改變,但記錄生產(chǎn)要素的數(shù)據(jù)需要被另行抽取出來(lái),用于整體生產(chǎn)要素的配置和部署,再根據(jù)部署結(jié)果和需要進(jìn)一步定義下一周期數(shù)據(jù)的屬性和內(nèi)容。周而復(fù)始,整個(gè)過(guò)程會(huì)持續(xù)不斷地被優(yōu)化,無(wú)限接近最佳方案。數(shù)據(jù)在這個(gè)循環(huán)中,其數(shù)量、內(nèi)容、屬性、結(jié)構(gòu)、內(nèi)在價(jià)值和戰(zhàn)略意義將發(fā)生巨大的改變,完全改變?nèi)藗冊(cè)械臄?shù)據(jù)概念,使數(shù)據(jù)向泛數(shù)據(jù)化發(fā)展。

例如,困擾中國(guó)的霧霾,其主要成分是二次污染物,其顆粒大小為10微米以下,主要來(lái)源于能源和工業(yè)污染,其次才是汽車排放。煤炭是我國(guó)的主要能源,如果我們事先對(duì)煤炭的能量轉(zhuǎn)換過(guò)程及產(chǎn)生物進(jìn)行深入研究,對(duì)發(fā)達(dá)國(guó)家的歷史數(shù)據(jù)和歷史事件做好大數(shù)據(jù)的分析和預(yù)判,在研究一次污染的同時(shí),注意二次污染的形成規(guī)律和吸附特性,就不至于出現(xiàn)如此大范圍的嚴(yán)重威脅人身健康和經(jīng)濟(jì)發(fā)展的重度污染,也不至于浪費(fèi)大量的人力財(cái)力去整改結(jié)構(gòu)部署和生產(chǎn)流程。從目前的科技發(fā)展水平和研究成果來(lái)看,這些研究數(shù)據(jù)能夠而且不難被得到,監(jiān)控成本也不高,治理和替代手段也可以逐步摸索實(shí)施。也就是說(shuō),霧霾這個(gè)問(wèn)題是能夠被日益改善的。但問(wèn)題是,我們一直堅(jiān)持粗放的生產(chǎn)方式和發(fā)展模式,不關(guān)注新技術(shù)的發(fā)展和應(yīng)用,沒(méi)有樹(shù)立科學(xué)發(fā)展的理念,已經(jīng)習(xí)慣了即使無(wú)視科學(xué)精確的數(shù)據(jù)也一樣賺錢、一樣產(chǎn)生GDP的行為,我們正在為此付出沉重的代價(jià)。究其本質(zhì),我們認(rèn)為,要以大數(shù)據(jù)為手段對(duì)事件和數(shù)據(jù)進(jìn)行抽取和排除,生成盡可能嚴(yán)謹(jǐn)、科學(xué)、內(nèi)容翔實(shí)的全量數(shù)據(jù)。同時(shí),綜合考慮各種成因的利弊,統(tǒng)籌協(xié)調(diào)各個(gè)生產(chǎn)要素的權(quán)重,形成科學(xué)合理的綜合實(shí)施規(guī)劃,對(duì)我們國(guó)家的經(jīng)濟(jì)發(fā)展至關(guān)重要。

(2)當(dāng)數(shù)據(jù)生產(chǎn)要素作為催化劑和交互媒介時(shí),原有生產(chǎn)要素之間產(chǎn)生相互影響,各自整體權(quán)重相互轉(zhuǎn)化,產(chǎn)生向最優(yōu)化方案靠近的傾向。例如,在產(chǎn)業(yè)升級(jí)實(shí)踐中,突破口就是我們要把手頭的生產(chǎn)要素盡可能地?cái)?shù)據(jù)化,并做到準(zhǔn)確、全量、實(shí)時(shí)、互聯(lián)互通。如能實(shí)現(xiàn),我們就可以做到數(shù)據(jù)創(chuàng)新的技術(shù)升級(jí),從而帶來(lái)產(chǎn)業(yè)的革命。如把物流數(shù)據(jù)進(jìn)行全量整合,就能立即優(yōu)化能源、人力、資本三個(gè)生產(chǎn)要素的權(quán)重匹配;把學(xué)生的學(xué)習(xí)數(shù)據(jù)進(jìn)行智能化處理,就能立即改變校舍資源、能源、交通、教師人力資源、行業(yè)管理資源的配置結(jié)構(gòu),甚至帶來(lái)教育產(chǎn)業(yè)的革命,實(shí)現(xiàn)真正的智慧教育和素質(zhì)教育。

二、大數(shù)據(jù)相關(guān)概念與理論

(一)數(shù)據(jù)分片與路由

在大數(shù)據(jù)背景下,數(shù)據(jù)規(guī)模已經(jīng)由GB級(jí)別跨越到PB級(jí)別,單機(jī)明顯無(wú)法存儲(chǔ)與處理如此規(guī)模的數(shù)據(jù),只能依靠大規(guī)模集群來(lái)對(duì)這些數(shù)據(jù)進(jìn)行存儲(chǔ)和處理,所以系統(tǒng)的可擴(kuò)展性成為衡量系統(tǒng)優(yōu)劣的重要指標(biāo)。傳統(tǒng)并行數(shù)據(jù)庫(kù)系統(tǒng)為了支持更多的數(shù)據(jù),往往采用縱向擴(kuò)展(Scale Up)的方式,即不增加機(jī)器數(shù)量,而是通過(guò)改善單機(jī)硬件資源配置來(lái)解決問(wèn)題。而目前主流的大數(shù)據(jù)存儲(chǔ)與計(jì)算系統(tǒng)通常采用橫向擴(kuò)展(Scale Out)的方式來(lái)支持系統(tǒng)的可擴(kuò)展性,即通過(guò)增加機(jī)器數(shù)目來(lái)獲得水平擴(kuò)展能力。Stoica I, Morris R, Karger D, et al.Chord:A scalable peer-to-peer lookup service for internet applications.San Diego:Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications,2001.與此對(duì)應(yīng),對(duì)于待存儲(chǔ)處理的海量數(shù)據(jù),需要通過(guò)數(shù)據(jù)分片(Shard/Partition)來(lái)將數(shù)據(jù)進(jìn)行切分并分配到各個(gè)機(jī)器中去。數(shù)據(jù)分片后,如何能夠找到某條記錄的存儲(chǔ)位置就成為必然要解決的問(wèn)題,這一般被稱為數(shù)據(jù)路由(Routing)。

數(shù)據(jù)分片與數(shù)據(jù)復(fù)制是緊密聯(lián)系的兩個(gè)概念,對(duì)于海量數(shù)據(jù),通過(guò)數(shù)據(jù)分片可實(shí)現(xiàn)系統(tǒng)的水平擴(kuò)展,而通過(guò)數(shù)據(jù)復(fù)制可保證數(shù)據(jù)的高可用性。Garcia-Molina H, Ullman J D, Widom J.?dāng)?shù)據(jù)庫(kù)系統(tǒng)實(shí)現(xiàn).楊冬青,吳愈青,包小源,譯.2版.北京:機(jī)械工業(yè)出版社,2010.因?yàn)槟壳按笠?guī)模存儲(chǔ)與計(jì)算系統(tǒng)都是采用普通商用服務(wù)器來(lái)作為硬件資源池的,形式各異的故障經(jīng)常發(fā)生,為了保證數(shù)據(jù)在故障常發(fā)環(huán)境下仍然可用,需要將同一份數(shù)據(jù)復(fù)制存儲(chǔ)在多處。同時(shí),數(shù)據(jù)復(fù)制還可以增加讀操作的效率,客戶端可以從多個(gè)備份數(shù)據(jù)中選擇物理距離較近的進(jìn)行讀取,這樣既增加了讀操作的并發(fā)性又可以提高單次讀的讀取效率,圖1-2展示了數(shù)據(jù)分片與數(shù)據(jù)復(fù)制的關(guān)系。

圖1-2 數(shù)據(jù)分片與數(shù)據(jù)復(fù)制的關(guān)系

(二)數(shù)據(jù)復(fù)制及其基礎(chǔ)理論

在大數(shù)據(jù)存儲(chǔ)系統(tǒng)中,為了增加系統(tǒng)的可用性,往往會(huì)將同一數(shù)據(jù)存儲(chǔ)多份副本,工業(yè)界的常規(guī)做法是三備份。將數(shù)據(jù)復(fù)制成多份,除了增加存儲(chǔ)系統(tǒng)的可用性外,還可以增加讀操作的并發(fā)性,但是這樣也會(huì)帶來(lái)數(shù)據(jù)一致性問(wèn)題:因?yàn)橥粩?shù)據(jù)存在多個(gè)副本,在并發(fā)的眾多客戶端讀/寫(xiě)請(qǐng)求下,如何維護(hù)數(shù)據(jù)一致視圖非常重要,即使存儲(chǔ)系統(tǒng)中在外部使用者看起來(lái)有多副本數(shù)據(jù),其表現(xiàn)也應(yīng)和單份數(shù)據(jù)一樣。

1.CAP理論

2000年,美國(guó)加利福尼亞大學(xué)伯克利分校的Eric Brewer教授提出了著名的CAP理論,即一個(gè)分布式系統(tǒng)不可能同時(shí)滿足一致性(Consistency)、可用性(Availability)和分區(qū)容錯(cuò)性(Partition Tolerance)這三個(gè)需求,最多只能同時(shí)滿足兩個(gè)。2002年,麻省理工學(xué)院的Seth Gilbert和Nancy Lynch證明了CAP理論的正確性。根據(jù)CAP理論,一致性(C)、可用性(A)和分區(qū)容錯(cuò)性(P)三者不可兼得,必須有所取舍。因此,系統(tǒng)架構(gòu)師不需要把精力浪費(fèi)在如何設(shè)計(jì)同時(shí)滿足C、A、P三者的完美分布式系統(tǒng)上,而是應(yīng)該研究如何進(jìn)行取舍,滿足實(shí)際的業(yè)務(wù)需求。

2.CAP定義

C:一致性。一致性表示一個(gè)事務(wù)的操作是不可分割的,要么這個(gè)事務(wù)完成,要么這個(gè)事務(wù)不完成,不會(huì)出現(xiàn)這個(gè)事務(wù)完成了一半的情況。這種事務(wù)的原子性使得數(shù)據(jù)具有一致性。任何一個(gè)讀操作總是能讀取到之前完成的寫(xiě)操作結(jié)果,在分布式環(huán)境中,要求多點(diǎn)的數(shù)據(jù)是一致的。

通常情況下,數(shù)據(jù)庫(kù)中存在的“臟數(shù)據(jù)”就屬于數(shù)據(jù)缺乏一致性的表現(xiàn),而在分布式系統(tǒng)中常出現(xiàn)的不一致情況是讀/寫(xiě)數(shù)據(jù)時(shí)缺乏一致性。Chang F, Dean J, Ghemawat S, et al.BigTable:A distributed storage system for structured data.Symposium on Operating Systems Design and Implementation,2006,26(2):15.比如兩個(gè)節(jié)點(diǎn)做數(shù)據(jù)冗余,第一個(gè)節(jié)點(diǎn)有一個(gè)寫(xiě)操作,數(shù)據(jù)更新以后沒(méi)有有效地對(duì)第二個(gè)節(jié)點(diǎn)的數(shù)據(jù)更新,在讀取第二個(gè)節(jié)點(diǎn)的時(shí)候就會(huì)出現(xiàn)數(shù)據(jù)不一致的問(wèn)題。

A:可用性。每個(gè)操作總是能夠在確定的時(shí)間內(nèi)返回,也就是系統(tǒng)隨時(shí)都是可用的。可用性好主要是指系統(tǒng)能夠很好地為用戶服務(wù),不出現(xiàn)用戶操作失敗或訪問(wèn)超時(shí)等用戶體驗(yàn)不好的情況。在分布式系統(tǒng)中,通常情況下,可用性與分布式數(shù)據(jù)冗余、負(fù)載均衡等有著很大的關(guān)聯(lián)。

P:分區(qū)容錯(cuò)性。在出現(xiàn)網(wǎng)絡(luò)分區(qū)(比如斷網(wǎng))的情況下,分離的系統(tǒng)也能正常運(yùn)行,分區(qū)容錯(cuò)性與擴(kuò)展性緊密相關(guān)。在分布式應(yīng)用中,一些分布式的原因可能導(dǎo)致系統(tǒng)無(wú)法正常運(yùn)轉(zhuǎn)。好的分區(qū)容錯(cuò)性要求應(yīng)用雖然是一個(gè)分布式系統(tǒng),但看上去卻是一個(gè)可以正常運(yùn)轉(zhuǎn)的整體。

3.CAP原理分類

傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)因?yàn)橐U蠑?shù)據(jù)的強(qiáng)一致性和可用性,因而屬于CA模式,對(duì)于分區(qū)容錯(cuò)性的支持比較差。對(duì)于分布式數(shù)據(jù)庫(kù)系統(tǒng)而言,分區(qū)容錯(cuò)性是基本需求,因此只有CP和AP兩種選擇。CP模式保證分布在網(wǎng)絡(luò)上不同節(jié)點(diǎn)數(shù)據(jù)的一致性,但對(duì)可用性支持不足,這類系統(tǒng)主要有BigTable、HBase、MongoDB、Redis、MemcacheDB、BerkeleyDB等。AP模式主要以實(shí)現(xiàn)“最終一致性”(Eeventual Consistency)來(lái)確保可用性和分區(qū)容錯(cuò)性,但弱化了對(duì)數(shù)據(jù)的一致性要求,典型的系統(tǒng)包括Dynamo、Cassandra、Tokyo Cabinet、CouchDB、SimpleDB等。

HBase和Cassandra是NoSQL數(shù)據(jù)庫(kù)中的代表系統(tǒng)。HBase可以看作谷歌的BigTable系統(tǒng)的開(kāi)源實(shí)現(xiàn),它構(gòu)建于和谷歌File System類似的HDFS(Hadoop Distributed File System, Hadoop分布式文件系統(tǒng))之上;而Cassandra則更接近于亞馬遜的Dynamo數(shù)據(jù)庫(kù),和Dynamo的不同之處在于,Cassandra結(jié)合了谷歌BigTable的Column Family的數(shù)據(jù)模型。Calder B, Wang J, Ogus A, et al.Windows Azure Storage:A highly available cloud storage service with strong consistency.Cascais:Proceedings of the 23rd ACM Symposium on Operating Systems Principles,2011.可以簡(jiǎn)單地認(rèn)為,Cassandra是一個(gè)P2P的、具有高可靠性和豐富的數(shù)據(jù)模型的分布式文件系統(tǒng)。

4.ACID和BASE方法論

ACID指的是關(guān)系型數(shù)據(jù)庫(kù)為了支持事務(wù)(Transaction)的正確性和可靠性,必須滿足的4項(xiàng)特性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)和持久性(Durability)。這幾項(xiàng)特性的具體解釋如下。

1)原子性

一個(gè)事務(wù)中的所有操作,要么全部完成,要么都不完成,不會(huì)結(jié)束在中間的某個(gè)環(huán)節(jié)。事務(wù)在執(zhí)行過(guò)程中發(fā)生錯(cuò)誤,會(huì)被回滾(Rollback)到事務(wù)開(kāi)始前的狀態(tài),就像這個(gè)事務(wù)從來(lái)沒(méi)有執(zhí)行過(guò)一樣。比如轉(zhuǎn)賬,要么轉(zhuǎn)成功,要么沒(méi)轉(zhuǎn)出去,不會(huì)發(fā)生錢轉(zhuǎn)走了對(duì)方卻沒(méi)收到的情況。

2)一致性

在事務(wù)開(kāi)始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫(kù)的完整性沒(méi)有被破壞,不會(huì)發(fā)生數(shù)據(jù)不一致的情況。

3)隔離性

當(dāng)兩個(gè)或多個(gè)事務(wù)并發(fā)訪問(wèn)(此處訪問(wèn)指查詢和修改的操作)數(shù)據(jù)庫(kù)的同一數(shù)據(jù)時(shí)所表現(xiàn)出的相互關(guān)系。事務(wù)隔離可以分不同級(jí)別,來(lái)對(duì)數(shù)據(jù)的不同操作產(chǎn)生的相互影響進(jìn)行不同程度的隔離。

4)持久性

在事務(wù)操作完成以后,該事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的更改便持久并且完全地保存在數(shù)據(jù)庫(kù)之中。

傳統(tǒng)的SQL數(shù)據(jù)庫(kù)(關(guān)系型數(shù)據(jù)庫(kù))支持的是強(qiáng)一致性,也就是在更新完成后,任何后續(xù)訪問(wèn)都將返回更新過(guò)的值。為了實(shí)現(xiàn)ACID,往往需要頻繁對(duì)庫(kù)或表加鎖,這使得其在互聯(lián)網(wǎng)應(yīng)用中捉襟見(jiàn)肘。比如SNS(社會(huì)化網(wǎng)絡(luò)服務(wù))網(wǎng)站的每個(gè)互動(dòng)都需要一條或多條數(shù)據(jù)庫(kù)操作,對(duì)數(shù)據(jù)庫(kù)讀寫(xiě)的并發(fā)要求非常高,而傳統(tǒng)數(shù)據(jù)庫(kù)無(wú)法很好地滿足這種需求。

對(duì)于很多Web應(yīng)用,尤其是對(duì)SNS應(yīng)用來(lái)說(shuō),一致性要求可以降低,而對(duì)可用性的要求需要提高。為了支持高并發(fā)讀寫(xiě),有些NoSQL(非關(guān)系型數(shù)據(jù)庫(kù))產(chǎn)品采用了最終一致性的原則,從而產(chǎn)生了基于弱一致性的BASE方法論。Decandia G, Hastorun D, Jampani M, et al.Dynamo:Amazon's highly available Key-Calue store.Washington D C:Proceedings of 21 st ACM SIGOPS Symposium on Operating Systems Principles,2007.所謂弱一致性是指系統(tǒng)不保證后續(xù)訪問(wèn)將返回更新過(guò)的值,要想得到更新的值需要符合很多條件才行。從更新到保證任一觀察者看到更新值的時(shí)刻之間的這段時(shí)間被稱為不一致窗口。最終一致性是弱一致性的一種特殊形式,存儲(chǔ)系統(tǒng)保證如果對(duì)象沒(méi)有新的更新,最終所有訪問(wèn)都將返回最后更新的值。如果沒(méi)有發(fā)生故障,不一致窗口的最大值可以根據(jù)通信延遲、系統(tǒng)負(fù)載、復(fù)制方案涉及的副本數(shù)量等因素確定。

BASE,即Basically Available(基本可用)、Softstate(軟狀態(tài))、Eventual Consistency(最終一致性)幾個(gè)詞的組合。BASE的英文意義是堿,而ACID是酸,有點(diǎn)水火不容的意思。BASE模型與ACID模型相反,其完全不同于ACID模型,它犧牲高一致性,獲得可用性或可靠性。它僅需要保證系統(tǒng)基本可用,支持分區(qū)失敗,允許狀態(tài)在一定時(shí)間內(nèi)不同步,保證數(shù)據(jù)達(dá)到最終一致性即可。BASE思想主要強(qiáng)調(diào)基本的可用性,如果需要高可用性,也就是純粹的高性能,那么就要犧牲一致性或容錯(cuò)性。BASE構(gòu)成了大多數(shù)NoSQL數(shù)據(jù)庫(kù)的方法論基礎(chǔ)。

主站蜘蛛池模板: 夏邑县| 新津县| 丽江市| 贵定县| 枣庄市| 乌拉特前旗| 昌吉市| 招远市| 鲁山县| 嘉禾县| 大关县| 南岸区| 隆安县| 广灵县| 静安区| 乌拉特前旗| 民县| 遂平县| 郧西县| 贵港市| 夏邑县| 澎湖县| 丹阳市| 社旗县| 尚义县| 普定县| 长垣县| 永丰县| 大名县| 唐河县| 宿迁市| 洛扎县| 吉水县| 仁寿县| 东乌珠穆沁旗| 图片| 长沙市| 平阳县| 前郭尔| 兴山县| 名山县|