couchdb - 在应用过滤器时提高 CouchDB 的 _changes 提要的速度

标签 couchdb

我在 CouchDB 的 _changes 上遇到了性能不佳的问题当有多个观察者时馈送。

我在笔记本电脑上的虚拟机中运行 CouchDB,多个 iOS 客户端正在使用 _changes?feed=continuous在网络上的数据库之一上,使用 CouchDB 的 HTTP API。随着客户端数量的增加,更改的速度会减慢到爬行速度。

注意我实际上是通过压缩响应的 Apache 反向代理与 CouchDB 通信的。

而且我还注意到,在对提要应用过滤器时,它通常会持续很长时间而不对 HTTP 流进行任何更改。几乎就像我在等待它检查一批不符合我的过滤器的文档一样。

有什么我可以启用或优化的设置可以帮助加快这一切吗?

最佳答案

当您意识到每次更改 couchdb 都要求查询服务器评估 filter() 函数时,延迟随着过滤的 _changes 提要的消费者数量的增加而增加也就不足为奇了。显然它不缓存结果,所以它必须为每个消费者执行这个操作。

您可以尝试删除过滤器参数并使用 include_docs=true 代替。这样,提要生产者就不必要求 View 服务器评估更改。这应该使它更具响应性。当然,这会显着增加提要中传输的数据量,并且您必须在客户端复制 filter() 函数逻辑。它并不理想,但我认为值得一试。

关于couchdb - 在应用过滤器时提高 CouchDB 的 _changes 提要的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19165078/

相关文章:

arrays - couchdb 映射/减少按日期过滤的多个键

couchdb - 有没有办法在两个数据库之间同步 couchdb 中的单个文档?

couchdb - 如何在 CouchDB 中执行与 "DISTINCT"等效的 SQL?

CouchDB 不复制设计文档

javascript - 如何干燥我的 CouchDB View ?

ruby-on-rails - 将resque连接到其他键值数据库而不是redis?

CouchDB 索引 $or 和 $and 不起作用,但 $and 起作用

api - CouchDB 作为 Restful API 层?

database - 直接从 couchdb 提供 json 文档

javascript - 如何在 CouchDB/Node.js 中使用 Cradle 删除键值对?