自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

10gen CEO訪談:為何MongoDB是當(dāng)之無愧NoSQL王者

譯文
數(shù)據(jù)庫 其他數(shù)據(jù)庫 MongoDB
10gen公司CEO Dwight Merriman詳細(xì)闡述了MongoDB——第一款熱門文檔類數(shù)據(jù)庫的誕生,并對動態(tài)NoSQL的未來趨勢做出展望。他指出,Cassandra、Couchbase和HBase將是MongoDB三大競爭對手。

【51CTO獨(dú)家譯文】時至今日,我們已經(jīng)不可能把NoSQL的發(fā)展趨勢與10gen公司的MongoDB割裂開來。當(dāng)然,NoSQL數(shù)據(jù)庫家族可謂百花齊放,Andrew Oliver還在他的經(jīng)典文章《我到底該用哪種數(shù)據(jù)庫》中進(jìn)行了系統(tǒng)整理。眾所周知,MongoDB與其它同類開源競爭對手Couchbase及Cassandra的具體市場占有率也很難說得清楚。然而相信沒有人會否認(rèn),MongoDB已經(jīng)成為新一代開發(fā)者眼中的至寶。在發(fā)展過程中,它很早就將簡化Web應(yīng)用創(chuàng)建與數(shù)據(jù)庫擴(kuò)展能力放在第一位,也正是憑借這一特色MongoDB才得以從英杰輩出的傳統(tǒng)關(guān)系類數(shù)據(jù)庫中殺出個黎明。

10gen公司CEO Dwight Merriman于2007年與伙伴合作創(chuàng)辦了這家企業(yè)——就在不久之前他才剛剛把自己建立的第一家公司DoubleClick賣給谷歌,交易金額達(dá)到31億美元。Merriman擁有令人艷羨的強(qiáng)悍技術(shù)背景:1995年至2005年任DoubleClick公司CTO,主持設(shè)計(jì)了DART(即動態(tài)、廣告、報(bào)告及定位)初始技術(shù)——這項(xiàng)技術(shù)如今已經(jīng)成為網(wǎng)絡(luò)廣告投放的主要基礎(chǔ)。據(jù)他自己介紹,當(dāng)初啟動MongoDB開源項(xiàng)目的原因在于“我們感覺有必要推出一種新的數(shù)據(jù)技術(shù)類型,而當(dāng)時也正好是最合適的時間點(diǎn)。”在10gen公司的創(chuàng)建過程中,MongoDB逐漸轉(zhuǎn)型為商業(yè)開源項(xiàng)目,能夠?yàn)橛脩籼峁┌夹g(shù)支持及特殊認(rèn)購版本在內(nèi)的多層次產(chǎn)品供應(yīng)。

為了進(jìn)一步了解MongoDB的成長軌跡與影響力,Doug Dineley和我上周一同采訪了Merriman。我們開門見山,從開創(chuàng)文檔類數(shù)據(jù)庫的靈感開始向Merriman展開了探索之旅。

問: 您是怎樣在經(jīng)營DobleClick公司的過程中意識到市場對新型數(shù)據(jù)庫的需求?

Dwight Merriman:之前的經(jīng)驗(yàn)確實(shí)很有幫助。從某種角度上看,MongoDB正是我希望自己能擁有的數(shù)據(jù)庫產(chǎn)品。當(dāng)時我們需要自來遍布世界的十二數(shù)據(jù)中心以及其中成千上萬臺服務(wù)器,還得確保每臺設(shè)備都處于正常運(yùn)行狀態(tài),這可相當(dāng)困難。當(dāng)然,上世紀(jì)九十年代的計(jì)算機(jī)在運(yùn)算速度上完全無法與如今相提并論,這要感謝摩爾定律的一貫正確。在工作中我們需要一遍又一遍地對原有方案進(jìn)行重新開發(fā),這種枯燥而毫無價值的任務(wù)讓我們希望創(chuàng)造出一種適合現(xiàn)代化軟件、數(shù)據(jù)且能夠與新時代工作規(guī)模相吻合的處理方式——同時還要與公共及私有云結(jié)構(gòu)順利接軌。但那時候市場上實(shí)在沒有這種產(chǎn)品,于是大約五年前我們建立了10gen公司,并從零開始打造MongoDB。

