【问题标题】:pouchdb replicate from couchdb : very slowpouchdb 从 couchdb 复制:非常慢
【发布时间】:2014-12-09 18:39:43
【问题描述】:

我的 couchDB 中有一个 ~10k 条目(~30Mo,无附件)数据库。

使用 Pouchdb 浏览器端,从沙发上复制时,确实需要一段时间才能完成......

令我惊讶的是,我的沙发在此期间收到的请求数量(数千!,我猜和文件一样多)——这正常吗?

有没有办法“批量”这些请求并通常加速复制过程?

谢谢。

【问题讨论】:

  • 与您的问题不严格相关,但明确使用 websql 作为本地适配器对我的应用程序的速度产生了很大影响:new PouchDB('name', { adapter: 'websql' })

标签: couchdb pouchdb


【解决方案1】:

我假设您正在使用 PouchDB.replicate 函数

在这种情况下,请尝试修改 batch_size 选项:

PouchDB.replicate('mydb', 'http://localhost:5984/mydb', {batch_size: large_val})

其中large_val 高于默认值100。该值越高,复制速度应该越快,但它会使用更多的内存,所以要小心。

API reference

编辑:还要注意选项batches_limit,默认为10。这是任何时候可以并行运行的请求数,因此内存中的文档数等于batch_size * batches_limit

【讨论】:

  • 假设我有 10k 个条目,如果我将 bacth_size 设置为 10000,我是否只有 1 个请求?
  • @abernier 就是这样。尽量减少像这样的数据库复制所花费的时间的最佳方法之一是尽量减少请求的数量,因此请尽可能安全设置它。这 10000 个条目中的每一个都将同时加载到内存中,因此请确保您要上传到的设备有足够的内存。请注意我的回答中对batches_limit 的修改。
猜你喜欢
  • 1970-01-01
  • 2013-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2015-10-28
  • 1970-01-01
相关资源
最近更新 更多