Re: Peer to peer replication of Postgresql databases - Mailing list pgsql-hackers

From
Subject Re: Peer to peer replication of Postgresql databases
Date
Msg-id 20021011175133.UQJB7661.lakecmmtao02.coxmail.com@lakecmmtab02
Whole thread Raw
In response to Peer to peer replication of Postgresql databases  (Anuradha Ratnaweera <anuradha@lklug.pdn.ac.lk>)
List pgsql-hackers
For give me for responding to the beginning of this thread, but my 
comments only apply to this post.

> already looked at ongoing work), in a peer to peer manner.  The goal
> is to achive `nearly complete fault tolerence' by replicating data.

A worthy goal indeed!

> - Postmasters are running on different computers on a networked cluster.
>   Their data areas are identical at the beginning and recide on local
>   storage devices.
> 
> - Each postmaster is aware that they are a part of a cluster and they
>   can communicate with each other, send multicast requests and look for
>   each other's presence (like heartbeat in linux-ha project).

These first two point on extending postmaster for a network cluster
and HA could be a bit tricky.  Have you considered using a group
communication system like spread.org that already has the network
cluster and heartbeat built in?


> - There are two types of write queries.  Postmasters use seperate
>   communication channels for each.  One is the sequencial channel which
>   carries writes whose order is important, and the non-sequencial
>   channel carries write queries whose order is not important.

This puts the burden of determining weather a conflict can happen on
the application or user.  Application design could become a bit tricky.
If you plan to use the non-sequential channel in an application, you
would need to make sure there are never any possible conflicts.

> 
> - When a frontend process sends non-sequencial write query to a backend,
>   it is directly written to the local data area and a multicast is
>   sent (preferably asynchronously) to the other postmasters who will
>   also update their respective local areas.

What are you planning to send? (SQL, parsed statements, or tuples)


> - When a sequencial-write query is requested, the corresponding
>   postmaster informs a main-postmaster (more about in the next point),
>   waits for his acknowledgement, and proceeds the same way as the
>   non-sequencial write.

This would make the main postmaster handle all the concurrency control for
the replicated system.  Are you thinking a two phased commit protocol here?

> 
>   Or maybe we can completely ignore the main-postmaster concept and
>   let the clients broadcast a request to obtain locks etc.

If each system can obtain locks, how will you handle deadlocks across 
system boundaries?


> 
> Suggessions and critisisms are welcome.
> 

Have you taken a look at Postgres-R or the pg-replicaiton project.  The goals 
are the same as yours, and the approach is some what similar.   There is
a mailing to discuss different approaches, and if you like what we are doing
you can certainly participate in the development.

http://gborg.postgresql.org/project/pgreplication/projdisplay.php

Regards

Darren




pgsql-hackers by date:

Previous
From: snpe
Date:
Subject: Re: [JDBC] Out of memory error on huge resultset
Next
From: Daniele Orlandi
Date:
Subject: Client-side merge & string sorting