Thread: Multi-Master Replication

Multi-Master Replication

From
Elielson Fontanezi
Date:
Hi Bruce and admin list users!
 
    I am in the need of using some multi-master replication for postgres.
    I´ve been searching the internet two days so far and I can´t find
anything about it rather than Postgres-R, pgReplication and so on.
All projects I saw use master-slave techniques which do not satisfy
my needs, once I am looking for real load balancing among databases
servers.
 
    Have you seen anything about it before?
    Can you give some clues?
   
    Can someone help me?
 
   
 
   
 
                        >\\\!/<   55 11 5080 9258
                        !_"""_!   Elielson Fontanezi
                        (O) (o)   PRODAM
--------------------oOOO--(_)--OOOo-----------------------
              Success usually comes to those
              who are too busy to be looking for it.
                 oooo0          0oooo
----------------(    )----------(    )--------------------
                 \  (            )  /
                  \_/            \_/
Attachment

Re: Multi-Master Replication

From
Enrico Weigelt
Date:
* Elielson Fontanezi <ElielsonF@prodam.sp.gov.br> [2004-03-02 15:47:13 -0300]:

Hi,

>        I am in the need of using some multi-master replication for
>    postgres.

I've implemented something in php. All my applications do their database
access layer, where they only touch whole objects (the structure of
each object class is modeled in class descriptors) - so it is quite
easily solvable.

But this works only under certain conditions:

* all objects have an inode_id (as cluster-wide oid) and mtime field.
* on create (in sql speaking: insert) a new inode_id is allocated
  from the inode_id sequence. this sequences has to be adjusted
  carefully so each cluster node gets its own id space.
* on each write access, the mtime has to be set to the current time.
* from time to time (i.e. once per minute) a pollout script runs
  over the object classes and fetches out the new records (by timestamp).
  they are the posted to the other nodes.
  (not necessarily to all - you can define sync neighbours on each node)


Well, this is no general solution, but under some conditions
(which are btw design rules for all my database applications),
this works quite well.


regards,
--
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT services

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact@metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
   -- DSL-Zugang ab 0 Euro. -- statische IP -- UUCP -- Hosting --
---------------------------------------------------------------------