問: 要說傳統(tǒng)數(shù)據(jù)庫技術(shù)的兩大主要瓶頸,可能關(guān)系類數(shù)據(jù)庫的擴(kuò)展性與控制性缺失最令人頭痛。這個問題您怎么看?這兩點(diǎn)是困擾您的主要原因嗎?

Dwight Merriman:我贊同擴(kuò)展位列其中,另一個嘛……我認(rèn)為是數(shù)據(jù)模型。大家知道,關(guān)系類數(shù)據(jù)庫可能是軟件歷史中出現(xiàn)過的最成功的技術(shù),很多人都沒意識到我們今天還在使用的技術(shù)已經(jīng)有三十到四十歲的高齡。但如果將目光轉(zhuǎn)向軟件開發(fā)的另一大重點(diǎn)——編程語言,我們會驚奇地發(fā)現(xiàn)語言的更迭周期明顯要快得多。軟件開發(fā)方法本身已經(jīng)發(fā)生改變,我們不再遵循瀑布式開發(fā)原則。如今,大家更青睞敏捷開發(fā)與多版本機(jī)制。編程語言不再局限于面向?qū)ο筮@一種,很多新語言都專為云計(jì)算而生,這種高度靈活性非常值得肯定。我們認(rèn)為這種趨勢也將給數(shù)據(jù)層帶來重大變革,其影響之深遠(yuǎn)在過去25年的數(shù)據(jù)庫發(fā)展歷史中無人能出其右。

問: 您建立了第一款獲得廣泛成功的NoSQL文檔類數(shù)據(jù)庫。這樣的成就源自哪些重要積累?

Dwight Merriman:其實(shí)沒什么特別的積累;我覺得整個職業(yè)生涯教給我的寶貴經(jīng)驗(yàn)就是哪些可行而哪些不可行。我們研究過云計(jì)算——因?yàn)槲覀円鶕?jù)擴(kuò)展性需求決定如何編寫代碼——但卻找不到理想中的工具。核心難題主要分兩個方面,其中之一在于:我們該如何向外擴(kuò)展?擴(kuò)展技術(shù)在理念上存在幾道難以攻克的障礙,分配連接就是這樣一道門檻。如果要向容納有一千臺服務(wù)器的集群進(jìn)行負(fù)載分配,其難度可想而知。

針對這個問題,我們的態(tài)度是:好吧,既然沒有明確的解決思路,那就不要再為此浪費(fèi)時間了。相反,我們嘗試選擇其它數(shù)據(jù)模型,希望在達(dá)到理想效果的同時回避上述難題。面向文檔的數(shù)據(jù)模型由此誕生,從開發(fā)者的角度看我們對這一成果非常滿意。盡管不太謙虛,但我們真的認(rèn)為這套方案非常適合現(xiàn)在的代碼開發(fā)者。

這有點(diǎn)像一種催化劑,指引著我們向正確的方向做出努力。我認(rèn)為如今NoSQL家族中大家所看到的各類次世代、可擴(kuò)展的非關(guān)系類數(shù)據(jù)庫基本都具備這些特性。我真的很喜歡面向文檔這一概念,因?yàn)樗浅7衔覀兙帉懘a的方式。文檔類數(shù)據(jù)庫令信息變得可讀,尤其是在開發(fā)者及數(shù)據(jù)庫管理員眼中。在開發(fā)MongoDB的過程中,最令人印象深刻的點(diǎn)子就是把數(shù)據(jù)從代碼中分離出來。我們應(yīng)該有能力在不損壞程序的前提下查看數(shù)據(jù)庫內(nèi)容。關(guān)系類數(shù)據(jù)庫在這方面表現(xiàn)不錯,而我們應(yīng)該繼承這一優(yōu)勢。

作為文檔的基礎(chǔ),我對JSON(即JavaScript對象表示法)也很喜愛。JSON賦予我們一套用于處理對象類數(shù)據(jù)的標(biāo)準(zhǔn)化獨(dú)立語言,而且對于人類而言,它的可讀性要比XML更高。據(jù)我所知有幾款NoSQL產(chǎn)品屬于JSON風(fēng)格的面向文檔型數(shù)據(jù)庫。我認(rèn)為作為這一領(lǐng)域的標(biāo)準(zhǔn)化數(shù)據(jù)模型范例,JSON給大家?guī)砹朔浅@硐氲那腥朦c(diǎn)。

