2014-10-14 4 views
6

У меня есть запись на 10k (~ 30Mo, без приложения) на моем кушетке.pouchdb replicate from couchdb: очень медленно

Использование Pouchdb стороны браузера, при репликации с дивана, она занимает очень много времени, чтобы закончить ...

Что удивило меня количество запросов моего диван получает во время него (тысяч !, я думаю, так как многие как документы) - это нормально?

Есть ли способ «насытить» эти запросы и вообще ускорить процесс репликации?

спасибо.

+0

Не строго связанный с вашим вопросом, но явно использующий websql, поскольку локальный адаптер сильно изменил скорость моих приложений: новый PouchDB ('name', {adapter: 'websql}} – datashaman

ответ

6

Я предполагаю, что вы используете функцию PouchDB.replicate

В этом случае попробуйте изменить параметр batch_size:

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

где large_val выше, чем значение по умолчанию 100. Чем выше значение, тем быстрее должна выполняться репликация, но чем больше памяти он будет использовать, поэтому будьте осторожны.

См API reference

Edit: Также обратите внимание на параметр batches_limit, который по умолчанию 10. Это количество запросов может выполняться параллельно в любое время, поэтому количество документов в памяти равно batch_size * batches_limit.

+0

Предполагая, что мои 10k записей, если я установил bacth_size в 10000, у меня будет только 1 запрос? – abernier

+0

@abernier Это идея. Один из лучших способов свести к минимуму время, требуемое для репликации базы данных, как это, заключается в том, чтобы свести к минимуму количество запросов, поэтому ставьте их так же высоко, как вы ** безопасно ** можете. Каждый из этих 10000 записей будет загружен в память одновременно, поэтому сделайте загружаемое устройство достаточным объемом памяти. Обратите внимание на редактирование в моем ответе, ссылаясь на 'batches_limit'. –

Смежные вопросы