Hello again,

One more issue:
        If the recovery process is done when no activity is executed on DB,
then everything is correct (REP will further send INSERTS to all 3 DB's in
cluster).
        I suppose this happens because in file pgrp/recovery.c, procedure
pgrecovery_loop() has now nothing in queue for this SWITCH branch:

        case RECOVERY_QUEUE_DATA_REQ : 
        /*
         * send all queries in queue
         */

        That is if "queue" here means "all queries that passed Rep while
recovery is in progress. Please correct me if I am wrong.

                                Regards,
                                Lia.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Lia Domide
Sent: 22 April 2008 09:13
To: [email protected]
Subject: Re: [Pgcluster-general] PgCluster recover with -U and lost rows

        Hi Mitani,

        I've just tested pgCluster1.9 (latest version from svn) with 3
machines. Each of them has a DB service, and I am currently using a single
LB and one REP.
        2 DB services are running, and the third comes online with -R. In
LB's log I can see the correct number of nodes in cluster:
 - 2 nodes in cluster.... 
 - 1 node available in cluster -- as one becomes master for recovery-- ....
 - 3 nodes in cluster....

        At the replication service, I can see the following log: 
Replicate_packet_send_internal() master is using for recovery.....
        This message appears even when then recovery process is completed.
As a consequence, the DB server that was used as master for recovery, and
the third service, just recovered, don't receive any new INSERT.
        If I restart the REP and the LB anything is ok again, but I need to
have "hot recovery", with no dead time in DB's usage.
        I've read that REP and LB need to be started after all DB, but this
leaves time when the DB is not available at all. 
        Can "always available" be acquired, somehow?

                                        Cheers,
                                        Lia.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: 19 April 2008 19:39
To: [email protected]
Subject: Re: [Pgcluster-general] PgCluster recover with -U and lost rows

Hi,

If you want to operate INSERT/UPDATE query during recovery action,
I recomend to use three or more cluster db in your system.
It is a requirement specification of dynamic recovery.

Regards,
------------
At.Mitani

-- original message --
From: Lia Domide<[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wed, 16 Apr 2008 11:22:34 +0300
Subject: [Pgcluster-general] PgCluster recover with -U and lost  rows

>Hello everybody,
>
> 
>
>I am currently testing pgCluster1.9rc5 with Ubuntu 7.04, and I encounter
the
>following problem:
>
> 
>
>I have 2 nodes, each having LB, DB and REP installed.
>
>One DB service is down, and one is still operating, taking INSERTs/SELECTs
>through LoadBalancers.
>
>I try to restart the second DB node with -U option. 
>
>This gives me a desired behavior: no blocking on the master DB, but in the
>same time, if a JDBC client is operating some INSERTS on the master
>database, missing rows are encounter.
>
> More exactly: LadBalancer says: 
>
> 
>
>2008-04-16 11:14:06 [7312] DEBUG:set_recovery():received no:1
>2008-04-16 11:14:06 [7312] DEBUG:set_recovery():add_db host:pg3 port:5432
>max:103
>2008-04-16 11:14:06 [7312] DEBUG:PGRset_status_on_cluster_tbl():host:pg3
>port:5432 max:32 use:2 status3
>2008-04-16 11:14:22 [7312] DEBUG:set_recovery():received no:3
>2008-04-16 11:14:22 [7312] DEBUG:set_recovery():stop_db host:pg2 port:5432
>max:103
>2008-04-16 11:14:22 [7312] DEBUG:PGRset_status_on_cluster_tbl():host:pg2
>port:5432 max:32 use:2 status3
>2008-04-16 11:14:41 [7312] DEBUG:set_recovery():received no:11
>2008-04-16 11:14:41 [7312] DEBUG:set_recovery():start_db host:pg2 port:5432
>max:103
>2008-04-16 11:14:41 [7312] DEBUG:PGRset_status_on_cluster_tbl():host:pg2
>port:5432 max:32 use:3 status1
>2008-04-16 11:14:56 [7312] DEBUG:set_recovery():received no:11
>2008-04-16 11:14:56 [7312] DEBUG:set_recovery():start_db host:pg3 port:5432
>max:103
>2008-04-16 11:14:56 [7312] DEBUG:PGRset_status_on_cluster_tbl():host:pg3
>port:5432 max:32 use:3 status1
>
> 
>
>Anything inserted between 2008-04-16 11:14:41 and 2008-04-16 11:14:56 is
not
>synchronized on the second DB node.
>
>More than that, between 2008-04-16 11:14:22 and 2008-04-16 11:14:41, even
>the master DB node is locked, for any insert/select.
>
>Is this a bug in pgcluster or is the default behaviour for the cluster, to
>have the DB locked by the time the synchronization is done?
>
> 
>
>                              Have a nice day,
>
>                                   Lia Domide
>
>
>_______________________________________________
>Pgcluster-general mailing list
>[email protected]
>http://pgfoundry.org/mailman/listinfo/pgcluster-general
>

_______________________________________________
Pgcluster-general mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgcluster-general


_______________________________________________
Pgcluster-general mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgcluster-general


_______________________________________________
Pgcluster-general mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgcluster-general

Reply via email to