Производительность синхронизации PouchDB - PullRequest
0 голосов
/ 18 мая 2018

---------------- Мой оригинальный вопрос ниже был, потому что у меня было большое потребление памяти в моем мобильном приложении при запуске синхронизации --------------

Что касается производительности, то желательно иметь специальный документ, в котором говорится, нужна ли синхронизация, и выполнять репликацию только для этого документа.Например, имея следующий документ:

{ 
  _id: replication,
  replication_needed: true
}

И затем запустить репликацию

let rep = PouchDB.replicate(source, target, { live: true, doc_ids: ['replication'] })
.on('complete', function (info) {
  // If doc.replication == true then do a complete sync here
}

Или pouchdb / couchdb уже оптимизирован для этого?Мне интересно, если в большой базе данных не требуется время для поиска каждого изменения документа?

Ниже приведен снимок экрана вкладки производительности в Chrome при запуске синхронизации In performance tab here are all the requests done when a sync (with no doc update) is done

1 Ответ

0 голосов
/ 18 мая 2018

Протокол синхронизации не был источником моей проблемы.Благодаря @Flimzy я должен был прочитать документ, который подробно объясняет протокол: http://docs.couchdb.org/en/2.1.1/replication/protocol.html

Для тех, кто, возможно, столкнется с проблемой, связанной с производительностью с синхронизацией pouchDB (это была моя ситуация, мое приложение зависало наСинхронизация с базой данных, содержащей менее 100 документов, заставляет меня задуматься о том, была ли синхронизация эффективной), проблема заключалась в том, что у меня были вложения в некоторых документах (даже не больших, но нескольких изображений и видео), и, похоже, проблема с репликацией в couchdb.

Обратите внимание, что у меня есть веб-сайт с тысячами изображений и видео, и он работает хорошо, но не использует живую синхронизацию.

Я протестировал без вложения в своем мобильном приложении, и синхронизация выполненаочень плавно с 20 000 документов (более 50 МБ).Так что просто обрабатывайте медиа-файл другим способом, если вам нужна живая синхронизация.

...