【问题标题】:Which schemaless datastores provide good performance?哪些无模式数据存储提供了良好的性能?
【发布时间】:2009-07-29 21:00:39
【问题描述】:

我最近编写了一个使用couchdb 的网络应用程序。我喜欢 couchdb,它适合这个应用程序——它有很多动态行为,只是直接从 couchdb 中提取 JSON。能够通过浏览器上传图像非常好,并且可以轻松地对文档数据进行调整。复制还使部署变得轻而易举,因为该应用是一个 couchapp,部署所需的只是复制到生产服务器。

但是对于我正在考虑的新应用程序(想想博客类型的东西),我想要良好的性能,这是我认为 couchdb 不擅长的一个领域。该应用程序将主要面向读取(我估计 90%读取到 10% 写入)。

哪些数据存储在单服务器方案中提供最佳性能?我很想听听人们在这方面的经历......

【问题讨论】:

  • 我不确定 map/reduce 与您的问题有什么关系。 mapreduce 是一个用于在大型数据集上并行运行许多作业的框架。 (en.wikipedia.org/wiki/MapReduce)
  • 实际上我认为您可能想到的是无模式数据存储
  • 我眼角的余光,好像有人在问“人妖表演”!幼稚,我知道...
  • 我很好奇为什么您认为 Couch 不适合以阅读为主的场景?你的经历是怎样得出这个结论的?我看到的大多数抱怨是:Couch 的读取性能不佳。
  • 我用 couchdb 替换了 Ruby/MySQL 组合。我没有做过任何硬数字性能测试,但整体“感觉”肯定更慢。请注意,这是一个 couchapp,不仅仅是 couchdb,mochiweb 也在堆栈中。

标签: performance couchdb nosql mapreduce


【解决方案1】:

我认为MongoDB 开始看起来像是无模式数据存储性能方面的领跑者。

我们目前正在评估它以存储范围从 10Kb 到 50Mb 的二进制对象,即使在普通硬件上,它的性能也给我留下了深刻的印象。

【讨论】:

    【解决方案2】:

    如果您担心主要是读取性能,为什么不在 couchdb 前面放置一个varnish 代理?我在 varnish 中使用了几个自定义配置来告诉它不要实际查询 couchdb 中的缓存对象,尽管 couchdb 指定了必须验证,然后在 _changes 上有一个带有活动 HTTP GET 的脚本,它使用来自 _changes 的数据以显式清除更改来自清漆的条目。

    作为一个加清漆,您可以进行 URL 重写,这是我需要的。大多数其他解决方案都涉及运行 apache 或 ngnix 之类的东西,只是为了重写 couchdb 的 URL。

    【讨论】:

    • 很好的建议。我会调查清漆!
    猜你喜欢
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2011-05-10
    • 2015-07-05
    相关资源
    最近更新 更多