問: 為什么要讓MongoDB走開源道路?您是不是在項(xiàng)目啟動之初就構(gòu)思好了未來的商業(yè)模式?

Dwight Merriman:這么做也是出于多種因素的考量。首先,作為開發(fā)者我們很喜歡開源的概念,甚至可以被稱為開源粉絲。當(dāng)然,我們在堅(jiān)持開源路線的同時,也相信自己有能力在開源這一領(lǐng)域創(chuàng)造出不斷發(fā)展但又極具商業(yè)價值的免費(fèi)項(xiàng)目。紅帽公司是一家了不起的企業(yè),規(guī)模也相當(dāng)之大,所以開源并不會成為業(yè)務(wù)道路上的絆腳石。

問: 您的第一位客戶是誰?

Dwight Merriman:我們的第一批客戶來自Web 2.0與startup world網(wǎng)站。這要回溯到2009年,那時候Shutterfly、Craigslist及Foursquare等企業(yè)開始嘗試MongoDB。而一年之后,我們的產(chǎn)品迎來了更多規(guī)模更大的客戶,例如Intellisponse、O2、迪士尼乃至eBay。時至今日,即使在企業(yè)層面我們也早已跨過了早期試用這個階段。2012年,MongoDB的普及趨勢開始向金融服務(wù)業(yè)界擴(kuò)展,目前銀行及其它金融機(jī)構(gòu)開始廣泛采用MongDB及NoSQL類產(chǎn)品——至少會在新項(xiàng)目中采用。甚至有不少企業(yè)表示:這是我們開發(fā)應(yīng)用的默認(rèn)方式。

問: 他們指的是Web應(yīng)用,對嗎?

Dwight Merriman:哦,不是,因?yàn)镸ongoDB中不包含任何針對Web應(yīng)用的特殊設(shè)計(jì)。從概念上說,這是一款通用型數(shù)據(jù)庫。雖然剛剛接觸MongoDB的客戶會通過Web應(yīng)用進(jìn)行試水,但我認(rèn)為人們應(yīng)該把它推廣到各個方面:內(nèi)容管理系統(tǒng)、個性化系統(tǒng)以及移動流媒體等等。MongoDB被用在Web開發(fā)中,但也同樣被用于賬目管理及離線分析等方面,這些都是歷史數(shù)據(jù)存儲量巨大的領(lǐng)域??偠灾琈ongoDB的適用范圍非常廣闊。

答:客戶所開發(fā)的企業(yè)應(yīng)用之間存在共通點(diǎn)嗎?因?yàn)樵谀慕榻B中,我們會有種缺乏特色的雜燴感。

Dwight Merriman:使用范圍的確很廣很雜,而且你的問題比較寬泛,有點(diǎn)像:甲骨文關(guān)系類數(shù)據(jù)庫包含哪些使用實(shí)例?我當(dāng)然能夠回答,但這既復(fù)雜又耗時。文檔類數(shù)據(jù)庫在數(shù)據(jù)對象符合面向文檔的數(shù)據(jù)模型時表現(xiàn)出色,無論是從編程語言、分類效果還是數(shù)據(jù)合集角度看都是如此。

舉例來說,某家電信公司自主開發(fā)了一套產(chǎn)品目錄應(yīng)用。由于公司規(guī)模極為龐大,產(chǎn)品數(shù)量也達(dá)到上萬種,其中包括電話、延保產(chǎn)品以及其它一些服務(wù)計(jì)劃。每種產(chǎn)品都擁有獨(dú)特的屬性,而由于MongoDB的數(shù)據(jù)模型非常適合這種工作,企業(yè)開發(fā)者會發(fā)現(xiàn)整個工作流程都變得更加簡便。這算是個很好的使用實(shí)例。

