2017-09-20 3 views
0

Supposons que j'ai une base de données synchronisée avec 100 000 objets.Que se passe-t-il lorsque vous répétez la modification de données sur un domaine synchronisé?

Ces données sont répétées changées et écrasées, disons 1000 fois chacune.

Si j'ai une copie de la base de données sur mon appareil avant que l'un des changements ne soit effectué.

1a. Combien d'objets sont réellement transférés sur l'appareil après le changement de 1k? Cela affecte l'utilisation de la bande passante, ainsi que l'heure de mise à jour initiale.

1b. Comment l'utilisation de la base de données STORAGE sera-t-elle affectée?

2a. Si, après 1k changements, les données finissent par le même que l'état initial, quel type de stockage est requis sur le serveur, et

2b. Combien d'espace est probablement nécessaire sur le client?

2c. Existe-t-il un moyen de compacter le domaine sur le serveur ou sur l'appareil?

Répondre

2

La synchronisation de données de domaine transfère des opérations (mises à jour) plutôt que des enregistrements entiers. Cela signifie que la quantité de données qui seront transférées est proportionnelle au nombre de modifications apportées à une base de données. Inversement, le stockage utilisé sur les clients est juste proportionnel au nombre d'objets existants (et non, disons, au nombre de mises à jour reçues par chaque objet). Pour votre question (2a), l'espace de stockage requis sur le serveur avec Realm Object Server 1.x est proportionnel au nombre total de mises à jour dans la base de données. Le compactage de journaux est une fonctionnalité que nous espérons introduire avec Realm Object Server 2.0, qui sera bientôt disponible.

La quantité réelle d'espace requise sur le serveur et le client dépend entièrement des modifications exactes apportées à la base de données. Par exemple, l'ajout et la modification d'un grand nombre d'objets binaires volumineux auront un impact beaucoup plus important sur les besoins de stockage que de petites mises à jour de champs de données réguliers sur des objets. En ce qui concerne le compactage, Realm a pris en charge le compactage de base de données sur le client pendant un certain temps (consultez la documentation du SDK pour votre plate-forme préférée sur la façon de procéder). Sur le serveur, il existe des fonctionnalités similaires, mais nous sommes toujours en train de découvrir comment mieux exposer cela au développeur.

+1

Selon la documentation, le compactage de la base de données côté client n'est disponible que pour les domaines autonomes, et non pour le domaine synchronisé. Ou n'est-ce plus le cas? –

+0

@GordonHo C'est toujours le cas. –