1. 程式人生 > >雲資料庫PolarDB(一)

雲資料庫PolarDB(一)

一、出現的背景及PolarDB簡介

        阿里雲,中國第一家擁有完整雲端計算能力的企業。

 

        2015年,在計算界的奧運會Sort Benchmark中,阿里雲端計算100TB資料排序只用了不到7分鐘,把ApacheSpark之前創造的23分鐘世界紀錄一下子縮短了一多半。這說明,中國人研發的雲端計算系統不僅成功了, 而且不比世界上任何現存的雲端計算系統差。

        成功登頂的“雲梯2”,後來更名為ODPS,“加冕”成為了阿里巴巴各項業務通用的大資料計算平臺。ODPS驗證成功之後,阿里立刻啟動“登月計劃”,把所有資料和計算都遷移到飛天為基礎的系統上,全盤替代IOE和雲梯1。2013年5月,阿里巴巴最後一臺小型機下線。7月,淘寶最後一個Oracle資料庫下線。阿里巴巴這臺戰車,用了五年時間,在超高速行駛中,沒有踩一腳剎車,成功更換了發動機。因為突破了技術瓶頸,在5K之後,ODPS只用了幾個月就衝上了單機群10K,進而實現了無限制擴充套件。到2018年,已經更名為MaxCompute的ODPS達到了數萬臺的規模。

 

                                         

        在晶片領域,我們面對美國壟斷只得眼睜睜地靜默。

        在作業系統領域,我們面對美國的背影只能艱難追趕。

        但是在雲端計算這片土地上,從王堅帶著一群理想主義者橫空出世,到胡曉明把商業戰場拉至和亞馬遜的AWS同一級別。中國人用了十年時間造出的全球第三、亞洲第一的阿里雲,不說和美國戰位和棋,至少在世界的版圖上奪下了堪為廣袤的一片疆土。

       2018年,當年為阿里雲對接淘寶立下汗馬功勞的小邪正式加入阿里雲,掌管“飛天八部”,阿里雲所有的現役主力和技術,都歸至他麾下。此時小邪nian中的彈藥充足:2017年釋出的神龍雲伺服器,是對下一代雲端計算主機的探索。同年釋出的PolarDB,劍指商業資料庫Oracle和它的繼任者MySQL,也稱得上是阿里雲未來之星。2018年初,飛天的分散式儲存系統“盤古”升級到了2.0,成為了阿里巴巴統一儲存平臺。2018年秋天的雲棲大會上,唐洪、小邪、何導等阿里雲大咖係數登場,釋出了飛天2.0。敢稱2.0,是因為他們把野心放到了“萬互聯”的下一個20年。如此嘗試和未來對話的技術還有很多。

       其中,PolarDB是阿里雲自研的下一代關係型雲資料庫,100%相容MySQL,儲存容量最高可達100TB,效能最高提升至MySQL的6倍,單庫最多可擴充套件到16個節點,使用與企業多樣化的資料庫應用場景。PolarDB採用儲存和計算分離的架構,所有計算節點共享一份資料,提供分鐘級的配置升降級、秒級的故障恢復、全域性資料一致性和免費的資料備份容災服務。PolarDB既融合了商業資料庫穩定可靠、高效能、可擴充套件的特性,又具有開源雲資料庫簡單開放、自我迭代的優勢,而成本只有商用資料庫的1/10。

                                             image.png

二、PolarDB優勢分析

        1.簡單易用:100%相容MySQL。在已有的使用MySQL資料庫的應用程式程式碼、驅動無需更改,即可運行於PolarDB。

        2.極致效能,降低成本:(1)針對資料庫核心進行深度優化,同時採用物理複製、RDMA高速網路和分散式共享儲存,讀效能最高能達到MySQL的6倍;(2)叢集包含一個主節點和最多15個只讀節點,滿足高併發場景對效能的要去,尤其適用於讀多寫少的場景。

        3.超大容量,支援上百TB級別資料:採用分散式塊儲存設計和檔案系統,使得儲存容量不限制於單節點的規格,能夠輕鬆擴充套件,應對上百TB級別的資料規模。

        4.快速彈性,應對不確定的業務增長:(1)Serverless儲存,儲存空間無需手動配置,根據資料量自動伸縮,使用者只需為實際使用的資料庫容量付費;(2)配置降級,3分鐘生效,採用容器虛擬化技術和共享的分散式塊儲存技術,使得資料庫伺服器的CPU、記憶體能夠快速擴容;(3)增減節點,3分鐘生效,通過動態增減節點提升效能或節省成本。通過使用叢集連線地址,可遮蔽底層的變化,應用對於增減節點無感知。

        5.下一代資料庫引擎核心:(1)基於共享儲存的一寫多讀叢集,資料只需要一次修改,所有節點立即生效。例如,大表加索引可能需要30分鐘,那麼在MySQL中,主備庫共需要1個小時,且備庫會延遲至少30分鐘。而在POLARDB中,主庫加索引後,備庫立即生效,總耗時30分鐘,延遲不超過1分鐘;(2)採用物理日誌代替邏輯日誌,通過共享儲存和物理日誌,使得主備庫延遲控制在毫秒級以內,且可根據實際情況修改為主備庫強同步(會犧牲一定的寫入效能);(3)無鎖備份,利用底層分散式儲存的快照技術,只需分鐘級別即可完成對上1TB的資料庫進行備份,且整個備份過程不需要對MySQL加鎖,效率更高,影響更小;(4)並行查詢引擎(SQL加速),通過平行計算提升複雜大SQL的查詢效能,尤其適用於大表關聯查詢、對無索引列的點查詢、多欄位分組查詢等場景,根據實際情況效能可提升8~30倍。

        6.高可用和高可靠保障:(1)共享分散式儲存的設計,徹底解決了MySQL Master-Slave非同步複製所帶來的備庫資料非強一致的缺陷,使得整個資料庫叢集在應對任何單點故障時,可以保證資料0丟失;(2)採用Active-Active的高可用叢集架構,可讀寫的主節點和只讀節點之間進行Failover切換,與傳統的Active-Standby相比,用同樣成本帶來了更好的系統訪問效能。

      7.資料安全可靠:採用白名單、VPC網路、SSL加密、資料多副本儲存等全方位的手段,對資料庫資料訪問、儲存、管理等各個環節提供安全保障。

三、PolarDB架構特點

        1.一寫多讀

        2.計算與儲存分離

        3.讀寫分離

        4.高速鏈路互聯

        5.共享分散式儲存

        6.資料多副本、Parallel-Raft協議

                                       雲資料庫PolarDB基於Cloud Native設計理念,其架構示意圖及特點如下:

                                

四、PolarDB的應用場景

 

        1.高併發讀寫OLTP

                              15396553452078_zh-CN.png

 

        2.高可用、彈性擴充套件

                             

        3.遷移上雲