Subject RE: [Firebird-Architect] WAL and JOURNAL
Author Samofatov, Nickolay
Hi, Jim!

> Perhaps Nickolay's clever side shadow would help, but the
> shock to a long running readonly transation when a couple of hours
page
> changed suddenly appeared would be interesting.

This one is expected and is interesting. I'll need to analyse page
reading patterns in a number of places.

> Another tricky problem
> is how to handle the case where a batch update failed, which is
critical
> case when mirroring is used for disaster recovery. I suppose a log of
> page pre-images from the update would do the trick, but it adds
another
> piece of complexity and further complicates the problem of using the
> mirror for queries, reports, etc.

I address this problem in the code which does merge of off-side delta
file.

> There are other ways address the problem. Netfrastructure has a
client
> whose application does four or five node cascading replication. The
> replication is at application level but eased by a number of features,
> including:
>
> 1. Multi-table triggers to maintain a local change log table
> 2. A sequence (generator) mechanism that produces network unique
values
> 3. A server to server service based on a exchange of serialized
> object clusters
> 4. An internal scheduler to kick off change propogation
>
> The way they use the system is a primary server that handles web
traffic
> (all clients are browsers), the second (belt) and third (suspenders)
> servers are hot backups, and the fourth server is forty miles way to
> protect against any less than a 10 megaton blast. The belt and
> suspender servers, however, also do batch reporting and accounting
> wrapups that get replicated upstream as well.

You may not believe me, but I had this stuff working on a number or
platforms (Oracle, Firebird, MSSQL) and it is widely deployed now in
Russia and CIS. I can even send you a source of Java multi-master
replication server and clients if you want to look at it. Tricky part of
implementation was to read a list of active transactions and sequence
ID's when building replication delta in snapshot mode. That is doable
for Oracle and I added needed functionality into Firebird core too.

I did presentation on this subject a year ago on Firebird Conference.

Logical replication is generally a nice thing, but it is a way too slow
for a number of uses.

> Jim Starkey

Nickolay