我認(rèn)為MongoDB的出色之處還不僅如此。內(nèi)容管理應(yīng)用后端、使用量巨大的移動應(yīng)用、需要實(shí)時進(jìn)行操作數(shù)據(jù)存儲的在線應(yīng)用等任務(wù)每秒鐘需要處理數(shù)萬次讀寫操作,而這也是文檔類數(shù)據(jù)庫的長項(xiàng)。

當(dāng)然MongoDB也存在局限性,復(fù)雜度極高的工作或者對SQL及UVC的遺留請求進(jìn)行處理就不太適合它。

問: 從CIO的角度分析,我們認(rèn)為大家的普遍看法是NoSQL類產(chǎn)品不太適合進(jìn)行交易處理。您對這種觀念有什么見解?

Dwight Merriman:這要看具體的產(chǎn)品類型,不同產(chǎn)品所使用的處理模式也有所不同。MongoDB的實(shí)力就要比人們的普遍看法強(qiáng)一些。通過MongoDB,用戶可以對個人JSON文檔進(jìn)行原子操作,而且支持的文檔處理量也相當(dāng)理想,這當(dāng)然也是交易處理的一種表現(xiàn)。而在同一文檔的條件下,如果我們想從A處借記款項(xiàng)并以信貸形式交付給B,這樣的交易活動完全能夠順利進(jìn)行。只是我們無法在不同文檔之間進(jìn)行這樣的操作。

我們很希望能滿足用戶的需求,但問題在于要讓分布式交易在上千臺服務(wù)器規(guī)模的集群中快速完成實(shí)在是非常、非常、非常困難。所以我們的做法是……在保證速度的前提下為大家提供解決方案,盡管還存在一定缺陷。事實(shí)證明這樣的思維方式能夠讓產(chǎn)品走得更遠(yuǎn),特別是在設(shè)計(jì)過程中考慮到無法完成的任務(wù)。我發(fā)現(xiàn)在75%的使用實(shí)例中,都有很多其它方法處理這一看似難以完成的任務(wù)。不過仍然有少數(shù)客戶對產(chǎn)品的表現(xiàn)不太滿意,這一點(diǎn)我并不否認(rèn)。

如果某個項(xiàng)目擁有二十項(xiàng)要求,典型數(shù)據(jù)庫會優(yōu)先分配交易要求,但這就會使其在其它一些方面表現(xiàn)乏力——例如數(shù)據(jù)映射、處理速度以及擴(kuò)展性等。用戶需要從綜合角度進(jìn)行審視,評估哪款產(chǎn)品最適合自己的實(shí)際需求。

問: 前一陣子,我們網(wǎng)站的一位撰稿人Andrew Oliver刊發(fā)了一篇名為《糊涂的極端分子死咬MongoDB》的文章。在他看來,很多用戶面對日益普及的MongoDB提出了一些不切實(shí)際的期望。您對這樣的觀點(diǎn)有何看法?

Dwight Merriman:我們確實(shí)發(fā)現(xiàn)了此類情況,尤其是在一年前。但隨著產(chǎn)品的逐步完善,目前這種爭議已經(jīng)越來越少。我認(rèn)為在廠商不斷改進(jìn)產(chǎn)品的同時,開發(fā)者們的經(jīng)驗(yàn)積累與知識儲備也在與日俱增,這樣的組合非常科學(xué)。所有有利于MongoDB發(fā)展的最佳實(shí)踐與設(shè)計(jì)模式乃至設(shè)計(jì)方案都不會憑空出現(xiàn)。作為項(xiàng)目開發(fā)者,我認(rèn)為MongoDB易于上手的特性非常有吸引力,用戶應(yīng)該在輕松入門后進(jìn)一步學(xué)習(xí)并發(fā)掘。遺憾的是就目前來看,這種健康的生態(tài)系統(tǒng)還未完全建立起來。

本著這樣的思路,我們在去年秋季推出了MongoDB免費(fèi)在線教育課程。這是一種大規(guī)模網(wǎng)絡(luò)公開課,與Coursera或者斯坦福講堂類似,而且收到了不錯的成效。僅在項(xiàng)目啟動的兩周之后,我們就迎來了兩個班共計(jì)三萬名學(xué)員。這兩個班分別是開發(fā)者班與數(shù)據(jù)庫管理員班,全部受到廣泛響應(yīng)與熱烈參與。目前我們的課程剛剛步入第二學(xué)期,并有計(jì)劃再開設(shè)一個Java開發(fā)者班。把信息分享給大家確實(shí)能夠幫助他們?nèi)〉贸晒Α?/p>

