新聞中心
前沿
2012~2013年Google 相繼發(fā)表了Spanner和F1兩套系統(tǒng)的論文,讓業(yè)界第一次看到了關(guān)系模型和NoSQL的擴(kuò)展性在一個(gè)大規(guī)模生產(chǎn)系統(tǒng)上融合的可能性。Spanner 通過(guò)使用硬件設(shè)備(GPS時(shí)鐘+原子鐘)巧妙地解決時(shí)鐘同步的問(wèn)題,而在分布式系統(tǒng)里,時(shí)鐘正是最讓人頭痛的問(wèn)題。Spanner的強(qiáng)大之處在于即使兩個(gè)數(shù)據(jù)中心隔得非常遠(yuǎn),也能保證通過(guò)TrueTime API獲取的時(shí)間誤差在一個(gè)很小的范圍內(nèi)(10ms),并且不需要通訊。Spanner的底層仍然基于分布式文件系統(tǒng),不過(guò)論文里也說(shuō)是可以未來(lái)優(yōu)化的點(diǎn)。

采用H5響應(yīng)式網(wǎng)站+css3國(guó)際標(biāo)準(zhǔn)網(wǎng)站建設(shè),讓網(wǎng)站自動(dòng)適應(yīng)用戶使用終端設(shè)備,PC、平板、手機(jī)等,一個(gè)網(wǎng)址適應(yīng),一套內(nèi)容統(tǒng)一戰(zhàn)略,節(jié)約企業(yè)資源。創(chuàng)新互聯(lián)還提供網(wǎng)站后期營(yíng)銷如:軟文平臺(tái)、賣鏈接、廣告投放等。一般建站公司不為企業(yè)填充資料,更談不上內(nèi)容策劃,結(jié)果導(dǎo)致網(wǎng)站界面優(yōu)秀,內(nèi)容卻十分空泛或整體不協(xié)調(diào),內(nèi)容策劃、內(nèi)容填充請(qǐng)交給我們。
Google的內(nèi)部的數(shù)據(jù)庫(kù)存儲(chǔ)業(yè)務(wù),大多是3~5副本,重要的數(shù)據(jù)需要7副本,且這些副本遍布全球各大洲的數(shù)據(jù)中心,由于普遍使用了Paxos,延遲是可以縮短到一個(gè)可以接受的范圍(寫入延遲100ms以上),另外由Paxos帶來(lái)的Auto-Failover能力,更是讓整個(gè)集群即使數(shù)據(jù)中心癱瘓,業(yè)務(wù)層都是透明無(wú)感知的。F1是構(gòu)建在Spanner之上,對(duì)外提供了SQL接口,F(xiàn)1是一個(gè)分布式MPP SQL層,其本身并不存儲(chǔ)數(shù)據(jù),而是將客戶端的SQL翻譯成對(duì)KV的操作,調(diào)用Spanner來(lái)完成請(qǐng)求。嚴(yán)格來(lái)說(shuō),是Spanner和F1一起開創(chuàng)了NewSQL風(fēng)格。
簡(jiǎn)介
Cloud Spanner 是一項(xiàng)完全托管式用于關(guān)鍵任務(wù)的關(guān)系型數(shù)據(jù)庫(kù)服務(wù),可提供全球范圍的事務(wù)一致性、自動(dòng)同步復(fù)制功能以實(shí)現(xiàn)高可用性。它是第一個(gè)把數(shù)據(jù)分布在全球范圍內(nèi)的系統(tǒng),并且支持外部一致性的分布式事務(wù)。Spanner的擴(kuò)展性達(dá)到了令人咋舌的全球級(jí),可以擴(kuò)展到數(shù)百萬(wàn)的機(jī)器,數(shù)已百計(jì)的數(shù)據(jù)中心,上萬(wàn)億的行。除了夸張的擴(kuò)展性之外,他還能同時(shí)通過(guò)同步復(fù)制和多版本來(lái)滿足外部一致性,可用性也是很好的。沖破CAP的枷鎖,在三者之間完美平衡。它是BigTable的繼任者。谷歌稱Spanner不是一個(gè)純粹的關(guān)系型系統(tǒng),因?yàn)槊總€(gè)表必須有主鍵,以及對(duì)兩種 SQL 方言的支持:Google 標(biāo)準(zhǔn) SQL(ANSI 2011 及擴(kuò)展程序)和 PostgreSQL。
優(yōu)勢(shì)
- 享受關(guān)系語(yǔ)義和 SQL 的所有優(yōu)勢(shì),并且規(guī)模不受限制。
- 以任何規(guī)模起步,可隨需求增長(zhǎng)無(wú)限擴(kuò)容。
- 享受零計(jì)劃停機(jī)時(shí)間和在線架構(gòu)變更帶來(lái)的高可用性。
- 可跨區(qū)域和洲實(shí)現(xiàn)具有強(qiáng)一致性的高性能事務(wù)。
- 專注于創(chuàng)新,通過(guò)自動(dòng)分片等功能消除人工作業(yè)。
特性
- 可靈活擴(kuò)縮的關(guān)系型數(shù)據(jù)庫(kù):從架構(gòu)、SQL 查詢到 ACID 事務(wù),關(guān)系型數(shù)據(jù)庫(kù)應(yīng)有的一切功能都具備,久經(jīng)考驗(yàn),且隨時(shí)可以在全球范圍內(nèi)擴(kuò)容。
- 99.999% 的可用性:Cloud Spanner 可為多區(qū)域?qū)嵗峁I(yè)界領(lǐng)先的 99.999% 可用性;與 99.99% 的可用性相比,停機(jī)時(shí)間是其十分之一。它還可跨單區(qū)域和多區(qū)域配置提供透明的同步復(fù)制功能。
- 自動(dòng)分片:Cloud Spanner 可根據(jù)請(qǐng)求負(fù)載和數(shù)據(jù)大小自動(dòng)分片,從而提升性能。因此,您不必太擔(dān)心如何對(duì)數(shù)據(jù)庫(kù)進(jìn)行擴(kuò)容,從而可以專注于擴(kuò)展業(yè)務(wù)。
- 全代管式:無(wú)論數(shù)據(jù)庫(kù)規(guī)模如何,每個(gè)階段均可實(shí)現(xiàn)輕松部署。內(nèi)置自動(dòng)同步復(fù)制和維護(hù)功能。
- 事務(wù)強(qiáng)一致性:專為實(shí)現(xiàn)行業(yè)領(lǐng)先的外部一致性而構(gòu)建,同時(shí)不會(huì)影響可擴(kuò)縮性或可用性。
- 單區(qū)域和多區(qū)域配置:無(wú)論用戶位于哪里,由 Spanner 提供支持的應(yīng)用都可以在全球范圍內(nèi)讀取和寫入最新的強(qiáng)一致性數(shù)據(jù)。此外,運(yùn)行多區(qū)域?qū)嵗龝r(shí),您的數(shù)據(jù)庫(kù)可以防范單區(qū)域故障,并提供業(yè)界領(lǐng)先的 99.999% 可用性。
- 使用 BigQuery 執(zhí)行聯(lián)合查詢:在 BigQuery 中實(shí)時(shí)查詢 Spanner 數(shù)據(jù),而無(wú)需移動(dòng)或復(fù)制數(shù)據(jù),消除運(yùn)營(yíng)數(shù)據(jù)與分析之間的差異,打造統(tǒng)一的數(shù)據(jù)生命周期。
- 基于 Google Cloud 網(wǎng)絡(luò)構(gòu)建:Cloud Spanner 基于 Google 的專用網(wǎng)絡(luò)構(gòu)建,該網(wǎng)絡(luò)提供低延遲、安全性和可靠性,可為全球用戶提供服務(wù)。
場(chǎng)景
Spanner 是一種分布式的、全球可擴(kuò)展的 SQL 數(shù)據(jù)庫(kù)服務(wù),該服務(wù)將計(jì)算與存儲(chǔ)分離,使其可在存儲(chǔ)之外單獨(dú)擴(kuò)縮處理資源。 Spanner 這種分布式擴(kuò)縮特性使其成為不可預(yù)測(cè)的工作負(fù)載(如在線游戲)的理想解決方案。
事務(wù)
Spanner 系統(tǒng)中的分布式事務(wù)通過(guò)兩階段提交協(xié)議2PC實(shí)現(xiàn)。2PC是一類特殊的一致性協(xié)議,假設(shè)一個(gè)分布式事務(wù)涉及了多個(gè)數(shù)據(jù)節(jié)點(diǎn),2PC可以保證在這些節(jié)點(diǎn)上的操作要么全部提交,要么全部失敗,從而保證了整個(gè)分布式事務(wù)的原子性ACID里的A。協(xié)議中包含兩個(gè)角色:協(xié)調(diào)者coordinator和參與者participant/cohort。協(xié)調(diào)者是分布式事務(wù)的發(fā)起者,而參與者是參與了事務(wù)的數(shù)據(jù)節(jié)點(diǎn)。在協(xié)議最基本的形式中,系統(tǒng)中有一個(gè)協(xié)調(diào)者和多個(gè)參與者。Cloud Spanner 中的事務(wù)是一組讀寫操作,它們跨數(shù)據(jù)庫(kù)中的列、行和表,在單個(gè)邏輯時(shí)間點(diǎn)以原子方式執(zhí)行。
Cloud Spanner 支持以下事務(wù)模式:
- 鎖定讀寫:這種事務(wù)類型是唯一支持將數(shù)據(jù)寫入 Cloud Spanner 的事務(wù)類型。這些事務(wù)依賴于悲觀鎖定和(如有必要)兩階段提交。鎖定讀寫事務(wù)可能會(huì)中止,需要應(yīng)用重試。
- 只讀:這種事務(wù)類型可保證多次讀取之間的一致性,但禁止寫入。只讀事務(wù)可以配置為在過(guò)去的時(shí)間戳處讀取。只讀事務(wù)不需要提交,也不會(huì)鎖定。
- 分區(qū) DML:此事務(wù)類型將數(shù)據(jù)操縱語(yǔ)言 (DML) 語(yǔ)句作為分區(qū) DML 執(zhí)行。分區(qū) DML 專為批量更新和刪除(尤其是定期清理和回填)而設(shè)計(jì)。
模型
一個(gè) Cloud Spanner 數(shù)據(jù)庫(kù)可以包含一個(gè)或多個(gè)表。這些表與關(guān)系型數(shù)據(jù)庫(kù)表類似,它們也是由行、列和值構(gòu)成的,并且包含主鍵。Cloud Spanner 中的數(shù)據(jù)是強(qiáng)類型的:必須為每個(gè)數(shù)據(jù)庫(kù)定義一個(gè)架構(gòu),并且該架構(gòu)必須指定每個(gè)表中每一列的數(shù)據(jù)類型。允許的數(shù)據(jù)類型包括標(biāo)量和數(shù)組類型,也可以在表上定義一個(gè)或多個(gè)二級(jí)索引。
父子表
可以通過(guò)兩種方式在 Cloud Spanner 中定義父子關(guān)系,表交錯(cuò)和外鍵。Cloud Spanner 的表交錯(cuò)是許多父子關(guān)系的理想選擇,其中子表的主鍵包含父表的主鍵列。子行及其父行共用位置可以顯著提高性能,外鍵是一種較通用的父子解決方案,并解決了其他用例。外鍵不限于主鍵列,而表可以具有多個(gè)外鍵關(guān)系,二者在某些關(guān)系中可以作為父鍵,而在其他關(guān)系中可以作為子鍵。但是,外鍵關(guān)系不隱含表在存儲(chǔ)層中的共用位置關(guān)系。
主鍵
每個(gè)表都必須有一個(gè)主鍵,并且該主鍵可以由該表的零列或多列組成,如果將某個(gè)表聲明為另一個(gè)表的子表,則父表的主鍵列必須是子表主鍵的前綴,Cloud Spanner 會(huì)按主鍵值得排序順序存儲(chǔ)行,并在父行之間插入共享相同主鍵前綴的子行,這意味著,如果父表的主鍵由 N 列組成,則其每個(gè)子表的主鍵也必須由相同的 N 列組成,順序相同,并且以相同的列開始。這種沿著主鍵維度在父行之間插入子行的行為稱為交錯(cuò),而子表也稱為交錯(cuò)表。
分片
表之間定義最多七層的父子關(guān)系層次結(jié)構(gòu),意味著可以將七個(gè)邏輯上獨(dú)立的表的行存儲(chǔ)在一起。如果表中的數(shù)據(jù)量比較少,那么您的數(shù)據(jù)庫(kù)或許可以由單個(gè) Cloud Spanner 服務(wù)器處理。然而,當(dāng)相關(guān)表不斷增長(zhǎng),開始達(dá)到單個(gè)服務(wù)器的資源限制時(shí)。Cloud Spanner 會(huì)將數(shù)據(jù)劃分為稱作“分片”的區(qū)塊,各個(gè)分片可以彼此獨(dú)立移動(dòng)并被分配給不同物理位置的多個(gè)服務(wù)器。分片包含一系列連續(xù)的行。這一范圍的開始和結(jié)束鍵稱為“分片邊界”。Cloud Spanner 會(huì)根據(jù)大小和/或負(fù)載自動(dòng)添加和移除分片邊界,這樣做會(huì)改變數(shù)據(jù)庫(kù)中的分片數(shù)量。
復(fù)制
Cloud Spanner 復(fù)制的優(yōu)勢(shì)包括以下幾點(diǎn):
- 數(shù)據(jù)可用性:對(duì)于希望讀取數(shù)據(jù)的客戶端而言,擁有更多數(shù)據(jù)副本可以使數(shù)據(jù)更具可用性。另外,即使某些副本不可用,Cloud Spanner 仍然可以支持寫入操作,因?yàn)樵谔峤粚懭霑r(shí)僅需大部分投票副本即可。
- 地理局部性:能夠使用 Cloud Spanner 將數(shù)據(jù)存放到不同的區(qū)域和大洲,這意味著數(shù)據(jù)可以在地理上更接近需要它的用戶和服務(wù),因此訪問(wèn)速度也更快。
- 單一數(shù)據(jù)庫(kù)體驗(yàn):得益于同步復(fù)制和全局高度一致性,無(wú)論規(guī)模如何,Cloud Spanner 均可提供一致的表現(xiàn)以及單一數(shù)據(jù)庫(kù)體驗(yàn)。
- 更輕松的應(yīng)用開發(fā):Cloud Spanner 的 ACID 事務(wù)具有全局高度一致性,這意味著開發(fā)者無(wú)需在應(yīng)用中添加額外的邏輯來(lái)處理最終一致性,因此應(yīng)用開發(fā)和后續(xù)維護(hù)變得更加輕松快捷。
總結(jié)
Spanner是第一個(gè)可以在全球范圍內(nèi)提供這種保證的系統(tǒng),符合 ACID 標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù),可自動(dòng)進(jìn)行副本、分片和事務(wù)處理,因此可以快速擴(kuò)容以滿足任何使用模式的要求,Cloud Spanner 基于 Google 的專用網(wǎng)絡(luò)構(gòu)建,在數(shù)十億用戶都在使用的 Google 服務(wù)中已久經(jīng)考驗(yàn)。它可實(shí)現(xiàn)高達(dá) 99.999% 的可用性,在計(jì)劃內(nèi)維護(hù)和架構(gòu)變更期間可以做到零停機(jī)。IT 管理員和數(shù)據(jù)庫(kù)管理員往往忙于執(zhí)行數(shù)據(jù)庫(kù)運(yùn)維工作。現(xiàn)在,借助 Cloud Spanner,只需點(diǎn)擊幾下鼠標(biāo)即可創(chuàng)建或擴(kuò)縮可在全球范圍內(nèi)復(fù)制的數(shù)據(jù)庫(kù),并降低數(shù)據(jù)庫(kù)維護(hù)費(fèi)用。
新聞標(biāo)題:CloudSpanner完全托管式關(guān)系型數(shù)據(jù)庫(kù)服務(wù)
分享網(wǎng)址:http://www.5511xx.com/article/dpideej.html


咨詢
建站咨詢
