Оценка стратегии синхронизации основных данных с Dropbox

Этот вопрос касается использования Dropbox для синхронизации хранилища базовых данных sqlite между несколькими устройствами iOS. Рассмотрим эту договоренность:

Приложение использует хранилище Core Data, назовите егоlocal.sql, сохраненный в собственном приложенииNSDocumentDirectory

Приложение использует API-интерфейс синхронизации Dropbox для наблюдения определенного файла в Dropbox пользователя, скажем,user/myapp/synced.sql

Приложение наблюдаетNSManagedObjectContextDidSaveNotificationи при каждом сохранении копируетlocal.sql вuser/myapp/synced.sqlтем самым заменяя последний.

Когда API Dropbox уведомляет нас, чтоsynced.sql изменилось, мы делаем противоположность части 3 более или менее: разрушить стек основных данных, заменитьlocal.sql с участиемsynced.sqlи воссоздать стек основных данных. Пользователь видит «Синхронизацию» или «Загрузка» в пользовательском интерфейсе.

Вопросов:

A. Является ли эта договоренность чрезвычайно неэффективной в той степени, в которой ее следует полностью избегать? Что, если мы можем гарантировать, что база данных не является большой по размеру?

B. Способствует ли этот механизм повреждению файлов? Больше, чем синхронизация через deltas / changelogs? Если да, объясните, пожалуйста, почему?

Ответы на вопрос(1)

Ваш ответ на вопрос