數(shù)據(jù)庫底層技術:正經歷50年未有之大變局
數(shù)千年前,數(shù)字被用來計算羊群的數(shù)量,幾何圖形被用來測量田地并繪制道路,這是數(shù)字首次出現(xiàn)在人類歷史長河里。
如今,過去零散的自然數(shù)字已經逐漸演變成信息時代龐大并且無處不在的數(shù)據(jù)庫,無論是電商、游戲、社交等互聯(lián)網(wǎng)行業(yè),還是通訊、交通、金融等傳統(tǒng)行業(yè),現(xiàn)代社會的商業(yè)和經濟活動都離不開數(shù)據(jù)庫。
數(shù)據(jù)庫并非新興行業(yè),其發(fā)端于上世紀六十年代,但在很長一段時間里,行業(yè)幾乎一直在傳統(tǒng)數(shù)據(jù)庫制定的游戲規(guī)則下發(fā)展。時至今日,這道固若金湯的防線才逐漸被撕裂。
6月8日,螞蟻集團宣布,將自研數(shù)據(jù)庫產品OceanBase獨立進行公司化運作,成立由螞蟻100%控股的數(shù)據(jù)庫公司北京奧星貝斯科技,并由螞蟻集團CEO胡曉明親自擔任董事長。此舉標志著螞蟻旗下這一明星科技產品走上大規(guī)模商業(yè)化軌道,也推動分布式數(shù)據(jù)庫這一中國頂級自研技術進入全新發(fā)展階段。
不到1個月前的5月21日,數(shù)據(jù)庫領域最權威的榜單TPC-C公布了最新結果,支付寶OceanBase僅用7個月的時間打破了自己在去年創(chuàng)造的世界紀錄,將榜單的性能分數(shù)從千萬級提升到了億級,達到7.07億tpmC。
傳統(tǒng)數(shù)據(jù)庫看似固若金湯的地位,正在面臨一定沖擊,支付寶正在撬開技術變革的大門。
五十年興衰史,傳統(tǒng)數(shù)據(jù)庫逐步走下神壇
上世紀五六十年代,IT產業(yè)與現(xiàn)在硬件發(fā)展的步伐落后于軟件、算法截然不同,彼時的科技創(chuàng)新大多是硬件驅動軟件。
當時,計算機由晶體管時代進入集成電路時代,計算能力、內存容量都得到了大幅提升,計算機也從軍事領域,逐步走進了中小企業(yè),最基本的用途就是做數(shù)據(jù)管理。
但遺憾的是,傳統(tǒng)的文件系統(tǒng)在面對復雜的數(shù)據(jù)時捉襟見肘,這主要因為數(shù)據(jù)共享性差并且無法描述數(shù)據(jù)之間的關系,為了解決這一難題,數(shù)據(jù)庫才以“新物種”的方式被提出。
1970年,關系數(shù)據(jù)庫之父、IBM研究員E.F.Codd發(fā)表了一篇名為“A Relational Modelof Data for Large Shared Data Banks”的論文,首次提出了關系模型的概念,并成為現(xiàn)代數(shù)據(jù)庫產品的主流,今天,我們看到的主流數(shù)據(jù)庫幾乎都是圍繞這一模型研究。
1978年,當時還在為美國中央情報局做一個數(shù)據(jù)項目的拉里·埃里森(Larry Ellison),率先嗅到了關系型數(shù)據(jù)庫的商機。幾個月后,Oracle 1.0 誕生了,盡管這一產品沒有祭出太多的功能,只能完成簡單關系查詢,但就是這樣一個不成熟的產品,讓數(shù)據(jù)庫行業(yè)正式邁入了大航海時代。
當年,Oracle 1.0就拿下了美國中央情報局和海軍情報所兩個大單,在政府機構的背書下,埃里森的公司聲名鵲起,頓時大量國際商業(yè)巨頭紛紛尋求與埃里森合作。
此后,硅谷科技公司紛紛推出各自的數(shù)據(jù)庫產品。關系數(shù)據(jù)庫的提出者,IBM在1983年推出首個商業(yè)數(shù)據(jù)庫;六年后,軟件巨頭微軟姍姍來遲,祭出了首個商業(yè)數(shù)據(jù)庫SQL server。
天下熙熙皆為利來。對于企業(yè)級場景而言,商業(yè)數(shù)據(jù)庫是和操作系統(tǒng)一樣重要的軟件,由于技術門檻高,其價格極為昂貴。按照當時的價格,傳統(tǒng)數(shù)據(jù)庫價格在數(shù)十萬到百萬不等。而在商業(yè)數(shù)據(jù)庫市場里,僅Oracle、SQL Server、IBM DB2就擁有超過80%的市場份額,傳統(tǒng)數(shù)據(jù)庫因此賺得盆滿缽滿。
2018年12月,Oracle公司在《2018世界品牌500強》中就排名31,而埃里森本人也以661億美元身家名列世界富豪榜第七。
但數(shù)據(jù)庫行業(yè)并沒有就此停下前進的腳步。昂貴的價格,以及互聯(lián)網(wǎng)時代對數(shù)據(jù)庫提出了完全不同的需求,加速了數(shù)據(jù)庫行業(yè)的變革,越來越少的企業(yè)愿意為傳統(tǒng)數(shù)據(jù)庫買單。
因此,數(shù)據(jù)庫領域涌現(xiàn)了一股新生力量,例如開源數(shù)據(jù)庫、分布式數(shù)據(jù)庫等,這些新興技術的誕生正在一步步擠壓傳統(tǒng)數(shù)據(jù)庫的市場。根據(jù)第三方機構顯示,到2021年,傳統(tǒng)數(shù)據(jù)庫市場會下降20%至30%。
分布式數(shù)據(jù)庫成不可逆趨勢
阿里巴巴是最早遇到互聯(lián)網(wǎng)規(guī)模挑戰(zhàn)的企業(yè)之一。
2009年,阿里巴巴的Oracle RAC集群節(jié)點數(shù)達到了創(chuàng)記錄的20個,雖然這已經是當時亞洲最大的Oracle數(shù)據(jù)集群,但依舊無法解決當時的流量壓力。
因為在傳統(tǒng)架構上獲得千萬級并發(fā)處理能力、PB級數(shù)據(jù)庫管理能力、一天之內系統(tǒng)擴容百倍并在業(yè)務高峰期后立即釋放,獲得這樣的性能需要巨大的成本,因為傳統(tǒng)數(shù)據(jù)庫集群難以橫向擴展,最多只有數(shù)十個節(jié)點,且難以做到性能線性增長。
為了解決與日俱增的流量壓力,阿里巴巴決定用分布式架構替代傳統(tǒng)“IOE”架構,而分布式數(shù)據(jù)庫OceanBase替代的就是傳統(tǒng)數(shù)據(jù)庫。
從當時的數(shù)據(jù)庫行業(yè)來看,團隊面臨兩個選擇—;—;
一是基于開源數(shù)據(jù)庫研發(fā),好處是可以研發(fā)周期短,但開源數(shù)據(jù)庫的性能瓶頸依舊存在;
而另一條路徑就是走完全自研道路,難度高、周期長,但更具想象力,其可以在性能上實現(xiàn)更大的突破。
作為OceanBase的創(chuàng)始人,陽振坤的態(tài)度非常堅決,他認為單機數(shù)據(jù)庫已經走到了盡頭,下一步一定是走向分布式,而且當時團隊成員大多是研究分布式出身,做的就是自己最擅長的工作。團隊應該去研發(fā)一款新型的分布式數(shù)據(jù)庫。陽振坤堅信:“這是千載難逢的機會,我們一定要做,而且一定能做成?!?/p>
2010年,項目正式啟動,團隊寫下了OceanBase第一行代碼。
高科技的自研之路從來都是從滿荊棘,而且整個分布式數(shù)據(jù)庫領域還沒有太多成功案例,團隊就像在黑暗中前行,沒有任何模仿對象。很少有人敢相信團隊可以完成全面替代Oracle數(shù)據(jù)庫這一使命。
但出乎所有人意料的是,僅僅一年的時間,這支團隊就跨越了死亡之谷。
2011年,OceanBase 迎來了第一個客戶—;—;淘寶收藏夾。當時的淘寶收藏夾正處于業(yè)務高速發(fā)展期,數(shù)據(jù)庫的訪問量飛快增長,而OceanBase首戰(zhàn)就嶄露頭角,將淘寶收藏加的服務器數(shù)量降低了一個數(shù)量級。
此后幾年,OceanBase一路狂奔—;—;
2014年雙11,OceanBase支撐了十分之一的交易流量;
2015 年,支付寶交易庫和支付庫都換成了OceanBase;
2016 年,支付寶賬務系統(tǒng)上線,這也標記著 OceanBase 真正在金融系統(tǒng)最核心最關鍵的領域站住了腳;
2017 年,OceanBase 開始走出支付寶、走出螞蟻金服,在商業(yè)銀行推廣使用,至今已在數(shù)十家商業(yè)銀行上線運行。
從今天來看,分布式數(shù)據(jù)庫跨越的是上一代數(shù)據(jù)庫的技術鴻溝,其既能通過擴展集群實現(xiàn)擴展能力的大幅提升,又可以充分保證業(yè)務場景的一致性,實現(xiàn)整體性能的數(shù)量級提升。
此次TPC-C測試中,OceanBase也向世界展示了分布式數(shù)據(jù)庫的力量。1500多個數(shù)據(jù)庫節(jié)點,5000多萬個倉庫以及對應數(shù)量的客戶端,并進行8個多小時的持續(xù)壓測,OceanBase完成數(shù)據(jù)庫領域的新成就。
OceanBase的成功也為各行業(yè)企業(yè)帶來了更多可選項。過去幾年,企業(yè)數(shù)據(jù)庫選擇的天平逐漸在向分布式數(shù)據(jù)庫傾斜。由于分布式數(shù)據(jù)庫兼顧了性能及價格方面的優(yōu)勢,在過去十幾年,銀行的IT架構已從大型機時代的集中架構,轉移到UNIX小型機,到現(xiàn)在全面擁抱分布式存儲與數(shù)據(jù)庫技術。
作為國內第一個擁有自主產權的分布式數(shù)據(jù)庫OceanBase,已服務建設銀行、南京銀行、西安銀行、人保健康險、蘇州銀行、廣東農信、網(wǎng)商銀行等多家商業(yè)銀行和保險機構。
據(jù)了解,獨立之后的新公司將在今年內發(fā)布重大版本升級,在原有功能基礎上增加分析型業(yè)務處理能力,OceanBase將升級為一款支持HTAP混合負載的企業(yè)級分布式數(shù)據(jù)庫。OceanBase同時還宣布,將在未來三年內服務全球超過萬家企業(yè)客戶
分布式數(shù)據(jù)庫才是未來
為什么OceanBase會選擇分布式數(shù)據(jù)庫方向,為什么機構越來越多地選擇使用分布式數(shù)據(jù)庫?分布式數(shù)據(jù)庫相對于傳統(tǒng)數(shù)據(jù)庫,到底有哪些優(yōu)勢?
我們知道,傳統(tǒng)的關系型數(shù)據(jù)庫,由二維表及其之間的聯(lián)系組成,其實就是一個數(shù)據(jù)組織。關系型數(shù)據(jù)庫的優(yōu)勢在于:
關系模型相對網(wǎng)狀、層次等其他模型來說更容易理解;
使用方便,使用SQL,可用于復雜的查詢;
統(tǒng)一使用關系模型來構建,減低了數(shù)據(jù)冗余和數(shù)據(jù)不一致的概率,維護起來更容易。
但其不足也很明顯,當用戶集中查詢時,查詢請求,傳統(tǒng)關系型數(shù)據(jù)庫壓力大;而且很難進行橫向擴展,想通過添加硬件和服務節(jié)點來擴展性能,并不容易,數(shù)據(jù)庫系統(tǒng)升級和擴展是個難題;特別是,處理大規(guī)模和高并發(fā)的微博、微信、社交媒體數(shù)據(jù)時,傳統(tǒng)關系型數(shù)據(jù)庫力不從心。
以往應對這些難點,多是采用非關系型數(shù)據(jù)庫路線,不需要事先定義數(shù)據(jù)模式,預定義表結構。當插入數(shù)據(jù)時,并不需要預先定義它們的模式,可以在系統(tǒng)運行的時候,動態(tài)增加或者刪除結點。
OceanBase依然是關系型數(shù)據(jù)庫,但與Oracle不同,它是分布式架構的數(shù)據(jù)庫。OceanBase實現(xiàn)突破,在于其采用了新一代分布式設計技術,可以在線擴容、縮容、遷移、以及做負載均衡,并且通過分布式擴展集群實現(xiàn)擴展能力的大幅提升,整個集群可以異地部署,跨城市部署。
這樣,顛覆了傳統(tǒng)數(shù)據(jù)庫集中式處理技術架構。OceanBase還通過分布式選舉技術、事務技術,保證業(yè)務場景的一致性,實現(xiàn)性能提升。當下,OceanBase集群節(jié)點數(shù)突破了1500,是目前全球唯一超千個節(jié)點并通過TPC-C測試的數(shù)據(jù)庫。
在最新的TPC-C基準測試中,OceanBase性能分數(shù)突破億級大關,達到7.07億tpmC,意味著每分鐘創(chuàng)建新訂單數(shù)7.07億,相比去年10月的6088萬tpmC,提升近12倍。這背后,就是分布式技術構架帶來的效果。
分布式構架存在穩(wěn)定性的問題,隨著機器和節(jié)點的增加,可用率會下降。如何解決這一問題,OceanBase采用了多處備份的方法,將每一份數(shù)據(jù)同時備份三份,存放在三臺不同的機器上。一臺pc機出故障的概率如果是千分之一,兩臺同時壞的概率可能就是百萬分之一,三臺同時壞的概率則是十億分之一。這樣就保障了分布式系統(tǒng)的穩(wěn)定性。
能夠很好的解決性能問題,又可以保持較好的穩(wěn)定性,這樣的分布式數(shù)據(jù)庫必然是行業(yè)的未來,能給眾多銀行級客戶認可也就不難理解了。
結語
IT產業(yè)過去數(shù)十年里,歷經了多次技術革命,每次技術浪潮都是一次新舊勢力的交替。技術進步沒有終點,數(shù)據(jù)庫未來也還會向更穩(wěn)定、反應更敏捷、操作更友好的方向演化,目前傳統(tǒng)數(shù)據(jù)庫還占據(jù)著主要的份額,但在未來,會有更多份額被分布式數(shù)據(jù)庫蠶食。
當然分布式數(shù)據(jù)庫發(fā)展也不是一蹴而就,想要打開市場,一方面要在產品和技術上繼續(xù)突破,并在實際應用中證明自己,另一方面也需要有一個教育市場的過程。