elein elein
Thu Aug 25 00:26:13 PDT 2005
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 at varlena.com        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.



More information about the Slony1-general mailing list