Thread: Re: Batch replication ordering (was Re: [GENERAL] 32/64-bit

Re: Batch replication ordering (was Re: [GENERAL] 32/64-bit

From
"Ed L."
Date:
On Saturday April 12 2003 2:06, Steven Singer wrote:
>
> How you query things on the master and when you commit things on the
> slave aren't all that related.  As far as I can tell your batch version
> of the query using the temporary table will give you the same ordering of
> the updates as the current dbmirror implementation.    As your reading
> the result of the second query(that gives data to make the SQL statements
> to send to the slave) you can decide when to do a comit on teh slave.
> Reading the discussion it sounds like your talking about sending this
> batch of 1000 transactions to teh slave in 1 transaction.  Why not issue
> a commit on the slave everytime the xid changes?  From the slaves point
> of view the behaviour is the smae as in teh current dbmirror(the original
> transactions are preserved with an approximation of the ordering based on
> the last update/insert in each transaction)

Agreed.  I can take little/no credit for originality.  Just tried to batch
your algorithm.

> I still don't see why you would want to only do 1 commit per group on the
> slave though.

No, no, I don't have that in mind.  Seems I've miscommunicated that idea a
bit.  What I would like is to commit on the slave whenever I feel like it,
in batches or 1 or 10 or 100 or 203 transactions, and to retrieve
transactions from the master in whatever batchsize I wish as well.
Committing after every new xid on the slave is one among many options,
nothing wrong with that necessarily, unless you wanted to update the master
bookkeeping on every new xid as well, in which case it would defeat my
purpose in the master batch.

Ed


Re: Batch replication ordering (was Re: [GENERAL] 32/64-bit

From
Steven Singer
Date:
On Sat, 12 Apr 2003, Ed L. wrote:

> On Saturday April 12 2003 2:06, Steven Singer wrote:

>
> nothing wrong with that necessarily, unless you wanted to update the master
> bookkeeping on every new xid as well, in which case it would defeat my
> purpose in the master batch.

Why do you need to update the master after every commit on the slave?  If
your storing the last seqid sent to the slave on that slave(you would have
to update this during every transaction on the slave but I don't see this
as a big deal) and you use that value as the authoratative value for
deciding what next to send to the slave.

You would have to periodically update the master to tell it that a
tranaction can be removed form the replication_queue but this can be done
periodically(every x transactions).   If dbmirror goes down in between a
commit on the slave and the master being updated then the transactions
will stay on the master in the queue until dbmirror comes back up at which
point it will see from the slave that the transactions have been sent and
they don't need to be resent.  Then the master can be updated so those
rows can be cleaned from the queue.




>
> Ed
>

--
Steven Singer                                       ssinger@navtechinc.com
Dispatch Systems                            Phone:  519-747-1170 ext 282
Navtech Systems Support Inc.                AFTN:   CYYZXNSX SITA: YYZNSCR
Waterloo, Ontario                           ARINC:  YKFNSCR