MongoDB之父:MongoDB勝過BigTable
10gen公司CEO Dwight Merriman
Dwight Merriman在1996年與人共同創辦DoubleClick公司,并擔任首席技術官一職十年。Dwight Merriman的目標是構建一個類似于Google App Engine或是微軟Azure的“云平臺”。
Dwight Merriman和他的團隊,包括ShopWiki的創始人Eliot Horowitz參加了在紐約10gen啟動MongoDB的儀式。現在該公司除了擔任該開源項目的主要運營者之外,還提供支持、培訓和咨詢服務。 10gen在舊金山舉辦了第二屆開發者大會,Merriman在上午的大會做了主題演講,主要介紹了MongoDB的起源,并解釋了為何要建立這樣的數據 庫。
“在2007年底,當時的想法是構建一個用于開發、托管并具有自動縮放Web應用程序的在線服務”,談到MongoDB誕生之目的 時,Merriman介紹道。“但是不同于Google App Engine的是,這項服務完全建立在一個開放源代碼的軟件平臺之上。”因此,在關注了Google Bigtable架構很長一段時間后,Merriman和他的團隊注意到,尚沒有一個開源的數據庫平臺適合這種服務,這興許是個機會。
“我們意識到很多現有的數據庫并不真正具備‘云計算’的特性。例如彈性、可擴展性以及易管理性。這些特性能夠為開發者和運營者帶來便利,而MySQL還不完全具備這些特點。
因此,Dwight Merriman以及他的團隊的目標是構建一個全新的數據庫。新的數據庫將會放棄大家所熟悉的關系數據庫模型,且是適合現代網絡應用并基于分布式的平臺。 高度事務性的系統可以幫助解決一些棘手的問題,同時還支持云計算架構的伸縮性。Merriman解釋到。經過一年的不斷努力,這個數據庫已經比較完善。他 們將它設計為具有為“云計算服務”潛力的數據庫。而且還會不斷的完善,因為MongoDB本身就是一個開源數據庫。
在開源的、面向文檔的數據庫中,MongoDB經常被譽為具有RDBMS功能的NoSQL數據庫。MongoDB還帶有交互式shell,這使得訪問其數據存儲變得簡單,且其對于分塊的即裝即用的支持能夠使高可伸縮性跨多個節點。
據悉,MongoDB的API是JSON對象和JavaScript函數的本地混合物。通過shell程序開發人員可與MongoDB進行交互,即 允許命令行參數,或通過使用語言驅動程序來訪問數據存儲實例。這里不存在類JDBC驅動程序,這意味著開發人員不必處理ResultSet或 PreparedStatement。
而速度是 MongoDB 的另外一個優勢,主要是由于它處理寫入的方式:它們存儲在內存中,然后通過后臺線程寫入磁盤。
“由于用戶不容易在大規模環境下作分布式的鏈接,并且在分布式環境下很難做快速的大規模部署,因此,用戶需要一些輔助的東西”,Memmiman解釋道。
最后他表示同樣重要的是為了限制數據庫的事務語義你可以使用分布式事務。但當你在1000臺機器上運行時它不會那么快。例如銀行或會計系統。傳統的關系型數據庫目前還是更適用于需要大量原子性復雜事務的應用程序。
【編輯推薦】