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




























