Oracle 的 NoSQL 惡夢 MongoDB
Oracle的NoSQL惡夢MongoDB
(暨MongoDB發布2.6版本之際)
這次發布描繪出了一個極具前景的公司或將引領未來超過十年的創新。
By Jack Clark, 8 Apr 2014
翻譯:無若
快速崛起的數據庫MongoDB已經發布了其2.6版本,它所展現出來的技術,讓支持它的公司們宣稱這是“下一個十年數據庫創新的基礎”。
在周二的時候,MongoDB發布的2.6版本數據庫是其NoSQL面向文檔數據庫的正式發布版。關于這個版本,MongoDB公司在他們的博客上宣稱“這是全方位核心服務的提升,并將帶來一個開創性的自動化工具以及決定性的企業級特性, MongoDB 2.6是我們有史以來最偉大的一次發布。”
在進一步深入研究這個版本之前,特別需要指出的是MongoDB當前擁有的數據庫全寫鎖定技術(database-wide write locking),這意味著整個系統在某一時刻僅可以接受一次寫操作。這是一個缺點,它意味著如果數據庫有很高頻的訪問時,多個并發的寫操作最終是被序列化進行的。MongoDB公司希望在MongoDB 2.8的時候“大幅提升其并發性能”。急切希望獲取此項能力的管理員們似乎還需要等上一段時間。
至于2.6的新特性,MongoDB 2.6主要分為三大類別“操作性,開發體驗和企業級適用性”,公司的CTO Eliot Horowitz在于El Reg的談話中提到。
這意味著數據庫提供的技術能給人們更好的可操作性,它讓查詢和寫入更快速,讓穩定性和安全性更好。
這些新技術包括插入(insert)和更新(update)性能的提升,為寫入操作制定了一個新的規范,一個新的安全認證模型,支持的空間更大,查詢操作的改進。
其中一項強有力的查詢特性是“交叉索引(index intersection)”,這個特性意味著,“MongoDB能使用多個索引交叉去實現多查詢”,根據先前提供的FAQ,MongoDB以前在多查詢時非常受限于單索引。
MongoDB公司一直在致力于做大量的改變,改進數據庫的事務管理。
這包括在內部部署和云部署上使用“MongoDB 管理服務(MongoDB Management Service)”中的回滾備份(rolling backup)特性。當主機上的這個數據在輔助設備限電的情況下,MongoDB 的副本集(replica sets)和分片集群(sharded clusters)功能將可以發揮作用。當出現問題的時候,這些特性將通過一個“自動化的”管理控制臺幫助人們執行和監視 MongoDB的集合(sets)和集群(clusters)。
這些特性在人們的感性認知上可能會覺得MongoDB的設計師把問題“復雜化”和“碎片化”,Horowitz說道。
許多經驗豐富的DBA們可能會嘲笑這些新的特性,這些東西在傳統的關系型數據庫中已經很久很久了,但是請你們記住這是一個MongoDB/NoSQL技術的基礎,這不同于傳統的數據庫系統。典型的數據庫使用行/列形式存儲數據,然而MongoDB把數據存儲在內嵌的JSON對象中。
這給了數據庫充分的靈活性和易用性,并且解決了許多存在已久的性能瓶頸和管理上的困境。
如果Oracle計劃制定“NoSQL標準組織”成為現實,當MongoDB發現的自己的將來就是Oracle過去的輝煌時,那么這里僅僅是像星星之火那樣想象一下。
(英文原文:http://www.theregister.co.uk/2014/04/08/mongodb_major_release/)