摘要:李飛飛花名飛刀,阿里巴巴集團副總裁,高級研究員,達摩院首席數據庫科學家,阿里云智能事業群數據庫產品事業部負責人,杰出科學家。是阿里云的云原生數據庫,目前已有非常深厚的技術積累。
阿里妹導讀:云計算大潮來襲,傳統數據庫市場正面臨重新洗牌的情境,包括云數據庫在內的一批新生力量崛起,動搖了傳統數據庫的壟斷地位,而由云廠商主導的云原生數據庫則將這種“改變”推向了高潮。
云時代的數據庫將面臨怎樣的變革?云原生數據庫有哪些獨特優勢?在 DTCC 2019大會上,阿里巴巴副總裁 李飛飛博士就《下一代云原生數據庫技術與趨勢》進行了精彩分享。
李飛飛(花名:飛刀),阿里巴巴集團副總裁,高級研究員,達摩院首席數據庫科學家,阿里云智能事業群數據庫產品事業部負責人,ACM 杰出科學家。
大勢所趨:云數據庫市場份額增速迅猛如下圖所示的是 Gartner 關于全球數據庫市場份額的報告,該報告指出目前全球數據庫市場份額大約為400億美金,其中,中國數據庫市場份額占比為3.7%,大約為14億美金。
具體到數據庫市場分布,傳統五大數據庫廠商 Oracle、Microsoft、IBM、SAP、Teradata 占比達到了80%,云數據庫的份額占比接近10%,并且云數據庫市場份額占比每年也在快速增長,因此, Oracle、MongoDB 等也在大力布局其在云數據庫市場的競爭態勢。
根據 DB-Engines 數據庫市場分析顯示,數據庫系統正朝著多樣化、多元化的方向發展,從傳統的 TP 關系型數據庫發展到今天的多源異構的數據庫形態。目前,處于主流位置的還是大家耳熟能詳的數據庫系統,比如商業數據庫 Oracle、SQL Server以及開源的 MySQL、PostgreSQL 等。而一些比較新的數據庫系統,比如MongoDB、Redis 則開辟了一個新的賽道。數據庫 License 的傳統銷售方式在逐漸走下坡路,而開源以及云上數據庫 License 的流行程度卻在不斷提升。
數據庫:云上應用關鍵的一環正如 AWS 創始人 Jeff Bezos 所說:“The real battle will be in databases”。因為云最早是從 IaaS 做起來的,從虛擬機、存儲、網絡,到現在如火如荼的語音識別、計算機視覺以及機器人等智能化應用,都是基于 IaaS 的,而數據庫就是連接 IaaS 與智能化應用 SaaS 最為關鍵的一環。從數據產生、存儲到消費的各個環節,數據庫都至關重要。
數據庫主要包括四大板塊,即 OLTP、OLAP、NoSQL 以及數據庫服務和管理類工具,也是云數據庫廠商發力的四個方向。對于 OLTP 而言,技術發展已經歷經了40年,而如今大家還在做的一件事情就是“加10元和減10元”,也就是所謂的事務處理。當數據量變得越來越大和讀寫沖突的原因,對數據進行在線實時分析的需求衍生出了 OLAP。由于需要 Scale out,而數據強一致性不能夠得到保證,就有了NoSQL 。而最近又出現了一個新名詞—— NewSQL,這是因為 NoSQL 也有所不足,故將傳統 OLTP 的 ACID 保證與 NoSQL 的 Scale out 能力進行了整合,變成了NewSQL。
數據庫系統架構演進:All depends on what is shared縱觀數據庫40年來的發展歷史,從最早的關系型數據庫時期,衍生出了 SQL、OLTP 等技術;到數據量急劇增長,需要避免讀寫沖突,通過 ETL、數據倉庫以及 Data Cube 等技術實現了 OLAP;再到今天,面對異構多源的數據結構,從圖到時序、時空到向量等,也就誕生了 NoSQL、NewSQL 等數據庫,同時也出現了一些新的技術,比如 Multi-Model 和 HTAP 等。
數據庫系統最為主流的架構是 Shared Memory:共享處理器內核,共享內存并且具有共享的本地磁盤,這樣的單機架構屬于非常主流的架構,傳統的數據庫廠商基本采用的也是這樣的架構。
而隨著互聯網企業的大規模發展,如 Google、Amazon 以及阿里巴巴,大家發現原來的單機架構有很多限制,其可擴展性以及吞吐量無法滿足業務發展需求,于是就衍生出了 Shared Disk/Storage 架構,即共享存儲架構。也就是說數據庫底層可能是分布式存儲,通過利用 RDMA 這樣的快速網絡讓上層的數據庫內核看起來像是在使用本地的磁盤,但實際上是分布式存儲。上面可以有多個獨立計算節點,一般是一寫多讀,但是也可以做多寫多讀,這就是共享存儲架構,其中比較典型的代表就是阿里云的 POLARDB 數據庫。
另外一種架構是 Shared Nothing 。共享存儲雖然有諸多優點,解決了很多問題,但是 RDMA 網絡也存在很多的限制,比如其跨越 Switch 甚至是跨 AZ 和 Region 的時候性能都會有所損失。分布式的共享存儲達到一定的節點數量之后,性能會出現一定的損耗,所以不能保證訪問遠程數據和訪問本地數據的性能完全相同,所以共享存儲的架構當擴展到十幾個節點之后就達到了 scale out 擴展的上限了。此時,如果應用需要繼續擴展怎么辦呢?那就需要實現分布式架構了,比較典型的就是 Google Spanner,其利用原子鐘技術能夠實現跨數據中心的數據一致性和事務一致性。而在阿里云,基于 POLARDB 實現的分布式版本 POLARDB-X 采用的也是 Shared Nothing 架構。
這里需要注意的一點就是:Shared Nothing 和 Shared Storage 可以結合。可以在上層做 Shared Nothing,而對于下層的 Shard 分片采用 Shared Storage 架構。這樣混合架構的好處在于能夠減輕分出太多 Shard 的痛點問題,減少分布式事務distributed commit的 概率,因為 distributed commit 的代價非常昂貴。
總結三種架構設計,如果在 Shared Storage 架構上做到多寫多讀而不是一寫多讀,實際上也就實現了 SharedEverything 。將 Shared nothing 和 Sharedstorage 架構進行結合的 hybrid 架構應該是后續數據庫系統發展方向的一個重要突破點。
云原生數據庫核心四要素上面從架構方面分析了云時代的主流數據庫架構。從技術上來講,除了架構上的不同,云原生時代還有一些不同點。
多模(Multi-model)
其一是多模(Multi-model),多模主要有兩種,即北向和南向。南向表示存儲結構是多種多樣的,數據結構可以是結構化的也可以是非結構化的,可以是圖、向量、文檔等,但對于用戶只提供一個 SQL 的查詢接口或者 SQL-Like 的接口,這部分業界比較典型的就是各種各樣的數據湖服務。而北向的多模就是存儲只有一種,一般是通過 KV 存儲數據形態來支持結構化、半結構化以及非結構化數據,但希望能夠提供不同的查詢接口,比如 SPARQL、SQL、GQL 等。業界典型的代表是微軟 Azure 的CosmosDB。
數據庫智能化+自動化管控平臺
數據庫的自治化也是非常重要的發展方向,從數據庫的內核以及管控平臺兩個角度都有很多技術點可以做。在數據庫自治化部分,阿里巴巴認為,需要做到自感知、自決策、自恢復以及自優化。自優化比較簡單,就是在內核中利用機器學習的方法來進行優化。而自感知、自決策、自恢復更多的是針對管控平臺的,比如如何保證實例的巡檢,當出現問題后如何能夠自動快速修復或者自動切換等。
新硬件: 軟硬件一體化設計
云原生數據庫的第三大核心點是軟硬件一體化設計。數據庫首先是一個系統,而系統就需要能夠安全高效地使用有限的硬件資源。所以數據庫系統的設計和發展一定是和硬件性能和發展緊密相關的,我們不能夠面對硬件的變化而堅持舊有數據庫設計不改變,比如 NVM 出來之后就可能對傳統的數據庫設計有一些沖擊。而新硬件所帶來的變化也是數據庫系統設計需要考慮的。
RDMA、NVM 以及 GPU/FPGA 等新硬件或者架構的出現,對于數據庫的設計都會提供新的思路。
高可用
高可用是云原生最基本的要求之一,上云的用戶勢必不希望業務出現中斷。高可用最簡單的解決方案就是冗余,可以做 Table 級別的冗余,也可以做 Partition 級別的冗余。無論是使用哪一種,基本上都是三副本,甚至更多的時候需要做四副本或者五副本,比如金融級別的高可用可能需要做兩地三中心或者兩地四中心。
對于高可用的多副本而言,如何保證副本之間的數據一致性?在數據庫里面有一個經典的CAP理論,其理論結果是在 Consistency、Availability 和 Partition Tolerant 三者之間只能選擇兩個。現在大家的一般選擇都是 C+P,同時對于 A 而言,通過三副本技術和分布式一致性協議,使得 A 達到6個9或者7個9,這樣基本上就做到了100%的 CAP。
云原生數據庫 POLARDB:極致彈性+兼容性 為海量數據和海量并發而生前面介紹了數據庫市場背景和云原生數據庫的基本要素,接下來我將結合阿里云 POLARDB 以及 AnalyticDB 兩款數據庫系統,分享以上技術的具體落地情況。POLARDB 是阿里云的云原生數據庫,目前已有非常深厚的技術積累。我們在VLDB 2018,SIGMOD 2019等國際學術會議上發表了相關論文,主要介紹存儲引擎等方面的技術創新。
POLARDB 采用共享存儲架構,一寫多讀。共享存儲架構有多個優勢,首先是計算和存儲分離,計算節點和存儲節點可以分開實現彈性縮擴容;其次,POLARDB 突破了 MySQL、PG 等數據庫對于單節點規格和可擴展性的限定,能夠實現 100TB 存儲容量以及每個節點100萬 QPS 的性能;此外,POLARDB 能夠提供極致的彈性能力,備份恢復能力也有很大提升。在存儲層,每個數據塊都采用三副本高可用技術,同時對于 Raft 協議進行了修改,通過實現并行式的 Raft 協議保證了三副本數據塊之間的數據一致性,提供了金融級高可用。POLARDB 還能做到100%兼容 MySQL 以及 PG 等數據庫生態,可以幫助用戶實現無感知的應用遷移。
由于底層是共享的分布式存儲,PolarDB 屬于 Active-Active 的架構,主節點負責寫入數據,從節點負責讀取數據,因此,對于進入數據庫的事務而言,主備節點都處于Active 狀態,其好處在于通過一份物理存儲避免了在主從之間不停地做數據同步。
具體而言,POLARDB 有一個 PolarProxy,也就是前面的網關代理,下面有 POLARDB 的內核以及 PolarFS,最下面對接的是 PolarStore,利用 RDMA 網絡管理底層的分布式共享存儲。PolarProxy 會對客戶需求做分發,將寫請求分配到主節點,而對于讀請求而言,則會根據負載均衡以及讀節點的狀態實現對于讀請求的分配,這樣就能夠盡可能地實現資源的最大化利用以及性能的提升。
POLARDB 共享存儲采用分布式+三副本。其中 Primary 節點負責寫,其他節點負責讀,其下層是 PolarStore,每部分都會有三副本的備份,通過分布式一致性協議保證數據一致性。這樣設計的優勢在于能夠實現存儲與計算分離,同時能夠做到無鎖備份,所以備份可做到秒級。
在一寫多讀的情況下,POLARDB 能夠實現快速伸縮。舉例而言,從2核 vCPU 升級到32核或者從兩個節點擴展到4個節點,都能夠在5分鐘之內生效。存儲和計算分離能夠帶來的另一大好處是降低成本,因為存儲和計算節點可以獨立地進行彈性伸縮,充分體現成本優勢。
下圖展示了 POLARDB 如何利用物理日志實現持續恢復。左側是傳統數據庫的架構,而在 POLARDB 里面,由于采用了共享存儲,因此可基本保留類似傳統數據庫利用物理日志進行恢復的過程,通過共享存儲實現持續恢復,做事務的 Snapshot 恢復。
對比一下,如果 MySQL 做主備架構,首先需要在主庫里面有一個邏輯日志和物理日志,在備庫里面要重放主庫的邏輯日志,然后再按照主庫的方式做邏輯日志和物理日志。而在 POLARDB 里面,因為是共享存儲,可直接通過一份日志實現數據恢復,備庫能夠直接將所需要的數據恢復出來,而不需要去重放主庫的邏輯日志。
POLARDB一寫多讀集群的另一大優勢是動態 DDL 的支持。在 MySQL 架構下,如要對數據的 Schema 進行修改,需要通過 Binlog 去 Replay 到備庫,因此備庫會存在Blocking 的階段,需要一定時間 Replay 動態的 DDL。而在 POLARDB共享存儲架構下,所有 Schema 信息以及 metadata 均以表的形式直接存儲在存儲引擎里面,只要主庫改完了,那么備庫的元信息也實時同步更新,因此不會存在 Blocking 的過程。
POLARDB 的 Proxy 最主要的作用就是做讀寫分離、負載均衡、高可用切換以及安全防護等。POLARDB 是一寫多讀架構,當請求進來之后,需要進行讀寫的判斷,將寫請求分發到寫節點,將讀請求分發到讀節點上去,并且對于讀請求做一定的負載均衡。這樣就能保證會話的一致性,并且徹底解決了讀不到最新數據的問題。
無損彈性是 POLARDB 監控的模塊之一。分布式存儲需要知道分配多少磁盤量 /Chunk,POLARDB 會監控未使用的 Chunk 量。比如當可用量低于30%的時候,就會在后臺自動地對其進行擴容,這使得應用基本不受影響,可連續寫數據。
對于云數據庫 POLARDB 而言,以上技術帶來的最大優勢是極致的彈性。這里我們以一個具體的客戶案例進行說明。如下圖所示,紅線部分指離線資源的消耗情況,這些成本是客戶無論如何都需要付出的,而其上面的部分則是計算資源的需求。
比如客戶在3、4月有新品上市,5月還有促銷活動,這兩個時期計算需求會非常大。如按照傳統架構方式,可能需要在新品上市之前就將容量彈到更大的規模,并且保持這樣的水位,到了后面的促銷階段又需要彈到更高的規格,成本非常高昂。但如果能夠做到極致彈性,比如 POLARDB 的存儲與計算分離,實現快速彈性擴容,那么用戶就只需在藍色方塊出現之前將容量彈上去,之后再彈下來即可,這樣就能大幅降低成本。
除了云原生數據庫 POLARDB ,阿里云數據庫團隊在其他方向還有眾多探索。
分布式版本 POLARDB-X : 高并發+跨域高可用 支持水平拓展如果企業需要極致的 Scale out 能力,像阿里巴巴以及傳統行業中的銀行、電力等對高并發、海量數據支撐要求極高的用戶,共享存儲架構只能支持彈至十幾個節點,肯定是不夠的。因此,阿里云數據庫團隊也采用 Shared Nothing 做水平拓展,將Shared Nothing 與 Shared Storage 相結合,形成 POLARDB-X 。POLARDB-X 支持金融級跨可用區數據強一致, 對支持海量數據下的高并發事務處理有著極好的性能表現。目前,POLARDB-X 在阿里內部已上線應用,利用存儲計算分離、硬件加速、分布式事務處理和分布式查詢優化等技術,成功支持了在雙11這樣的場景下阿里巴巴所有業務核心鏈路數據庫洪峰的挑戰,我們后續將推出商業化版本,敬請期待。
OLAP 數據庫標桿—— AnalyticDB:海量數據 實時高并發在線分析此外在 OLAP 分析型數據庫方向,阿里云數據庫團隊自主研發了數據庫產品——AnalyticDB,在阿里云的公有云和專有云上均有售賣。AnalyticDB 擁有幾大核心架構特點:
行列混存引擎,能夠支持高吞吐寫入和高并發查詢;
支持海量數據處理,對于海量數據能實現秒級分析,完美支持多表、中文以及復雜分析;
利用向量化技術,支持結構化數據和非結構化數據的融合處理。
近日,AnalyticDB 打榜 TPC-DS,在性價比方面達到了全球第一,通過了 TPC 官方的嚴苛認證。同時,介紹 AnalyticDB 系統的論文即將在 VLDB 2019 會議上展現。AnalyticDB 的常用應用場景是從 OLTP 應用我們的數據傳輸與同步工具 DTS 至AnalyticDB 進行實時的數據分析。
自治數據庫平臺:智能調參上線 iBTune (individualized Buffer Tuning)
云原生數據庫的特點之一是自治化,阿里云內部有個平臺叫 SDDP(Self-Driving Database Platform——自治化數據庫平臺),SDDP 會對各個數據庫實例進行實時的性能數據采集,并使用機器學習方法建模進行實時調配。
iBTune 的基本思想是,每個數據庫實例都包含一個 Buffer Size,傳統數據庫里面的Buffer Size 是提前分配好的,不能變化。而在大型企業里,Buffer 是一個資源池,需要消耗內存,因此希望做到彈性自動調配每個實例里的 BufferSize。比如淘寶商品庫的數據庫實例晚上不需要那么大的 Buffer,那么就可以自動將其 Buffer Size 彈下來,到早上再自動彈上去,同時要求不影響其 RT。為了滿足上述需求并進行自動Buffer 優化,阿里云數據庫團隊構建了 iBTune 系統,目前監控近 7000個數據庫實例,通過長期運營,可平均節省20TB 內存。介紹 iBTune 項目的核心技術論文也發表在了今年的 VLDB 2019大會上。
安全上云是關鍵 多重加密護航數據安全云上的數據安全是非常重要的內容,阿里云數據庫團隊在數據安全方面也做了大量的工作。首先,數據落盤加密,在數據存儲的時候就進行加密。此外,阿里云數據庫也支持 BYOK,用戶可以將自己的密鑰拿到云上來實現落盤加密以及傳輸級別的加密。未來,阿里云數據庫還將在內存處理時實現全程加密,對日志實現可信驗證等。
阿里云企業級數據庫云服務:全方位運維 全鏈路布局阿里云數據庫按照工具產品、引擎產品以及運營管控的全程數據庫產品分類提供服務。下圖展現的是阿里云——云數據庫常用鏈路,通過 DTS 工具將線下數據庫遷移到線上,基于數據需求/分類,分發至關系型數據庫、圖數據庫以及 AnalyticDB 等。
阿里云數據庫:客戶第一,一切價值來自于服務用戶目前 POLARDB 數據庫的增勢迅猛,已經服務于通用行業、互聯網金融、游戲、教育、新零售、多媒體等多個領域的龍頭企業。
而 AnalyticDB 在分析型數據庫市場也有非常出眾的表現,支持實時分析以及可視化應用。
基于阿里云數據庫技術,阿里巴巴支持了城市大腦等一系列關鍵項目及云上云下的大量客戶。截止目前為止,阿里云數據庫已經累計支持了近40萬數據庫實例成功上云。
云原生是數據庫的新戰場,它為發展了40多年的數據庫行業帶來了許多令人激動的新挑戰和新機遇,阿里巴巴希望與國內外數據庫行業的各位技術同仁一起,將數據庫技術推向更高的境界。
閱讀原文
本文來自云棲社區合作伙伴“阿里技術”,如需轉載請聯系原作者。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/18035.html
摘要:技術曲線上升路途中云計算技術的變量在技術戰略理論中技術曲線是其中的中心環節。決定勝負的關鍵智能技術加持,通過實踐形成代差站在用戶的角度,穩定和靈活其對云技術的兩大核心需求。前兩天,阿里云召開了一個慶生性質的峰會,用來紀念它的十年。這次峰會是去年11月阿里云事業群升級為阿里云智能事業群,阿里集團CTO張建鋒(花名:行癲)兼任阿里云智能總裁后的首次公開亮相張建鋒在峰會上對阿里云智能的戰略進行了全...
摘要:云計算第一階段結束,三強各有各的技術優勢云計算市場經過多年的發展,其市場格局已基本定型。對照著這一理論,云計算技術的發展與之高度相似,現在云計算技術已經來到技術曲線的上升階段。前兩天,阿里云召開了一個慶生性質的峰會,用來紀念它的十年。這次峰會是去年11月阿里云事業群升級為阿里云智能事業群,阿里集團CTO張建鋒(花名:行癲)兼任阿里云智能總裁后的首次公開亮相張建鋒在峰會上對阿里云智能的戰略進行...
摘要:谷歌云在其官方博客上公布,確認來自卡內基梅隆大學的計算機科學院院長教授將在年底接任李飛飛的谷歌云負責人職位,而李飛飛也將正式回歸斯坦福大學當教授。兩年前,李飛飛從斯坦福休假加入谷歌,成為谷歌云的負責人與首席科學家。今年7月的谷歌Next大會上,李飛飛宣布了兩年前推進的Contact Center落地、AutoML推出自然語言和翻譯服務、TPU 3.0進入谷歌云,這意味著谷歌云擁抱AI Fir...
摘要:對于這個即將成立的中心谷歌寄予厚望,希望與中國本土研發力量合作共同致力于人工智能領域的研究。年月,人工智能入選年度中國媒體十大流行語。原文鏈接谷歌中國中心成立,人工智能勢不可擋鏈接顯示不了,放上原文二維碼,侵刪 昨日,谷歌在上海舉辦了一年一度的Google中國開發者大會。在本屆大會上,谷歌云首席科學家李飛飛宣布了一個重磅消息,即在北京將成立谷歌AI中國中心。對于這個即將成立的AI中心谷...
摘要:據阿里云官方消息報道,兩次理論計算機最高獎哥德爾獎得主匈牙利裔美國計算機科學家馬里奧塞格德入職阿里巴巴達摩院位于西雅圖的阿里云量子實驗室。據阿里云官方消息報道,兩次理論計算機最高獎哥德爾獎得主、匈牙利裔美國計算機科學家馬里奧·塞格德(Mario Szegedy)入職阿里巴巴達摩院位于西雅圖的阿里云量子實驗室(AQL)。馬里奧·塞格德出生于盛產科學家的國度匈牙利,研究領域包括量子計算和計算復雜...
閱讀 2317·2021-11-15 11:38
閱讀 2447·2021-11-15 11:37
閱讀 2552·2021-08-24 10:00
閱讀 2912·2019-08-30 15:56
閱讀 1267·2019-08-30 15:53
閱讀 3706·2019-08-29 18:43
閱讀 2935·2019-08-29 17:01
閱讀 3259·2019-08-29 16:25