我的问题是关于我正在研究的项目的服务器端逻辑的结构,它基本上是像Google Documents这样的文字处理器,它是关于“自动保存”功能以及如何有效地设计它,因为它对于数据库来说非常重要。
这就是项目现在的结构:
我们需要优化写操作,可能在服务器上添加“写”缓存层(Redis等?)是否有人对这些架构决策有任何经验?
答案 0 :(得分:1)
在这种情况下,写锁争用可能是最重要的瓶颈,因为MongoDB具有数据库级锁定。 Sharding是正确的解决方案(How to speed up MongoDB Inserts/sec?)。使用MongoDB很容易,但请确保在进行分片之前优化其他所有内容。
如果您当前的数据库目前处于大量写入状态,我建议您阅读Mailbox's solution to this problem。
在这种情况下缓存会很困难,因为当其他人进行编辑时,您必须保持无效。它肯定会帮助读取查询,但我认为写入将是您最大的瓶颈。
另外,请确保使用显示器检查性能。使用像MMS这样的服务为你做。