Hello, all.

The database scripts Evergreen currently ships with are not replication-friendly for use with Slony-I, a well-known PostgreSQL replication tool used in larger Evergreen consortia (specifically, I know it is used at Georgia PINES and BC Sitka). Specifically, Slony stalls replication if you issue the TRUNCATE command, which is included in reporter schema as part of reporter.enable_materialized_simple_record_trigger(), and occasionally as part of upgrade scripts, particularly the soon-to-be-released 1.6.0.3-1.6.0.4 upgrade script for money.materialized_billable_xact_summary.

For any table $foo being emptied, the best practice is to issue
  DELETE FROM {$foo};
before issuing
  TRUNCATE {$foo};

which cleans up the issue -- which has to do with TRUNCATE not being issued to the slave servers, and thus causing primary key collisions when trying to rebuild.

If there's general support for making the default configuration Slony-friendly, I can submit a simple patch that issues appropriate DELETE commands before any occurence of TRUNCATE. The downside is that DELETE is significantly slower than TRUNCATE for the majority of Evergreen libraries who do not require the scripts to be Slony-friendly.

Thoughts?

Brandon

=============================================
Brandon W. Uhlman
Lillooet, BC   V0K 1V0

[email protected]

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Reply via email to