我們的客戶項目之一是類似Pinterest的網站。它是由MySQL和CodeIgniter在一段時間後製作而成的。最近他們獲得了資金,希望能獲得更多的流量。我們正在重建網站,並正在認真考慮MongoDB,因爲它似乎是擁有龐大用戶羣的更成熟的NoSQL DB之一。在MongoDB中鎖定類似Pintrest的網站
我知道有一些擔心全球鎖定,直到版本2.2後,他們照顧。
這是我第一個使用mongodb和NoSQL的項目。我有一個問題:
- 寫鎖仍然是我應該擔心的事情嗎?
我們的客戶項目之一是類似Pinterest的網站。它是由MySQL和CodeIgniter在一段時間後製作而成的。最近他們獲得了資金,希望能獲得更多的流量。我們正在重建網站,並正在認真考慮MongoDB,因爲它似乎是擁有龐大用戶羣的更成熟的NoSQL DB之一。在MongoDB中鎖定類似Pintrest的網站
我知道有一些擔心全球鎖定,直到版本2.2後,他們照顧。
這是我第一個使用mongodb和NoSQL的項目。我有一個問題:
我在其他一些地方的研究表明,它並不像它最初聽起來那樣糟糕。
視頻從10gen的談論的全局鎖: http://www.youtube.com/watch?v=PIWVFUtBV1Q(跳到55:00全球鎖問題)
當前版本的MongoDB:2.4 - 全球鎖移除發生在2.2 詳細信息:http://blog.serverdensity.com/goodbye-global-lock-mongodb-2-0-vs-2-2/
從看幾個就可以了其他影片,下面的語句總結我目前對問題的理解:
「10gen公司代表:全局鎖是值得我們對非常嚴重的服務器範圍的鎖是走了,現在它是一個數據庫級鎖,並且在將來我們計劃將其設置爲集合級別。「
」如果您嘗試更新的記錄位於RAM中,則不會注意到該更新,因爲其速度太快。這聽起來很可怕,但是,你不應該面對太多的問題,因爲這個「
這是一個非常廣泛的問題,第二點,你可以寫一篇關於生產中任何db的陷阱的文章,更不用說MongoDB了;然而谷歌在這裏搜索「mongodb gotchas」帶來了大量的信息鏈接,對於鎖定,它在數據庫級別上,然而,MongoDB並不喜歡併發性功能而不是鎖定,即當它們的操作被鎖定時,操作會被截斷數據不在RAM等,操作被設計爲儘可能少的鎖。 – Sammaye 2013-05-10 11:19:40
謝謝,很好的參考gotchas。 – DMin 2013-05-10 11:24:03
我要補充的兩個建議是首先確保你的數據模型反映了從關係db到文檔數據庫。參見http://docs.mongodb.org/manual/core/data-modeli ng /#data-modeling-considerations-for-mongodb-應用程序提供了一些指導,並鏈接到示例數據模型。其次,我肯定會對您選擇的模型進行負載測試,儘可能接近真實世界的數據和用例。無論你正在考慮什麼數據庫,我都會這樣做。 – 2013-05-10 12:40:38