Управление журналами транзакций Core Data iCloud

Я использую iCloud с Core Data, основанную на дизайне приложения SQLite "Library-style", как указано Apple. Хотя базовая функциональность работает очень хорошо, меня беспокоят журналы транзакций и то, как они управляются".

Хотя база данных для моего приложения невелика, она очень активна, и стек основных данных сохраняется много раз во время работы приложения. Я заметил, что при каждом сохранении основных данных создается новый журнал транзакций. В итоге у меня есть ТОННА журналов транзакций, и они занимают гораздо больше места, чем реальная база данных.

1) Будут ли журналы транзакций когда-либо автоматически обрезаться/согласовываться, или они будут продолжать расти бесконечно, в конечном итоге исчисляясь тысячами и занимая много мегабайт? Кажется, что единственный способ вручную очистить журналы транзакций и воссоздать архив .baseline - это отключить, а затем снова включить iCloud (удалив контейнер ubiquity и начав все заново). Но это явно не лучшее решение.

2) Моя текущая архитектура часто сохраняет основной стек данных, даже при незначительных изменениях. В целом, это имеет смысл, поскольку моя база данных небольшая, и частое сохранение гарантирует, что файл базы данных всегда будет актуальным. Однако, учитывая вышеупомянутые проблемы с журналами транзакций, я думаю, что мне следует минимизировать количество сохранений в базе данных. Возможно, делать это по таймеру и/или в переходных состояниях приложения.

3) Даже если я минимизирую количество журналов транзакций, уменьшив частоту сохранения базы данных, здесь возникает проблема, поскольку количество журналов будет расти со временем. В конечном счете преимущество дизайна "журнала транзакций" превратится в бремя с точки зрения объема используемого хранилища iCloud и первоначальной синхронизации iCloud при добавлении нового устройства.

Поскольку Apple предоставила очень скудную информацию о iCloud и почти ничего в виде "лучших практик", я был бы признателен сообществу за любое мнение.

11
задан thevoid 2 January 2012 в 19:47
поделиться