Home > Archive > Slony1 PostgreSQL Replication > August 2005 > Basic Testing for Slony-1









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Basic Testing for Slony-1
elein

2005-08-24, 8:26 pm

In light of the recently raised bug with "failover
and the third node" (upcoming book) my grouching
has made others suggest I be more, ahem, productive.

I propose a test venue that will test a set of
basic things. If you are interested in helping out
please contact me or see me on IRC.

Here are the requirements, from the top of my head:

1. Machine with willing maintainer

2. Slony production release and option to apply
patches and upgrade easily.

3. Postgresql 7.4 and 8.0.

4. Some database with a data source that will enable
us to see via the data when a change was replicated.
A timestamp somewhere should do.

The following scenarios should be scripted, given the
above. This is not mathematically complete of all operations
in all possibilities but should be a good solid test, nevertheless.
Additions are welcome.

Each scenario should have shell and slonik scripts pre written
so the tests and verifications can be run automagically.

1. Postgres 8.0. 3 nodes replicating table set originating
on 10, cascading to 30: 10->20->30.

* Initialize from scratch.
* Verify replicas 20 and 30 are up and running and seeing new data.

2. Same as 1, plus Add a Node 40 from Postgres 7.4.

* Initialize and add node 40, subscribing to table set 1 from node 20.
* Verify Node 40 is up and running and seeing new data

2.1

* Drop node 40.
* Verify node 40 db is clean.
* Verify all references in cluster schemas on other nodes have no reference to Node 40.

3. Same as 1, plus Move Set. Move it Back.

* Move Set from Origin on 10 to Origin 20.
* Change source of data to point to 20.
* Verify Node 10 cannot be updated.
* Verify Node 20 can be updated.
* Verify replication is live on Node 30.

3.1

* Same thing as above, backward.

4. Same as 1, plus Failover

* Failover from Node 10 to Node 20.
* Change source of data from 10 to 20.
* Verify Node 20 is accepting data
* Verify replication is live on Node 30 (Known Bug)(Fix Bug)

4.1

* Reconstruct Node 10 from scratch.
* Add Node 10 subscribing to set 1 originating on 20
* Verify replication on Node 10

4.2

* Move Set 1 from Node 20 to Node 10.
* Change source of data from 20 to 10
* Verify Node 10 is accepting data
* Verify Replication is live on Node 20
* Verify Replication is live on Node 30

5. Same as 1, plus execute DDL, add a table with a sequence.

* Write a DDL script to create a new table and something else.
* Execute the DDL via Node 10
* Verify new table and change on Nodes 20 and 30.

5.1

* Create set 2 containing new table and sequence,
* Subscribe Nodes 20 and 30 to set 2.
* Verify replication on Nodes 20 and 30.
* Merge Sets 1 and 2 onto Node 10.
* Verify replication on Nodes 20 and 30.


--elein

--------------------------------------------------------------
elein- JkRegAVoul5BDgjK7y7T
UQ@public.gmane.org Varlena, LLC www.varlena.com
(510)655-2584(o) (510)543-6079(c)

PostgreSQL Consulting, Support & Training

PostgreSQL General Bits http://www.varlena.com/GeneralBits/
--------------------------------------------------------------
AIM: varlenallc Yahoo: AElein Skype: varlenallc
--------------------------------------------------------------
I have always depended on the [QA] of strangers.
Darcy Buskermolen

2005-08-24, 8:26 pm

On Wednesday 24 August 2005 16:25, elein wrote:
> In light of the recently raised bug with "failover
> and the third node" (upcoming book) my grouching
> has made others suggest I be more, ahem, productive.
>
> I propose a test venue that will test a set of
> basic things. If you are interested in helping out
> please contact me or see me on IRC.


Elein, before we reinvent the wheel, I think the test framework I have nearly
finnished (time has been in ultra short supply these last few weeks or is
that months now...) latest version is available @
http://www.dbitech.ca/slony/slony-tests.tar.gz can easily be extended to run
the tests that you are after and report on them, it at the moment only has 1
test in it. This test suite has been tested on FreeBSD, Solaris, Linux and
win32, the only prereq is bash. I'll see what i can do about clearing up
some time this evening to try creating a more complex test, like a failover
within the framework and see if it can infact do it.

