Re: dbmirror revisions - Mailing list pgsql-general

From Bruce Momjian
Subject Re: dbmirror revisions
Date
Msg-id 200308162320.h7GNKNP10902@candle.pha.pa.us
Whole thread Raw
In response to dbmirror revisions  ("Ed L." <pgsql@bluepolka.net>)
Responses Re: dbmirror revisions  ("Ed L." <pgsql@bluepolka.net>)
List pgsql-general
Ed, where are you on these dbmirror improvements?

---------------------------------------------------------------------------

Ed L. wrote:
> I've been modifying dbmirror and wanted to offer my changes to anyone that
> cared to experiment, FWIW.  My effort is ongoing, the docs aren't perfect,
> I make no claims of production readiness, and testing of this latest
> version has been minimal, so I strongly advise you to conduct your own
> thorough testing before considering a production deployment.  That said,
> it's a significantly improved solution for our async master-slave needs,
> with a few caveats below, and shouldn't be too hard to setup.
>
> There are enough changes that I would hardly consider this a patch,  closer
> to an overhaul, since I've removed files, renamed others, and added new
> files.  Among the changes I've made so far:
>
>     * Added script for easier setup of many tables/dbs/slaves;
>     * Added initial support for multiple master replicating distinct data to a
> single slave;
>     * Added batching to minimize load on master and net traffic.  You can grab
> a configurable number of updates to replicate before hitting the master
> again.
>
>     * Added port specification;
>     * Wrapped all replication in transactions;
>         * Bulletproofed against downed master or slave;
>         * Started modularization of DB access layer, added some error
> handling;
>         * Added a number of config vars for sync delays, etc;
>         * Eliminated bug in transaction ordering for replay.  Updates cannot
> be replicated in the order of the transactions (see archives for discussion
> of why).
>
>         * Eliminated need for clear_pending.pl by making dbmirror.pl
> self-clearing;
>         * Collasped schema into 1 queue table for performance;
>         * Changed sequence ID column types to BIGINT for 64-bit sequence;
>         * Added reconnection handling for robustness;
>         * Added local tracking of last seq_id to help with recovery
> robustness;
>         * Added master/slave compatibility checking;
>         * Enabled slave setup during production service so master does not
> have to stop serving.
>         * Renamed tables to minimize namespace conflicts;
>         * Added lots of logging/debug messages;
>
>     * Maybe a few other things I've forgotten...
>
>
> AFAICS, there are still at least a few major drawbacks to this approach:
>
>     *  DML statements are not replicated (same for eRServer, AFAIK).
>
>     *  SEQUENCE objects are not handled;  nextval() will not be replicated, so
> sequence objects (and serial columns) between master and slave can easily
> get out of sync.  I wonder if eRServer has this same issue?
>
>     *  Mass updates/deletes/inserts of 5000 rows with a single SQL command on
> the master will result in 5000 individual trigger-firings, and 5000
> individual replication inserts on the slave.  Rumor has it eRServer's
> snapshot gets around this problem.
>
> The code is here:
>
>     http://bluepolka.net/dbmirror/dbmirror-20030403-1605.tar.gz
>
> Ed
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

pgsql-general by date:

Previous
From: Karsten Hilbert
Date:
Subject: Re: Resolved: PostGreSQL - Accessing It
Next
From: "HansH"
Date:
Subject: Re: Dreamweaver