PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 30/04/2009 11:21:24

zeratool
Membre

Bucardo

Bonjour a tous,
Voila je suis confronté a un probleme critique:
J'ai 2 pc distant fesant parti de 2 reseaux locaux L1 et L2 et relié entre eux par une connection internet,sur chaqu'un d'entre eux une base de données mysql BDD1 et BDD2 sur lesquelles les données doivent etre identiques (replication bi-directionnelles) pour que les utilisateurs des reseaux locaux aient acces aux meme informations et lorsque les utilisateurs d'un reseaux modifie leur BDD il faut que cela aille modifier l'autre en temps réelle.Jusque la rien de tres compliquer (enfin fesable en tout cas)
Cependant j'aimerais que lorsque un des 2 reseaux soit coupé du monde,par exemple L1 les utilisateurs puissent continuer a acceder a leur base de données BDD1 et faire des modifications dessus.Idem pour l'autre reseau.
Donc pendant un temps T les 2 bases de données evoluent independament
Ensuite lorsque la connection est ré-établie il faudrait que les 2 bases de données se re-synchronise (sans maitre-esclave).
Est ce c'est fesable avec PG et BUCARDO (sans devoir faire des sauvegarde de requetes et les rejouer a la main) ou est ce que c'est fesable tout court.
Parcque imaginons que dans L1 un utilisateur suprime,au moment T1,une entrée E1 dans BDD1 qui etait en commune avec BBD2 puis a T2 dans L2 un utilisateur fait une relation avec E1 qui existe donc toujours chez lui mais plus chez BDD1.
Au moment de la synchronisation,sa va crasher.De plus la plupart des sytemes comme Bucardo ont besoin de prevenir une "autorité" des changements,donc en mode deconnecté de l exterieur je dout que cela marche
Ya't il une solution a mon probleme?
Cordialement,
Aymeric

Hors ligne

#2 30/04/2009 11:24:56

gleu
Administrateur

Re : Bucardo

Non, ça n'existe pas, quelque soit le moteur de base de données...


Guillaume.

Hors ligne

#3 30/04/2009 12:08:27

zeratool
Membre

Re : Bucardo

Sa a le merite d'etre clair.
Donc ma problematique n'a aucune solution en l'etat.Et si je dis que BDD1 est prioritaire est que lorsque BDD2 n'a plus de liens vers BDD1 alors seul la lecture est permise.Et lorsque le liens reviens BDD1 commit tout vers BDD2.C'est jouable ca?

Hors ligne

#4 30/04/2009 13:48:23

gleu
Administrateur

Re : Bucardo

Généralement, cette problématique n'existe pas en réalité. Ou alors il existe des moyens pour diminuer le problème qu'elle pose.

Et si je dis que BDD1 est prioritaire est que lorsque BDD2 n'a plus de liens vers BDD1 alors seul la lecture est permise.Et lorsque le liens reviens BDD1 commit tout vers BDD2.C'est jouable ca?

Avec Bucardo, aucune idée. Avec Slony, oui, ça fonctionne ainsi.


Guillaume.

Hors ligne

#5 30/04/2009 14:03:55

zeratool
Membre

Re : Bucardo

Bah elle existe pas en realité...si la preuve:
Une application web de gestion dans une entreprise qui doit etre accessible en local dans l entreprise et par  exterieur par des nomades.Les nomades se connectent sur un serveur web disant,les gars en local sur un serveur web local (dans le reseaux de l entreprise) l'application doit etre accessible meme si la connection entre le serveur disant et le serveur local est coupée...
Je vais voir ce que propose Slony!! Merci wink

Dernière modification par zeratool (30/04/2009 14:04:57)

Hors ligne

#6 30/04/2009 14:46:22

gleu
Administrateur

Re : Bucardo

Une application web de gestion dans une entreprise qui doit etre accessible en local dans l entreprise et par  exterieur par des nomades.Les nomades se connectent sur un serveur web disant,les gars en local sur un serveur web local (dans le reseaux de l entreprise) l'application doit etre accessible meme si la connection entre le serveur disant et le serveur local est coupée...

J'aimerais bien savoir quand un gars à distance ne peut pas se connecter sur le serveur de l'entreprise. Il n'a pas de wifi ? y'a la 3G. Il n'y a pas de 3G non plus ? dans ce cas, il faut une solution applicative. Car aucun moteur de bases de données, à ma connaissance, ne pourra faire une fusion des deux bases de données. Et comment le pourrait-il ? ça dépend vraiment des données et de l'applicatif.


Guillaume.

Hors ligne

#7 30/04/2009 15:08:30

Marc Cousin
Membre

Re : Bucardo

Il n'y a effectivement pas à ma connaissance non plus de solution simple à ce problème.
On rencontre d'ailleurs les mêmes problématiques avec les bases de données propriétaires comme Oracle (la multi master replication marche, mais on peut évidemment comme partout se retrouver avec des modifications en conflit...), on peut aussi penser aux conflits des solutions de réplication de messagerie à la lotus notes ...

Pour ce genre de problématique, je ne sais pas si une solution de réplication brute est vraiment la réponse. Peut être vaut il mieux faire la synchro de façon logicielle entre les bases ? (c'est la seule façon d'avoir une chance d'éviter les conflits). C'est le genre de choses que j'ai déjà vu faire via des triggers (pour détecter les modifications), du message queuing (advanced queuing sous Oracle, PgQ sous Postgresql doit pouvoir marcher), et du code maison (PL ou autre) pour réintégrer les modifications intelligemment sur la base distante, en limitant les conflits, puisque ce code a une meilleure vision du fonctionnel de l'application.

Mais sans plus d'informations, difficile à dire : il y a des applications qui ne s'y prêtent de toutes façons pas du tout.


Marc.

Hors ligne

Pied de page des forums