文/施肖肖 賴紅,武漢東湖學院
在科技快速發展的今天,數據變得越來越重要,對于數據的處理和發掘已經到了極為重要的地位,分布式數據管理就是數據管理的核心技術之一,在分布式技術發展下,解決數據一致性的方法和技術也得到了不斷的發展,此文就以作者在研發的分布式數據庫中但實際案例來解析分布式數據庫數據原理和一致性。
首先我們要了解分布式存儲的數據存儲與關系型數據庫的數據存儲,關系型數據存儲是建立在相關模型之上的數據庫,借用集合線性相關性數學的概念還處理數據,相當于現實中的實體與實體之間的各種聯系。對于“科德十二定律”,當前雖然有很多人持反對立場,但是他還是數據存儲的傳統標準。關系模型的組成分為關系數據,關系操作以及關系完整性的約束。簡而言之,關系型數據庫就是相互鏈接可以形成二維表的數據庫。
與此不同的是,分布式數據庫是在高速網絡的基礎上使用一個邏輯方式將很多分散的數據單元連接在一起。它的基本思想改變原來的集中存儲,改為分散式存儲,從而獲得了更大的存儲容量,并且提高了并發性,隨著信息量的爆炸式增長,信息的處理變得更加重要,從而滿足需求的分布式數據庫技術也有了飛躍,相對與關系型,分布式顯得更加便捷。
在傳統的關系型中,對于數據安全性和一致性的保障,主要依靠硬件的提供,而且數據都是存儲一份的,在其中,數據庫是默認數據一致性沒有問題的,這就存在很大的安全隱患。通過前面的原理認知,我們就會很容易理解為什么存在數據的一致性問題,在大數據瘋狂發展的今天,他讓系統的性能得到了指數式增長,而且,大數據技術的運行不需要很好的硬件條件,他可以通過大量的X86服務器和磁盤搭建一個集群,從而獲得更好的計算能力和更大的存儲空間,因為他的分布式,可以將任務分解,交由多個處理機和存儲器共同完成,從而極大的提高了系統效率和能力,但是由于硬件要求低,也出現了數據安全的問題,其次由于多個處理機到處數據一致性也存在相關風險,對于此類問題,通常通常采用數據的同步或者異步來將數據保存在多臺處理機上面來保證數據的安全和一致性。
在計算機的世界中,從硬件和軟件兩個層面來講,緩存都是廣泛被用于處理響應慢的問題。就算在構建服務器的時候也不例外,緩存是提升計算性能的關鍵技術之一。此外,在分布式存儲中,緩存的存在也是有很大的性能提升,分布式緩存能處理任務量很大的動態數據,因此在WEB2.0中應用非常的廣泛。 在以前的本地緩存中,主要著重與CPU、內存和緩存的數據傳輸關系。但是當前的分布緩存中,拓展到了業務、數據庫和緩存的數據傳輸,傳輸的速度變得更加迅捷。 此外,在傳統的業務中,初期的訪問量很低,從而對響應時間的要求比較低,只需要DB就可以很好的解決需求問題。這種架構比較容易搭建,在初期時是個很好的解決方案,但是隨著業務的拓展,對于響應的時間要求較高,便會出現很多問題,主要有一下幾點:1、性能有限,很難滿足數十倍百倍需求的上漲,尤其在互聯網發展迅速的今天,這種情況很容易出現。2、成本較高,訪問量的提升,主要依靠提高機器數量的滿足需求,代價太高。3、難以從DS層面優化。
其次,從處理速度來說,內存的訪問性能明顯優于磁盤。把數據放入內存中,可以提供更快的讀取效率。再考慮到互聯網和二八原則的契合,通過引入緩存機制,將高頻數據放入緩存器,可以很好的提升系統性能,緩存的引入具體的優點有一下幾點:1、提升數據讀取速度。2、系統承載能力提升。3、硬件成本降低。4、提高了系統的實效性,根據需求可以更高頻次的刷新。 綜上,我們引入分布式緩存技術。
Redis是一種應用廣泛的KV內存數據庫,和Memacached比較類似,支持數據的持久化的日志型,并且有多種語言的API。他的出現很好的解決了寫的問題、可靠性需求、開發成本需求、維護性難等一系列問題。
在實際中的應用,redis應用與新浪微博中,其中絕大部分都是持久化的應用,很少一部分為緩存,在持久化的應用中,要考慮持久化和寫性能的匹配和redis使用內存和硬盤寫的速率的比例計算。Redis的工作原理,就是寫log到一定的階段再和內存交互,后添加,對性能的影響很小。面對在redis分布緩存中的數據一致性問題,由于長期運行后,多個結點可能存在不一致性,有兩個解決方案,第一、對于數據量多的數據,進行定期全不檢索。第二、對于增加的數據,會抽查是否有一致性問題。由于同步問題不一致的為延時問題,對于延時問題,我們可以從應用層增加策略以解決這些問題。
計算機界的科技迅速發展,幾年前計算機興起的時候,很多企業就在關注這個具有很高的可靠性、可用性以及高存儲效率的分布式存儲,到后來的大數據時代逐步體現了分布式存儲的優勢,存儲的發展必然向著節能方面,然而分布式存儲完全符合這一概念。在未來的發展發面,由李克強提出的“互聯網+”計劃,足以體現計算和數據的發展前景。并且,“互聯網+”也對存儲提出了一定的要求,首先就是存儲要滿足無所不在的計算機的要求,其次要滿足無所不在的數據,最后要對應國產化的需求。在軟件上采用自助研發的存儲系統,實現完全自主研發。
由此,分布式存儲技術的發展,也正好契合了中國國內的發展需求,國產存儲必將迎來一個新的春天!
【參考文獻】
[1]魏青松.《大規模分布式存儲技術研究》[J].2013.
[2]舒敏.《分布式數據存儲機制與優化方法研究》[J].2013.