2013-05-10 23 views
0

我们的客户项目之一是类似Pinterest的网站。它是由MySQL和CodeIgniter在一段时间后制作而成的。最近他们获得了资金,希望能获得更多的流量。我们正在重建网站,并正在认真考虑MongoDB,因为它似乎是拥有庞大用户群的更成熟的NoSQL DB之一。在MongoDB中锁定类似Pintrest的网站

我知道有一些担心全球锁定,直到版本2.2后,他们照顾。

这是我第一个使用mongodb和NoSQL的项目。我有一个问题:

  • 写锁仍然是我应该担心的事情吗?
+0

这是一个非常广泛的问题,第二点,你可以写一篇关于生产中任何db的陷阱的文章,更不用说MongoDB了;然而谷歌在这里搜索“mongodb gotchas”带来了大量的信息链接,对于锁定,它在数据库级别上,然而,MongoDB并不喜欢并发性功能而不是锁定,即当它们的操作被锁定时,操作会被截断数据不在RAM等,操作被设计为尽可能少的锁。 – Sammaye 2013-05-10 11:19:40

+0

谢谢,很好的参考gotchas。 – DMin 2013-05-10 11:24:03

+1

我要补充的两个建议是首先确保你的数据模型反映了从关系db到文档数据库。参见http://docs.mongodb.org/manual/core/data-modeli ng /#data-modeling-considerations-for-mongodb-应用程序提供了一些指导,并链接到示例数据模型。其次,我肯定会对您选择的模型进行负载测试,尽可能接近真实世界的数据和用例。无论你正在考虑什么数据库,我都会这样做。 – 2013-05-10 12:40:38

回答

0

我在其他一些地方的研究表明,它并不像它最初听起来那样糟糕。

视频从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中,则不会注意到该更新,因为其速度太快。这听起来很可怕,但是,你不应该面对太多的问题,因为这个“