天天看點

阿裡雲資料庫掌門人褚霸:騎行與資料人生

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

<video src="http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50020084115.mp4"></video>

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

阿裡雲資料庫掌門人褚霸:騎行與資料人生

以下是精彩内容整理:

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

<b>初識資料庫</b>

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

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

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

<b>從雲下到雲上</b>

傳統的資料庫廠商會上門談生意,大多都是大客戶或者是重要業務,業務的重要程度随着我國技術發展,對資料庫的依賴程度會越來越高。相比雲下

,雲上資料庫的門檻較低,成本低就會有大規模的使用,在性能和分布性等方面會有各種需求,這樣一輪輪的疊代,資料庫的大需求是一個趨勢,節奏會越來越快。

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

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

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

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

<b>polardb </b>

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

polardb 就具備高性能特點,并且成本效益很高,起初我們的設計目标并沒有多大野心,隻是希望當五年或十年後再回首時,我們會感覺到當初的設計是多麼先進。

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

polardb 緊跟時代的步伐,嘗試了他人不想嘗試的,polardb

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