Synchronisation

La base de données peut être utilisée sur plusieurs appareils non connectées puis synchronisée quand une connexion est disponible.

Réplica

Les différentes copies de la BDD deviennent différentes dés la 1ère modification sur un des appareils. Ce ne sont donc plus des copies mais des réplicas ayant chacun subi des modifications, ajouts et suppressions de données.

Dossier de synchronisation

Les réplicats peuvent propager leurs modifications, ajouts et suppressions de données aux autres réplicats, via un dossier de synchronisation qui peut être :

  • Une URL pointant vers un dossier sur un serveur FTPS.
  • Un dossier sur le réseau local ou sur une clé USB.

FADAcore ne fourni pas de dossier de synchronisation. C'est à toi d'en fournir un et de l'indiquer dans le paramétrage de la synchronisation.

Clé de synchronisation

Un champ fulid ( Fada Unique Line Identifier) est ajouté à toutes les tables des applications FADA.
Ce champ contient un identifiant unique généré aléatoirement (64 bits). Ce champ n'est pas modifiable et permet de rapprocher les lignes de différents réplicas, même si leur clé primaire a été modifiée sur certaines répliques.

Risque d'erreur

Le fulid est toujours utilisé avec le nom de table. Pour une table de 1 million de lignes (y compris les lignes supprimées) le risque d'avoir 2 identifiants uniques est de 1 chance sur 37 millions.

Fonctionnement

Lors d'une synchronisation toutes les tables sont comparées, ligne par ligne et champ par champ. Si une valeur est différente sur les 2 réplicas les règles de synchronisation permettent de déterminer qu'elle doit être la valeur consservée.

La règle par défaut est Newer : la valeur la plus récente gagne.

Exemple

Des données sont créées sur l'appareil A :
1ère synchronisation (simple copie de la BDD vers le dossier de synchronisation) :
Installation de l'application FADA sur l'appareil B, avec une copie des données :
Modifications de données indépendantes sur les 2 appareils :

Appareil A : ajout d'une ligne et modification d'un champ.
Appareil B : suppression d'une ligne.

L'appreil A se synchronise :
L'appareil B se synchronise (jamais exactement en même temps) :
 

Règles de synchronisation

Chaque champ (colonne) à sa propre règle de synchronisation, définie par l'application FADA. Les règles ne sont pas modifiables par l'utilisateurice de l'application.

La règle applicable à un champ s'affiche dans l'infobulle du titre de colonne. 

Modification et suppression concurrentes

Une ligne peut être modifiée par A et supprimée par B :
Si la modification est postérieure à la suppression, la modification gagne :

La ligne supprimée par B est recréé par A avec sa modification, peu importe l'ordre des synchronisations (A avant ou après B).

Si la suppression est postérieure à la modification, la suppression gagne :

La ligne supprimée par B est aussi supprimée chez A.