デバイス間でのデータの同期 - .NET SDK
Atlas Device Sync は、クライアント アプリケーションと Atlas App Services バックエンドとの間でデータを自動的に同期します。 クライアント デバイスがオンラインになると、Sync はデバイスとバックエンド アプリの間でバックグラウンド スレッドのデータを非同期に同期します。
Flexible Sync
バックエンド アプリ構成にFlexible Syncを選択する場合、クライアント実装には クエリ可能なフィールドをクエリするためのサブスクリプションを含める必要があります。 Flexible Sync は、クライアント アプリケーションで維持するクエリ サブスクリプションに一致するデータを同期することで機能します。
サブスクライブセットには、一連のクエリが含まれます。 Realm Flexible Sync はそれらのクエリに一致するドキュメントを返します。ここでのユーザーにはドキュメントを読み取りまたは読み取りおよび書込み (read) および/または の適切な権限があります。 ドキュメントがクエリに一致するが、クライアントにドキュメントを読み取りまたは書き込みする権限がない場合、それらはクライアント アプリケーションに同期されません。
RQLまたは LINQ を使用してクエリを作成できます。
注意
Flexible Syncは、 RQLおよび SDK のクエリ エンジンで使用可能なすべてのクエリ演算子をサポートしていません。 詳細については、「 Flexible Sync RQL の制限」を参照してください。
サブスクリプション セットは、特定のタイプのRealm オブジェクトに基づいています。 Realm オブジェクトのタイプが多い場合は、複数のサブスクリプションを持つことができます。
クライアント アプリケーションで Flexible Sync を使用するには、Flexible Sync 構成で同期された Realm を開きます。 次に、サブスクリプションを管理して、同期するドキュメントを決定します。
Tip
Device Sync は、Flexible Sync と古いパーティションベースの同期の 2 つの同期モードをサポートしています。 App Services バックエンドでパーティションベースの同期が使用される場合は、「パーティションベースの同期 - .NET SDK 」を参照してください。
Flexible Sync を使用することをお勧めします。
パフォーマンス向上のためのグループ更新
サブスクリプションセットのすべての書込みトランザクション (write transaction) にはパフォーマンス コストがかかります。 セッション中に Realm オブジェクトを複数更新する必要がある場合は、すべての変更が完了するまで編集されたオブジェクトをメモリ内に保持することを検討してください。 これにより、すべての変更ではなく、完全で更新されたオブジェクトのみが Realm に書き込まれるため、同期のパフォーマンスが向上します。
一方向同期
Flexible Sync の特別なケースは、アプリが Atlas にデータを送信する必要があるが、更新を受信しない場合です。
このシナリオでは、 Data Ingestを使用してクライアント アプリケーションから Flexible Sync が有効化されている Atlas App Services アプリにデータをストリーミングすることで、同期パフォーマンスを最大化できます。