当前位置:  开发笔记 > 编程语言 > 正文

Mongodb - 可靠性问题仍然很重要吗?

如何解决《Mongodb-可靠性问题仍然很重要吗?》经验,为你挑选了2个好方法。

我有几个sqlite dbs(我说约15GB),总共约100万行 - 所以不是超级大.我在看mongodb,它看起来很容易使用,特别是如果我想尝试对构成数据库的文档进行一些基本的自然语言处理.

我以前从未与Mongo合作过,没有必要从头开始学习(将在python中工作).在谷歌搜索了一下后,我偶然发现了一些关于Mongodb re的恐怖故事.可靠性.这仍然是一个主要问题吗?在紧急情况下,我当然会保留sqlite备份,但我不必经常重建我的mongo数据库.

只是想知道人们最近与Mongo实际面临的数据腐败问题是什么?这是一个大问题吗?

谢谢!



1> Chris Heald..:

正如其他人所说,MongoDB目前没有单服务器持久性.幸运的是,设置多节点复制很容易.您甚至可以在另一个数据中心设置第二台计算机,并将数据自动复制到其中!

如果写入必须成功,则可以使Mongo不从插入/更新返回,直到该数据已复制到n个从属.这可以确保您至少拥有n数据副本.副本集允许您即时添加和删除群集中的节点,而无需任何重要工作; 只需添加一个新节点,它就会自动同步数据副本.删除节点,群集重新平衡自身.它设计用于跨多台机器,多个节点并行运行; 这是首选的默认设置,与MySQL相比,它需要一台巨型机器来完成它的工作,然后你可以在需要向外扩展时配对奴隶.这是一种不同的数据存储和扩展方法,但如果您花时间了解它在假设上的差异,以及如何构建利用其优势的架构,那么这是一种非常舒适的方法.



2> sirmak..:

是的,耐用性是mongo的一个大问题.您必须在mongodb中使用复制集以获得持久性(您需要至少2台计算机),否则您可能会因电源故障而在最后1分钟内松动.在mongo中没有单一的服务器耐用性,但据我所知,它将被开发为1.7-1.8.崩溃后你必须手动修复db,如果你的数据很大,rapair操作可能需要几个小时.没有交易或酸,因此它不适合电子商务或银行应用程序.

您不应该使用mongo的开发版本(奇数版本号,如1.3.x,1.5.x,1.7.x是开发版本),您更喜欢使用64位操作系统.如果你在网上挖掘关于mongo的灾难文章,问题的根源在大多数情况下都是这两个问题.

CouchDB,Cassandra和postgresql都具有很强的耐用性(默认情况下,fsync在cassandra和postgresql中为10毫秒),因此它们都具有单一服务器耐久性.

如果您需要简单易用的可扩展性,容错和负载均衡; cassandra是最好的,但查询选项很差.失败的节点可能会消失并在一段时间后返回,没问题,系统自动修复.

编辑: mongo 1.8带有日志(允许持久性),但它不是默认设置.另请参阅此http://news.ycombinator.com/item?id=2684423

问候,

Serdar Irmak


现在有很多网站将它用于真实数据.http://www.mongodb.org/display/DOCS/Production+Deployments有很多备受瞩目的部署; 一些用于"真实数据"的网站包括Sourceforge,Foursquare,Wordnik和Business Insider.
@Chris:Foursquare也使用postgresql.业务内部人员和10gen的业主是AlleyCorp.而wordnik是一本字典.
推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有