2017-01-29 3 views
2

多くのスレッドや問題で検索しましたが、その答えが見つかりませんでした。 Realm Objects Serverを使用してクライアントがサーバーに接続すると、DB全体がすべてのクライアントで同期されますか?クライアント間のレルムの同期

つまり、数百万のオブジェクト、リレーションシップなどを持つパブリックDBを使用している場合、すべてのクライアントにはデバイス全体のDBのコピーがありますか?

私はRealm同期機能が必要ですが、どのように同期するのかわかりません。同期は増分ですか?すべてのユーザーは、デバイスがクエリを行うために必要なオブジェクトを持っていますか?

私のアプリは1時間ごとにサイズを増やし、Realmの同期機能は私にとっては完璧ですが、DBのサイズとクライアントの多くのデータの同期方法に疑問があります。

ありがとうございます!

答えて

3

現在のところ、はい。パブリック・レルムは、すべてのクライアントのデバイスに完全に同期しています。クライアントのデバイスが初めて接続されたときにリスト全体が最初にダウンロードされ、その時点から追加の変更がサーバーで作成された時点で同期されます。

つまり、すべてのRealmファイルは圧縮されています(つまり空の割り当て済み領域がすべて削除され、すべての文字列が圧縮されます)。その後、クライアントにダウンロードされる前にgzipで圧縮されます。大きなバイナリブロブを含んでいるので、非常に大きなファイルであっても非常に速く落ちるはずです。

Realm Mobile Platformに部分レプリケーションを追加することは、ロードマップ上にあります。これにより、単一のレルムファイルの一部のみを特定のクライアントに同期させることができます。しかし、これがいつ公表されるかの具体的な計画はありません。

当面は、サーバー上のデータのマスターリストを維持し、各ユーザーのプライベートレルムに必要なデータのみをコピーするのが最も簡単な方法です。ただし、カスタムロジックをサーバー上で実行する必要があるため、Realm Mobile PlatformのProfessionalまたはEnterpriseエディションが必要になります。

+0

ありがとうございます!私は、主な問題は1〜2年のデータ検索の後に来ると思うし、DBのサイズが大きくなり過ぎると思う。私は多くのデータを持つテストインスタンスを試してみます。 – mhergon

+0

DBの予想サイズを計算する方法はありますか? – mhergon

+0

心配はいりません!残念ながら現時点ではありません。サイズは、コンテンツのデータタイプによって大きく異なる場合があります。がんばろう!テストが期待どおりに行かない場合は、Realm GitHubで問題を提出して、詳細を調べることができます。 – TiM

関連する問題