|
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
|
|
|
| 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
|
|
|
|
|