2012-01-02 64 views
11

我正在使用基於Apple指定的SQLite「庫式」應用程序設計的核心數據的iCloud。儘管基本功能運行良好,但我擔心事務日誌以及它們的管理方式。管理核心數據iCloud事務日誌

雖然我的應用程序的數據庫不是很大,但它非常活躍,核心數據堆棧在應用程序正在使用時保存了很多次。我注意到,每創建一個核心數據保存,就會創建一個新的事務日誌。最終的結果是我有一個TON的事務日誌,它們佔用的空間比實際的數據庫多得多。

1)事務日誌是否會自動修剪/合併,或者它們會繼續無限增長,最終編號爲數千,並佔用很多兆字節?似乎手動清除事務日誌並重新創建.baseline歸檔文件的唯一方法是禁用然後重新啓用iCloud(刪除無處不在的容器並重新啓動)。但這顯然不是一個好的解決方案。

2)我目前的架構經常保存核心數據堆棧,即使對於細微的更改也是如此。一般來說,這是有道理的,因爲我的數據庫很小,並且經常保證數據庫文件始終保持最新。但是,考慮到事務日誌的上述問題,我想我應該儘量減少對數據庫的保存。也許在定時和/或應用過渡狀態下這樣做。

3)即使我通過減少保存數據庫的頻率來最小化事務日誌的數量,但這裏似乎存在問題,因爲隨着時間的推移,日誌的數量將繼續增加。最終,「事務日誌」設計的好處將成爲使用iCloud存儲量和添加新設備時的初始iCloud同步的負擔。

由於蘋果公司已經提供了有關iCloud的非常稀少的信息,並且幾乎沒有任何「最佳實踐」的形式,所以我很感謝來自社區的任何見解。

+1

我認爲這是一個很好的問題,但我建議你在Apple開發者論壇上提問這個問題,這樣你可以從工程師那裏得到實際設計和開發的反饋。他們可能會以錯誤報告/功能請求的形式要求您提供具體反饋。 – 2012-01-02 19:54:35

回答

3

我在這個問題上提出了一個雷達,並收到以下答覆。他們指出,它應該在iOS 5.1中正常工作,儘管我自己還沒有對此進行驗證。

澄清任何人可能會誤解以下內容。事務日誌將由核心數據內部進行清理。這不應該由應用程序本身執行。

工程同時提供了關於這個問題的下列反饋:

事務日誌是爲了所有的活動 同齡人有機會閱讀之後被刪除,他們超過 空間閾值消耗。之前的問題阻止了設備 正確地這樣做。