Выбор ответа Middle Офлайн и синхронизация обновлено

Инкрементальная синхронизация

Вопрос

Как синхронизировать с сервера список из 50 000 записей, где за день меняется сотня?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Дельта-синхронизация: клиент шлёт курсор последней синхронизации, сервер отдаёт изменения и удаления. Курсор (монотонная версия, токен синхронизации) позволяет получать только изменения после него.

Варианты ответа

  1. Каждый раз скачивать все 50 000 записей сжатым архивом и заменять ими локальную базу
  2. Скачивать по одной записи по id, сверяя локальную версию каждой с серверной
  3. Синхронизировать полностью только при переустановке, а дальше полагаться на push-уведомления о каждом изменении записи
  4. Дельта-синхронизация: клиент шлёт курсор последней синхронизации, сервер отдаёт изменения и удаленияправильный ответ

Разбор

Курсор (монотонная версия, токен синхронизации) позволяет получать только изменения после него. Важно передавать и удаления (tombstones), иначе удалённые на сервере записи останутся у клиента. Полная выгрузка тратит трафик и батарею, поштучные запросы создают тысячи вызовов.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.