新聞中心
當(dāng)前位置:網(wǎng)站首頁 > 新聞中心
云數(shù)據(jù)庫選型必讀:如何梳理需求?
你需要集群數(shù)據(jù)庫嗎?
集群數(shù)據(jù)庫與單節(jié)點數(shù)據(jù)庫相比有多個優(yōu)點,但費用和復(fù)雜性更高。除此之外,集群數(shù)據(jù)庫還有更高的可用性、更高的吞吐量,在一些情況下還有更低的延遲。
對于每個節(jié)點都有整個數(shù)據(jù)庫副本的集群而言,你可以獲得更高的冗余性和更高的可用性。視策略而定,讀取操作可能只需要一個節(jié)點,否則集群中的一組節(jié)點可能需要就返回值達(dá)成一致。
使用有多個節(jié)點的集群可以讓數(shù)據(jù)庫使用更多的CPU,從而增加吞吐量,并提高事務(wù)率。使用允許最近節(jié)點返回值的讀取策略,讀取延遲通常會降低。另一方面,必須等待所有節(jié)點提交的寫入或事務(wù)策略,有時會增加寫入延遲。
使用共識組有助于縮短延遲。如果你有一個三節(jié)點集群,一個節(jié)點負(fù)載過大,另兩個節(jié)點就可以批準(zhǔn)共識事務(wù),并在第三個節(jié)點可用時更新該節(jié)點。
分片是一種通過劃分?jǐn)?shù)據(jù)庫來處理更多數(shù)據(jù)的方法。手動分片可能費時又麻煩,許多數(shù)據(jù)庫都有自動分片功能。
你需要分布式數(shù)據(jù)庫嗎?
集群不是擴(kuò)展數(shù)據(jù)庫的終極方法,不過是第一步。下一步是分布式數(shù)據(jù)庫,這通常意味著在多個區(qū)域有集群。一些數(shù)據(jù)庫允許分布式只讀副本和主讀寫實例或集群。其他數(shù)據(jù)庫允許分布式讀寫實例或集群,并具有同步機(jī)制。
分布式數(shù)據(jù)庫常??梢詾檫h(yuǎn)程用戶提供更低的延遲和更高的吞吐量。東京的用戶訪問巴塞羅那的服務(wù)器可能會有260 毫秒的延遲,但如果日本有數(shù)據(jù)庫副本,他們的平均讀取延遲可能只有10毫秒。這對寫入和事務(wù)的影響取決于數(shù)據(jù)庫的一致性要求以及遠(yuǎn)程集群是如何配置的。
早期的分布式數(shù)據(jù)庫是具有最終一致性的NoSQL數(shù)據(jù)庫。最終一致性意味著不能保證在遠(yuǎn)程位置寫入后讀取返回最新信息,但會隨著時間而更新。最終一致性放寬了寫入和事務(wù)完成的要求,因而降低了延遲。
最近幾種分布式數(shù)據(jù)庫在數(shù)據(jù)結(jié)構(gòu)、共識組和時間同步的幫助下實現(xiàn)了強(qiáng)一致性。這方面的例子包括Google Cloud Spanner和CockroachDB。
你的數(shù)據(jù)庫預(yù)算是多少?
雖然大多數(shù)數(shù)據(jù)庫都有免費的社區(qū)或開發(fā)/測試版本,但除了在線社區(qū)論壇外,它們可能缺乏支持。社區(qū)版和開源版也可能缺乏商業(yè)版本提供的一些性能優(yōu)化。如果貴公司依賴數(shù)據(jù)庫,應(yīng)在許可證和支持上投入成本。
如果你在云端運(yùn)行數(shù)據(jù)庫,至少需要為云資源付費。如果是商業(yè)數(shù)據(jù)庫,你還需要數(shù)據(jù)庫許可證,這可能是來自供應(yīng)商的長期許可證,也可能是通過云提供商購買的按需付費許可證。
附:CAP 定理
CAP定理(Brewer 等人于1998 年提出)聲稱,任何網(wǎng)絡(luò)共享數(shù)據(jù)系統(tǒng)最多具有以下三個理想屬性中的兩個:
C:一致性,相當(dāng)于擁有一個最新的數(shù)據(jù)副本;
A:該數(shù)據(jù)的可用性,用于更新;
P:對網(wǎng)絡(luò)分區(qū)的容忍度。
數(shù)據(jù)庫的理想屬性取決于它所服務(wù)的應(yīng)用的需求。如果該應(yīng)用顯示目錄,那么數(shù)據(jù)庫的讀取速度和延遲很重要,文檔數(shù)據(jù)庫可能很理想,但關(guān)系數(shù)據(jù)庫和寬列數(shù)據(jù)庫也適用。如果該應(yīng)用處理金融交易,那么數(shù)據(jù)庫的ACID屬性(原子性、一致性、隔離性和持久性)就很重要,關(guān)系數(shù)據(jù)庫可能很理想。
這則三分之二的公式被證明過于簡單化。在現(xiàn)代分布式數(shù)據(jù)庫架構(gòu)中,節(jié)點故障和網(wǎng)絡(luò)分區(qū)由共享組使用Paxos或Raft算法來緩解。實際上,當(dāng)一個節(jié)點退出集群后,只要它有仲裁機(jī)制,集群就會繼續(xù)工作。此外,分區(qū)在私有網(wǎng)絡(luò)內(nèi)部很少見,比如在主要云提供商處的私有網(wǎng)絡(luò):它們在數(shù)據(jù)中心之間使用冗余光纖,并不通過公共互聯(lián)網(wǎng)傳輸內(nèi)部流量。
這意味著,雖然從嚴(yán)格上來說沒有數(shù)據(jù)庫可以繞過CAP定理,但實際上好的云數(shù)據(jù)庫擁有超過五個九(99.999%)的可用性,這些數(shù)據(jù)庫可以繞過CAP定理,同時擁有一致性和可用性。
作者:Martin Heller現(xiàn)為《InfoWorld》網(wǎng)站的特約編輯兼評論員,此前擔(dān)任Web和Windows編程顧問。從1986年至2010年,Heller一直從事數(shù)據(jù)庫、軟件和網(wǎng)站的開發(fā)工作。近期,他出任Alpha Software的技術(shù)和教育副總裁,還是Tubifi的主席兼首席執(zhí)行官。
作者: Martin Heller? 來源:計算機(jī)世界
|