2012-01-02 7 views
11

アップルが指定したSQLiteの "Library-style"アプリケーションデザインに基づいて、コアデータを持つiCloudを使用しています。基本的な機能はうまく機能しますが、トランザクションログとその管理方法について心配しています。コアデータの管理iCloudトランザクションログ

私のアプリケーションのデータベースは大きくありませんが、非常にアクティブであり、アプリケーションの使用中にコアデータスタックが何度も保存されます。私はの新しいトランザクションログがすべてコアデータセーブに作成されていることに気付きました。最終的には、トランザクションログがたくさんあり、実際のデータベースよりもはるかに多くのスペースを占有しています。

1)トランザクションログは自動的にプルーニング/統合されますか、無期限に成長し、最終的には数千のメガバイトを占めますか?トランザクションログを手動で消去して.baselineアーカイブを再作成する唯一の方法は、iCloudを無効にしてから再度有効にすることです(ubiquityコンテナを削除して新鮮にする)。しかし、これは明らかに良い解決策ではありません。

2)私の現在のアーキテクチャは、わずかな変更であってもコアデータスタックを頻繁に節約します。一般に、これは私のデータベースが小さく、保存によってはデータベースファイルが常に最新であることが保証されるので意味があります。しかし、上記のトランザクションログの問題を考えると、おそらくデータベースへの保存を最小限に抑えるべきだと私は考えています。タイムリーなやりとりやアプリの移行の状態でこれを行うかもしれません。

3)データベースを保存する頻度を減らしてトランザクションログの数を最小限に抑えたとしても、ログは時間の経過と共に増え続けるため、ここで問題が発生しているようです。最終的には、「トランザクションログ」デザインのメリットは、使用されるiCloudストレージの容量と新しいデバイスが追加されるときの最初のiCloud同期の点で負担になります。

アップル社はiCloudに関する情報をほとんど提供しておらず、「ベストプラクティス」の形ではほとんど何も提供していないため、コミュニティからの洞察をいただければ幸いです。

+1

私はこれは良い質問だと思いますが、Appleのデベロッパーフォーラムでもこの質問をすることをお勧めします。実際にこれを設計して開発しているエンジニアからのフィードバックを得ることができます。バグレポート/機能要求の形で具体的なフィードバックを求める場合があります。 –

答えて

3

私はこの問題に関してレーダーを提出し、次の応答を受けました。彼らはiOS 5.1で正しく動作するはずだとはっきり言いましたが、まだ私自身はこれを確認していません。

以下を誤解する可能性のある人物を明確にしました。トランザクションログは、コアデータ内部でクリーンアップされます。これは、アプリケーション自体によって実行されるべきものではありません。

トランザクションログは、すべてのアクティブ ピアがそれらを読む機会があった、と彼らは スペースのしきい値を超えた後に削除されることを意図している:エンジニアリングは、この問題に関して、次のフィードバックを提供してい

消費される。デバイス が正常に動作しないという前の問題がありました。

関連する問題