有一天你去銀行取錢,驚喜地發(fā)現(xiàn):由于系統(tǒng)故障,你的賬戶顯示著馬云的數(shù)據(jù)……
這種事不可能發(fā)生,因?yàn)?a href="http://www.qzkangyuan.com/cnidc/bigdata/news/20170905/16621.html">數(shù)據(jù)庫管理系統(tǒng)非常可靠。網(wǎng)上買火車票,或者將照片上傳云端,你都離不開它。
而商用數(shù)據(jù)庫管理系統(tǒng)的豐厚利潤,一直被甲骨文為首的幾家美國公司瓜分,中國產(chǎn)品望洋興嘆。
速度和可靠,兼顧是難題
查詢銀行賬戶時(shí),我們不知道數(shù)字來自哪臺(tái)計(jì)算機(jī),哪塊硬盤。有數(shù)據(jù)庫管理系統(tǒng)(DBMS)替我們干活。
DBMS 就像圖書管理員:找到書架,存書,取書……說起來容易,但當(dāng)圖書館特別大,而且書會(huì)拆開來放入相隔遙遠(yuǎn)的架子時(shí),管理起來就很麻煩了。
在數(shù)據(jù)庫開發(fā)與實(shí)施方面有豐富經(jīng)驗(yàn)的 IBM 分析領(lǐng)域架構(gòu)師羅曦光舉了一個(gè)例子——用戶修改數(shù)據(jù)時(shí),相關(guān)存儲(chǔ)區(qū)域會(huì)被鎖住,其他用戶只能排隊(duì)等,如果 DBMS 存儲(chǔ)位置不合理,就會(huì)耽誤許多時(shí)間。數(shù)據(jù)操作的理想狀況,如同幾十只手彈奏一架鋼琴,各彈各的,互不影響。
“數(shù)據(jù)庫管理系統(tǒng),尤其是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的方法論,教科書上寫得很明白;其功能和常見的圖書管理系統(tǒng)沒什么差別。但當(dāng)數(shù)據(jù)量非常大,到了 TB 和 PB 級別,DBMS 性能不下降就是一大挑戰(zhàn)。”羅曦光說。
比如一個(gè)普通的大型網(wǎng)站,每秒鐘要處理十萬個(gè)查詢請求,數(shù)據(jù)庫得同時(shí)執(zhí)行幾十個(gè)查詢?nèi)蝿?wù),而且響應(yīng)時(shí)間極短。
“網(wǎng)絡(luò)用戶發(fā)送請求,期望一眨眼就得到結(jié)果。如果 DBMS 做得不好,響應(yīng)時(shí)間長到 10 秒或 20 秒,用戶會(huì)喪失耐心,數(shù)據(jù)庫還可能經(jīng)常掛掉。”羅曦光說,要永遠(yuǎn)不出故障,達(dá)到高可用性,需要很多專門技術(shù)。
目前全世界最流行的兩種 DBMS 是 Oracle 和 MySQL,都是甲骨文公司旗下的產(chǎn)品。競爭者還有 IBM 公司的 DB2、Informix,微軟公司的 SQLserver 以及開源的 MariaDB 等等。甲骨文、IBM、微軟和 Teradata 幾家美國公司,占了大部分市場份額。
國產(chǎn)替代難,輸在穩(wěn)定性
DBMS 國貨也有市場份額,但只是個(gè)零頭。銀行、電信、電力等要求極端穩(wěn)妥的企業(yè),不會(huì)考慮國貨。20 年前就有人呼吁國貨替代,但一線技術(shù)人員并不情愿。
“先發(fā)優(yōu)勢、完善的售后技術(shù)支持和高額的遷移成本,是企業(yè)難以遷移到新系統(tǒng)的原因。”羅曦光說,國內(nèi)一家電商平臺(tái)為了從 Oracle 遷徙到別的系統(tǒng),最多曾用上百人的團(tuán)隊(duì)花了十幾個(gè)月,成本不菲。
羅曦光認(rèn)為,如今的開源 DBMS 做得很好而且免費(fèi),但銀行和傳統(tǒng)龍頭企業(yè)出于謹(jǐn)慎,對于將核心系統(tǒng)遷移到開源系統(tǒng)仍會(huì)持謹(jǐn)慎態(tài)度。
穩(wěn)定壓倒一切。DBMS 行業(yè)觀察家曉軍在《國產(chǎn)數(shù)據(jù)庫發(fā)展現(xiàn)狀分析》一文中指出,國內(nèi) DBMS 企業(yè)大多源自 1990 年代的高校,期望實(shí)現(xiàn)國產(chǎn)替代。但多年來,“產(chǎn)品的穩(wěn)定性一直上不去,也不敢做有挑戰(zhàn)性的性能測試。所以,穩(wěn)定性、性能都無法讓市場信服。結(jié)果就是:稍微重要一點(diǎn)的系統(tǒng)根本沒人敢用。”
另外,曉軍說,當(dāng)年國貨往往模仿 Oracle,追求大而全,而技術(shù)創(chuàng)新不足、沒有特點(diǎn)。相比之下,1990 年代的美國小廠商極富創(chuàng)新力,開辟了一些全新的技術(shù)方向,在與甲骨文等巨頭的競爭中成功活了下來。
“這個(gè)年代,開源 DBMS 的源代碼可以隨便下載,國內(nèi)應(yīng)該不會(huì)有新的入場者再去做傳統(tǒng)的 DBMS 了。”羅曦光說。
浩瀚代碼的背后,是浩瀚人才
“Oracle 的數(shù)據(jù)庫軟件……代碼量堪稱浩瀚。”曉軍說,“Oracle 最有特色的地方就是功能非常繁多,語句極端豐富,即便大部分都不常用。”
曉軍說,小公司在這一點(diǎn)上試圖比肩甲骨文,服務(wù)器租用 免備案服務(wù)器,猶如“乞丐與龍王爺比富”。
曉軍舉例說:“Informix 的主要模塊的源代碼就有 2000 多萬行,Informix 當(dāng)年在美國的核心研發(fā)隊(duì)伍就有超過 200 人,加上測試和周邊團(tuán)隊(duì),不下 500 人。”
而國內(nèi)付費(fèi)使用 IBM 公司的 Informix 源代碼的幾家企業(yè),相關(guān)隊(duì)伍都不超過 40 人,曉軍說,要快速追趕世界先進(jìn)水平,閱讀代碼的團(tuán)隊(duì)規(guī)模應(yīng)該超過寫代碼的團(tuán)隊(duì)。因此國內(nèi)“面對十年前的巨量代碼一籌莫展,要弄通又得花很多年。”
而羅曦光認(rèn)為,盡管國內(nèi)公司沒有可以比肩甲骨文的,但“在參與開源軟件的意義上,中國不是沒有入場的資格。這是一個(gè)技術(shù)充分交流與共享的時(shí)代。”
羅曦光說,目前開源的 RDBMS(如 MariaDB)就有國內(nèi)軟件開發(fā)人員大力支持,與大數(shù)據(jù)平臺(tái)緊密關(guān)聯(lián)的 NoSQL 數(shù)據(jù)庫(如 HBase)的開發(fā)社區(qū)里也活躍著中國開發(fā)人員的身影。以阿里云為代表的國內(nèi)云服務(wù)的底層,云主機(jī)租用,也包含借鑒開源系統(tǒng)打造的數(shù)據(jù)庫管理系統(tǒng)。