基于磁盘的文档存储

时间:2012-02-25 09:34:18

标签: c# mongodb bigdata nosql

Web上是否有免费的基于磁盘的高可扩展NoSQL存储系统? SQL Server的优点在于它可以扩展,但将项目迁移到SQL表是一件噩梦,因为它是所有对象吗?

选项包括: 1.从内存中运行 2.序列化文档 3.转换为SQL 4.使用大型NoSQL数据存储

3 个答案:

答案 0 :(得分:3)

MongoDB是基于磁盘的,但它当然会从(大量)内存中受益。它是开源的,免费的,它使用分片和复制从一台机器扩展到数千台。

您可以download it在本地运行,也可以使用其中一个free hosted solutions

答案 1 :(得分:1)

过去几周我一直在处理同样的问题;这是我的观察:

  1. SQL Server可以正常工作,但扩展性不佳。我们测试了大约600GB文档的SQL Server数据库,让我们说事情变得非常缓慢。
  2. 或多或少同样适用于MySQL ......两者都不是真正用于文档......
  3. Hadoop / HDFS在Windows上似乎不成熟。虽然Microsoft提供了HDFS实现,但它仍处于RC阶段。从积极的方面来说,如果你正在为未来发展(假设生产1年),这似乎是一个不错的选择。
  4. Apache Cassandra似乎已经成熟。从积极的方面来说,实施非常简单;也就是说:它基本上只是一个带有一个分区器的普通分布式键值存储,其中键和值都是byte []。但是,实现的简单性也意味着您需要解决各种问题。如果你已经使用过它,你知道如果你需要实现Twitter它就很棒,但对于其他任何东西来说都太简单了。它很好地扩展,但说实话,我对性能印象不是很深刻。此外,我遇到了一些数据不一致/损坏,这并没有让我感到温暖......如果你使用Cassandra,我会亲自使用Aquiles作为客户端(因为你很容易遇到低级别的东西) - 但FluentCassandra也是一个很好的客户。
  5. MongoDB也很成熟。从积极的方面来说,它是活跃的,并且具有非常好且易于使用(与Cassandra不同)的C#客户端库。此外,虽然分片服务器在我的集群上已经崩溃了几次,但恢复总能解决问题(我对重启没有太多礼貌:-)而且我遇到的所有问题似乎已经在开发分支中解决了 - 所以我对此并不感到不舒服。 MongoDB和Cassandra缺乏的最重要的东西是对二级索引的支持。
  6. 所有这些解决方案都是基于磁盘的(例如磁盘上的持久性)。

    我查看了3-5的代码并在过去(大约6年前)实现了我自己的NoSQL解决方案,这些解决方案在过去几年中一直用于数据存储。说实话,MongoDB就是我自己实现它的方式。

    为了完整性:我还没有尝试过的唯一的东西就是CouchDB ......但坦率地说,我对MongoDB很满意,我甚至都不会打扰。

    -Stefan。

答案 2 :(得分:0)

在开源许可证(GPL或Apache)上提供了许多NoSQL选项。在搜索时,我偶然发现了这个listing,这对某些选项进行了功能比较。

如果您必须拥有一个受支持的C#客户端,那么您将受到更多限制,但我会查看MongoDB和Redis,因为我过去使用它们并取得了良好的效果。