問: 你會聘用班上成績優(yōu)異的學(xué)生嗎?

Dwight Merriman:當(dāng)然,我們很樂意這么做。

問: Couchbase所提供的文檔數(shù)據(jù)庫版本也具備相當(dāng)?shù)母偁帉?shí)力。您對于市場競爭打算采取什么樣的應(yīng)對策略?畢竟這塊新興市場還處于混亂且快速增長的趨勢之中。

Dwight Merriman:其實(shí)這跟早期面對關(guān)系類數(shù)據(jù)庫的壓力沒什么區(qū)別,那時候甲骨文和Sybase同樣實(shí)力強(qiáng)勁。

問: 沒錯,您肯定不想成為下一個Sybase。

Dwight Merriman:是啊,但那都是過去的事了。如今具備競爭力、項(xiàng)目規(guī)模龐大的企業(yè)不少,增長也都非常迅速。但在MongoDB這邊,我們的擴(kuò)展性與開發(fā)者效率方面擁有獨(dú)特的優(yōu)勢。我認(rèn)為在同等條件下MongoDB堪稱獨(dú)一無二。

問: 您覺得自己的主要競爭對手是誰?

Dwight Merriman:Cassandra、Couchbase和HBase是我首先能想象到的MongoDB三大競爭對手。

問: 你對甲骨文NoSQL有什么看法?

Dwight Merriman:沒有什么看法。

問: 最后一個問題,10gen公司在2013年有何打算?作為用戶我們又該做出哪些期待?

Dwight Merriman:作為MongoDB的供應(yīng)商,每次進(jìn)行大規(guī)模更新都會將版本號提升0.2;因此今年大家會迎來2.4和2.6兩個新版本。我們正在全文檢索方面進(jìn)行一系列研發(fā)工作,打算添加一些新的安全功能,并在性能上做出大量調(diào)整工作。如果大家使用五百臺規(guī)模的服務(wù)器集群,MongoDB對于管理員而言非常友好且易于使用。但如果服務(wù)器規(guī)模超過五百臺,工作量就會有所增加,但我們?nèi)匀幌MM可能保持?jǐn)?shù)據(jù)庫易用性??傊诮觼淼氖€月中,我們將繼續(xù)給大家?guī)硇麦@喜。

原文鏈接:http://www.infoworld.com/t/nosql/10gen-ceo-why-were-the-nosql-leader-211201

 

【編輯推薦】

  1. MongoDB 2.0 正式版發(fā)布
  2. MongoDB 2.0新功能逐個看之Compact Command
  3. 主流NoSQL數(shù)據(jù)庫全方位評測之MongoDB
  4. 教你如何利用MySQL學(xué)習(xí)MongoDB
  5. 在Windows環(huán)境下MongoDB搭建和簡單操作

 

 

 

責(zé)任編輯:彭凡 來源: 51CTO
相關(guān)推薦

2021-10-28 22:34:04

狗狗幣比特幣加密貨幣

2021-07-28 15:50:47

數(shù)字化

2011-09-30 09:55:33

MongoDB

2020-07-03 11:13:09

Cloudera

2013-09-02 17:17:29

10genMongoDB

2011-11-18 10:51:14

MongoDB

2024-03-26 13:00:10

搜索腦圖AI

2024-08-05 13:30:00

2013-12-13 15:39:57

LTE4G牌照

2021-09-24 20:27:57

AI

2021-11-26 14:28:48

以太坊比特幣加密貨幣

2024-12-02 12:34:06

2012-04-29 15:08:53

華為接入網(wǎng)

2010-01-19 10:36:18

2021-10-13 16:22:00

互聯(lián)網(wǎng)數(shù)據(jù)職業(yè)

2023-02-03 10:08:13

前端存儲庫存儲配額

2011-03-29 09:35:20

IBM小型機(jī)Power7

2010-01-22 08:59:13

2019-07-30 08:20:57

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號