新聞中心
臨近年底,這也是我今年的最后幾篇文章之一了。今年冬天特別冷,穿啥衣服都不覺(jué)得暖和。翻了一陣子發(fā)現(xiàn)數(shù)據(jù)庫(kù)廠商送的衣服大多比較厚實(shí),適合這個(gè)寒冬穿。于是最近經(jīng)常穿著各種數(shù)據(jù)庫(kù)的衣服上班下班。前些天穿了一件IvorySQL的衣服坐飛機(jī),空姐看了我半天后問(wèn)我:“這件始祖鳥(niǎo)的衣服好像沒(méi)見(jiàn)過(guò)別人穿過(guò)”。我笑著說(shuō):“這是高端品牌,一般人買不著”。上周一個(gè)朋友約我小聚,脫掉外套后發(fā)現(xiàn)倆人都穿了一件同款的PingCap藍(lán)色厚T恤??礃幼硬恢刮乙粋€(gè)人發(fā)現(xiàn)了國(guó)產(chǎn)數(shù)據(jù)庫(kù)的這個(gè)好處。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比北川羌族網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式北川羌族網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋北川羌族地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
今天聊聊自研數(shù)據(jù)庫(kù)的難點(diǎn),在看到這個(gè)問(wèn)題的時(shí)候肯定有些朋友會(huì)問(wèn):“為什么我們需要大型數(shù)據(jù)庫(kù),把自己的數(shù)據(jù)庫(kù)拆小不就解決問(wèn)題了嗎?”,我也經(jīng)常會(huì)聽(tīng)到:“為什么非要這樣,為什么不那樣”。每個(gè)企業(yè)的實(shí)際情況不同,其需求是不同的,作為一個(gè)用戶你說(shuō)不需要某個(gè)功能是完全沒(méi)毛病的,不過(guò)作為數(shù)據(jù)庫(kù)廠商,需要為各種各樣的應(yīng)用場(chǎng)景提供解決方案。
進(jìn)入正題,對(duì)于這個(gè)問(wèn)題大家的觀點(diǎn)可能比較一致,不管采用哪種方式,自研確實(shí)很難,因?yàn)殛P(guān)系型數(shù)據(jù)庫(kù)發(fā)展這么多年,很成功的大型商用集中式通用數(shù)據(jù)庫(kù)就那么幾個(gè),最成功的不外乎Oracle、SQL SERVER、DB2這三巨頭。連曾經(jīng)風(fēng)光無(wú)限的SYBASE、 INFORMIX在大浪淘沙中都已經(jīng)變成路人甲了。
這些年國(guó)產(chǎn)數(shù)據(jù)庫(kù)替代的需求很旺盛,以中國(guó)如此大的數(shù)據(jù)庫(kù)市場(chǎng),能不能培養(yǎng)出一個(gè)像Oracle一樣的數(shù)據(jù)庫(kù)產(chǎn)品呢?我想應(yīng)該能,不過(guò)從零開(kāi)始從頭研發(fā)似乎難度有點(diǎn)大,比如說(shuō)一個(gè)類似Oracle的數(shù)據(jù)庫(kù),其核心代碼一般來(lái)說(shuō)要超過(guò)1000萬(wàn)行,就按1200萬(wàn)行計(jì)算吧。按照一個(gè)人月2000行核心代碼計(jì)算(這個(gè)代碼量不是全流程代碼量,數(shù)據(jù)庫(kù)核心研發(fā)全流程評(píng)估代碼量不會(huì)超過(guò)1000行/人月),那么一人年的代碼量是2.4萬(wàn),那么需要500人年。
按照最理想的狀態(tài),我們能招到100個(gè)高水平的核心代碼研發(fā)工程師,從0開(kāi)始最樂(lè)觀需要5年時(shí)間才能拿出一個(gè)初級(jí)產(chǎn)品,再花上兩三年在實(shí)際用戶那里去磨合提升,才能初步成型。按照數(shù)據(jù)庫(kù)核心代碼研發(fā)人員100萬(wàn)的平均年薪(這個(gè)是比較低的,國(guó)外的數(shù)據(jù)庫(kù)核心代碼研發(fā)人員年薪要在30萬(wàn)美金以上),需要投入的研發(fā)經(jīng)費(fèi)是5億。在市場(chǎng)不明朗的情況下,每年投入一億,砸5年才能上市。這種買賣除非是航天軍工這種舉國(guó)體制下,恐怕很少會(huì)有企業(yè)能如此投入。如果再算上周邊工具與接口需要投入的數(shù)倍研發(fā)人員,以及三五百人起步的銷售人員,數(shù)百人的營(yíng)銷市場(chǎng)人員與管理人員,一家成功的數(shù)據(jù)庫(kù)企業(yè)每年要投入的資金至少也要幾個(gè)小目標(biāo)。而目前又有幾家企業(yè)每年能真正賣出幾個(gè)億的數(shù)據(jù)庫(kù)許可證與服務(wù)呢?
基于此我一般不太敢相信中國(guó)真的存在很多這樣的完全自研的數(shù)據(jù)庫(kù)企業(yè)和產(chǎn)品。算一算賬我們大體上也知道數(shù)據(jù)庫(kù)廠商動(dòng)不動(dòng)就說(shuō)我們核心研發(fā)幾百人上千人是件多么不靠譜的事情,大部分國(guó)產(chǎn)數(shù)據(jù)庫(kù)廠商的年收入都不足1個(gè)小目標(biāo),如何能長(zhǎng)期支撐如此燒錢的核心研發(fā)團(tuán)隊(duì)?我所了解的很多數(shù)據(jù)庫(kù)廠商的核心研發(fā)人員不過(guò)二三十人而已,甚至一些小企業(yè)只是一個(gè)個(gè)位數(shù)。
既然現(xiàn)在從零開(kāi)始干不大現(xiàn)實(shí),那么基于開(kāi)源代碼是否簡(jiǎn)單一些呢?確實(shí)這是難度較低的做法,也是目前大多數(shù)國(guó)產(chǎn)數(shù)據(jù)庫(kù)廠商采用的方案?;陂_(kāi)源代碼可選的是MySQL或者Postgresql,MySQL雖然很強(qiáng)大,長(zhǎng)期霸占數(shù)據(jù)庫(kù)流行榜的TOP 2,但是MySQL的核心代碼不足以支撐它成為一個(gè)大型的集中式數(shù)據(jù)庫(kù),其GPL開(kāi)源協(xié)議也不支撐在它的基礎(chǔ)上大幅度修改代碼,并做成開(kāi)源的商用數(shù)據(jù)庫(kù)。
因此PG變成了唯一的選擇了。可惜的是,PG在整體架構(gòu),核心代碼以及一些核心算法上也不具備直接成為Oracle這樣的大型通關(guān)系型數(shù)據(jù)庫(kù)的潛質(zhì)。astore存儲(chǔ)引擎、XID64、FULL PAGE WRITE、DOUBLE BUFFER、不太完善的checkpoint設(shè)計(jì)、低效率的lwlock代碼、由于缺乏pmon/smon導(dǎo)致的kill -9災(zāi)難、優(yōu)化器能力不足、缺乏高并發(fā)與增量備份能力、沒(méi)有類似ORACLE RAC的高可用方案等因素都阻礙了PG作為一個(gè)大型關(guān)鍵數(shù)據(jù)庫(kù)的基礎(chǔ)平臺(tái)。 要想達(dá)成我提的目標(biāo),必須對(duì)PG的核心代碼做大手術(shù)才行。
要對(duì)PG動(dòng)大手術(shù),依然需要大量高水平的數(shù)據(jù)庫(kù)核心開(kāi)發(fā)人員參與,這也不是一般企業(yè)能玩得起的。所以說(shuō)目前國(guó)產(chǎn)數(shù)據(jù)庫(kù)雖然有200多家了,不過(guò)大多數(shù)企業(yè)都選擇去搞分布式數(shù)據(jù)庫(kù),而不去碰大型集中式數(shù)據(jù)庫(kù)這個(gè)燙山芋。這是因?yàn)閿?shù)據(jù)庫(kù)核心研發(fā)的難度太大了,分布式數(shù)據(jù)庫(kù)可以把有限的研發(fā)放到分布式集群上,從而避免更加花錢的對(duì)數(shù)據(jù)庫(kù)核心的深度優(yōu)化所需要的投入。
花大力氣去研發(fā)數(shù)據(jù)庫(kù)核心不僅僅是技術(shù)上有難度,甚至有些時(shí)候有錢都不一定能干好,因?yàn)榭赡苷也坏阶銐虻母咚降难邪l(fā)人員。在沒(méi)有占有足夠大的市場(chǎng)的情況下,不敢投入巨資去做研發(fā)。產(chǎn)品水平不夠又無(wú)法吸引足夠多的用戶。這個(gè)先有雞還是先有蛋的問(wèn)題是目前困擾國(guó)產(chǎn)數(shù)據(jù)庫(kù)發(fā)展的最大障礙。
雖然說(shuō)研發(fā)一個(gè)大型集中式數(shù)據(jù)庫(kù)很難,但是中國(guó)自主可控的市場(chǎng)又必須有這么個(gè)產(chǎn)品,中國(guó)的數(shù)據(jù)庫(kù)市場(chǎng)規(guī)模也支撐得了這么一個(gè)產(chǎn)品,因此我還是對(duì)中國(guó)能夠出現(xiàn)這么一個(gè)產(chǎn)品持有樂(lè)觀態(tài)度的。只不過(guò)在目前千軍萬(wàn)馬爭(zhēng)奪這個(gè)制高點(diǎn)的情況下,絕大多數(shù)企業(yè)會(huì)在這場(chǎng)長(zhǎng)跑中落敗,只有少數(shù)企業(yè)最后會(huì)在競(jìng)爭(zhēng)中活下來(lái),就像30年前國(guó)外商用數(shù)據(jù)庫(kù)市場(chǎng)的那場(chǎng)大戰(zhàn)一樣。
分享標(biāo)題:基于開(kāi)源代碼開(kāi)發(fā)一個(gè)大型集中式通用關(guān)系型數(shù)據(jù)庫(kù)很難嗎?
文章位置:http://www.dlmjj.cn/article/dhgioos.html


咨詢
建站咨詢