>
> Here are the requirements, from the top of my head:
>
> 1. Machine with willing maintainer
>
> 2. Slony production release and option to apply
> patches and upgrade easily.
>
> 3. Postgresql 7.4 and 8.0.
>
> 4. Some database with a data source that will enable
> us to see via the data when a change was replicated.
> A timestamp somewhere should do.
>
> The following scenarios should be scripted, given the
> above. This is not mathematically complete of all operations
> in all possibilities but should be a good solid test, nevertheless.
> Additions are welcome.
>
> Each scenario should have shell and slonik scripts pre written
> so the tests and verifications can be run automagically.
>
> 1. Postgres 8.0. 3 nodes replicating table set originating
> on 10, cascading to 30: 10->20->30.
>
> * Initialize from scratch.
> * Verify replicas 20 and 30 are up and running and seeing new data.
>
> 2. Same as 1, plus Add a Node 40 from Postgres 7.4.
>
> * Initialize and add node 40, subscribing to table set 1 from node 20.
> * Verify Node 40 is up and running and seeing new data
>
> 2.1
>
> * Drop node 40.
> * Verify node 40 db is clean.
> * Verify all references in cluster schemas on other nodes have no
> reference to Node 40.
>
> 3. Same as 1, plus Move Set. Move it Back.
>
> * Move Set from Origin on 10 to Origin 20.
> * Change source of data to point to 20.
> * Verify Node 10 cannot be updated.
> * Verify Node 20 can be updated.
> * Verify replication is live on Node 30.
>
> 3.1
>
> * Same thing as above, backward.
>
> 4. Same as 1, plus Failover
>
> * Failover from Node 10 to Node 20.
> * Change source of data from 10 to 20.
> * Verify Node 20 is accepting data
> * Verify replication is live on Node 30 (Known Bug)(Fix Bug)
>
> 4.1
>
> * Reconstruct Node 10 from scratch.
> * Add Node 10 subscribing to set 1 originating on 20
> * Verify replication on Node 10
>
> 4.2
>
> * Move Set 1 from Node 20 to Node 10.
> * Change source of data from 20 to 10
> * Verify Node 10 is accepting data
> * Verify Replication is live on Node 20
> * Verify Replication is live on Node 30
>
> 5. Same as 1, plus execute DDL, add a table with a sequence.
>
> * Write a DDL script to create a new table and something else.
> * Execute the DDL via Node 10
> * Verify new table and change on Nodes 20 and 30.
>
> 5.1
>
> * Create set 2 containing new table and sequence,
> * Subscribe Nodes 20 and 30 to set 2.
> * Verify replication on Nodes 20 and 30.
> * Merge Sets 1 and 2 onto Node 10.
> * Verify replication on Nodes 20 and 30.
>
>
> --elein
>
> --------------------------------------------------------------
> elein- JkRegAVoul5BDgjK7y7T
UQ@public.gmane.org Varlena, LLC www.varlena.com
> (510)655-2584(o) (510)543-6079(c)
>
> PostgreSQL Consulting, Support & Training
>
> PostgreSQL General Bits http://www.varlena.com/GeneralBits/
> --------------------------------------------------------------
> AIM: varlenallc Yahoo: AElein Skype: varlenallc
> --------------------------------------------------------------
> I have always depended on the [QA] of strangers.
>
> ____________________
____________________
_______
> Slony1-general mailing list
> Slony1-general- AuKwsB3Fm+ugFIWk8tvy
RWD2FQJk+8+b@public.gmane.org
> http://gborg.postgresql.org/mailman.../slony1-general


--
Darcy Buskermolen
Wavefire Technologies Corp.

http://www.wavefire.com
ph: 250.717.0200
fx: 250.763.1759
Sponsored Links





Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive | Programming forum archive

Copyright 2008 droptable.com