Re: [mail] Re: Big 7.4 items - Replication - Mailing list pgsql-hackers
From | Al Sutton |
---|---|
Subject | Re: [mail] Re: Big 7.4 items - Replication |
Date | |
Msg-id | 002a01c2a423$050f3ad0$0100a8c0@cloud Whole thread Raw |
In response to | Re: Big 7.4 items - Replication (Bruce Momjian <pgman@candle.pha.pa.us>) |
Responses |
Re: [MLIST] Re: [mail] Re: Big 7.4 items - Replication
|
List | pgsql-hackers |
Many thanks for the explanation. Could you explain to me where the order or the writeset for the following scenario; If a tranasction takes 50ms to reach one database from another, for a specific data element (called X), the following timeline occurs at 0ms, T1(X) is written to system A. at 10ms, T2(X) is written to system B. Where T1(X) and T2(X) conflict. My concern is that if the Group Communication Daemon (gcd) is operating on each database, a successful result for T1(X) will returned to the client talking to database A because T2(X) has not reached it, and thus no conflict is known about, and a sucessful result is returned to the client submitting T2(X) to database B because it is not aware of T1(X). This would mean that the two clients beleive bothe T1(X) and T2(X) completed succesfully, yet they can not due to the conflict. Thanks, Al. ----- Original Message ----- From: "Darren Johnson" <darren@up.hrcoxmail.com> To: "Al Sutton" <al@alsutton.com> Cc: "Bruce Momjian" <pgman@candle.pha.pa.us>; "Jan Wieck" <JanWieck@Yahoo.com>; <shridhar_daithankar@persistent.co.in>; "PostgreSQL-development" <pgsql-hackers@postgresql.org> Sent: Saturday, December 14, 2002 6:48 PM Subject: Re: [mail] Re: [HACKERS] Big 7.4 items - Replication > > > > > > > >b) The Group Communication blob will consist of a number of processes which > >need to talk to all of the others to interrogate them for changes which may > >conflict with the current write that being handled and then issue the > >transaction response. This is basically the two phase commit solution with > >phases moved into the group communication process. > > > >I can see the possibility of using solution b and having less group > >communication processes than databases as attempt to simplify things, but > >this would mean the loss of a number of databases if the machine running the > >group communication process for the set of databases is lost. > > > The group communication system doesn't just run on one system. For > postgres-r using spread > there is actually a spread daemon that runs on each database server. It > has nothing to do with > detecting the conflicts. Its job is to deliver messages in a total > order for writesets or simple order > for commits, aborts, joins, etc. > > The detection of conflicts will be done at the database level, by a > backend processes. The basic > concept is "if all databases get the writesets (changes) in the exact > same order, apply them in a > consistent order, avoid conflicts, then one copy serialization is > achieved. (one copy of the database > replicated across all databases in the replica) > > I hope that explains the group communication system's responsibility. > > Darren > > > > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html
pgsql-hackers by date: