阿里雲資料庫掌門人褚霸:騎行與數據人生

本文主要從霸爺的騎行經歷開始聊起,進而聯繫到資料庫經歷,從初識資料庫談及到雲下轉入雲上,最後重點與大家分享了POLARDB 資料庫。

視頻地址:

cloud.video.taobao.com/

今天的電梯訪談我們請來了褚霸和我們聊聊他的騎行與資料庫人生。

以下是精彩內容整理:

騎行有很多樂趣,騎行給我無拘無束的感覺,騎行是一種激情,讓我興奮,享受著超越感。而資料庫與騎行對我來說是相通的,堅持去做的事情一定是你有興趣的事情,沒有激情是很難做到極致,資料庫與騎行一樣,沒有上限,投入精力越多,探索深度越深。

初識資料庫

「我的夢想是做一個最牛X的資料庫!」,儘管這是一句戲言,但也表露出我對資料庫的熱愛和野心。誤打誤撞或是機緣巧合,我從高性能伺服器轉做資料庫,從最基礎的MySQL代碼開始學起,隨著經驗的積累,不斷成長為如今的雲資料庫掌門人。

從仰望Orcale到現在和它做同樣的事情,阿里雲資料庫實現了質的飛躍,阿里團隊付出了很多。我們抓住了幾個重要的機遇,比如歷史的變革,2010年SSD出現,給我們很好的機會,在此場景下,原來系統不太適合,淘寶抓住了機會,淘寶的核心資料庫都在這些硬體上跑,所以我們有很多場景,很多錘鍊,雙十一規模超大,每年都是七倍往上翻。

現在資料庫團隊的骨幹都是和當年的我差不多資歷的人,對於他們的執著我特別感動,因為許多事情看起來的確很枯燥,很佩服他們的工匠精神。我從他們身上學到了很多,看著他們的成長。

從雲下到雲上

傳統的資料庫廠商會上門談生意,大多都是大客戶或者是重要業務,業務的重要程度隨著我國技術發展,對資料庫的依賴程度會越來越高。相比雲下 ,雲上資料庫的門檻較低,成本低就會有大規模的使用,在性能和分布性等方面會有各種需求,這樣一輪輪的迭代,資料庫的大需求是一個趨勢,節奏會越來越快。

資料庫從雲下到雲上的轉換,也是中國國產資料庫彎道超車的機會。借著國家的上升大勢,各行各業都需要資料庫,它會帶動很多東西前進,需求會轉化為對技術的變革倒推,再好的技術如果沒有應用場景,都是無用的。

中國是世界上最大的資料庫應用場景,目前,我們團隊在做一款自研資料庫。MySQL之所以火爆,是因為有大量的人使用,大量的人改進,大量的人擴展它的使用範圍,致使它的能力得到很大提升,它是一個非常通用的資料庫。在這種情況下,在此基礎上想要有五倍、十倍的性能提升是非常難的。

我們摒棄了老方法,擁抱軟硬體的大變革,比如RDMA的出現,也或者兩台伺服器間的RT 是7us,這與過去70us相差10倍;以前數據結構底層用的B-Tree是根據旋轉磁碟設計的,今天如果仍然延用B-Tree,就不會有特別多的優勢,我們需要更新的數據結構,更新的利用介質。通過這些技術的提升讓很多不可能成為可能。

資料庫本身設計時會考慮到很多東西,比如軟體、網路技術包,多年來資料庫的結構並沒有什麼變化,它的棧很深,一級級傳遞下來,我們不僅僅要跟上硬體的優勢,還有趕上軟體的步伐。傳統的網路接收方式耗費很多CPU資源等,如今我們讓其消耗更短更少。

POLARDB

在硬體紅利的基礎上,我們開發了全新的軟體架構,讓其很好的適配和駕馭硬體,當硬體和軟體各方面都達到了極致,實現數量級的疊加時,我們是有可能創造出總體性能達到更好數量級的新東西。

POLARDB 就具備高性能特點,並且性價比很高,起初我們的設計目標並沒有多大野心,只是希望當五年或十年後再回首時,我們會感覺到當初的設計是多麼先進。

想要達到性價比高就必須有紅利基礎,性能高意味著成本低,另外我們從架構上去解決問題,比如過去MySQL是主備結構,完全被動接收,為了數據安全用戶需要付兩倍的錢,而且需要提供擴展和讀寫能力。而POLARDB 採用共享存儲的模式,這得益於雲計算的彈性能力,我們解決了存儲擴展問題,一個實例可以擴展到P級別,這就解決了存儲問題;還有延遲抖動問題,共享存儲可以做到20~30us三副本落地,不需要再拷貝數據,天然解決很多問題;還有計算能力的擴展,我們的計算和存儲是分離的,數據都是同步的,性能成本很低,無需再複製;資料庫具有寫能力,我們發散思維,對引擎做了大量改進,消減引擎使TPS或QPS能力提升5倍甚至10倍,進行物理複製,整個又是一個數量級的提升,因為很多公司可能一輩子都用不到容量的上限。

POLARDB 緊跟時代的步伐,嘗試了他人不想嘗試的,POLARDB 理念簡單又直接。資料庫的穩定性一直是重中之重,POLARDB 也十分注重穩定性問題。從第一天被設計開始,POLARDB 就被證明怎樣才能如你預期工作,將認可的狀態可視化,從根本上減少問題的發生,即使發生情況,我們也會很快知道,我們從代碼、引擎、管控到支撐等擁有全套的解決方案,我們希望POLARDB 的穩定性也會有很大的提升。

原文鏈接:阿里雲資料庫掌門人褚霸:騎行與數據人生-博客-雲棲社區-阿里雲

更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎

推薦閱讀:

資料庫如何做到多個任意欄位的檢索?(nosql方向)
為什麼大學的資料庫課程用的是微軟的SQL server而不是mysql?
如何從零開始參與大型開源項目
[跟吉姆一起讀LevelDB]3.Memory Barrier與leveldb::DB::Open操作(2)
有沒有公司在用access建資料庫?

TAG:MySQL | 数据库 | 性能 |