[Info-vax] Database Journaling, Failover (was: Re: C... the only winning move is not to play...)
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Thu Feb 13 14:38:53 EST 2014
On 2014-02-13 01:17:10 +0000, David Froble said:
> 1) Journaling or logging of all data updates, with the capability of
> rebuilding the updates from a static backup and the journals.
RMS Journaling on VMS would be one approach. That can be licensed for
and available to applications using the RMS record or RMS block I/O
calls. That's usually all based on RMS journaling with the DECdtm
transaction management.
> 2) In the event a port away from VMS must be done, a method to have
> duplicate real time copies of the data, one in the current DAS data
> files, and another in one of the free / open database products. This
> would allow porting in small pieces while the applications continued to
> be used, and updated.
That's conceptually simple, but tends to get gnarly around failure
scenarios. When one write goes through successfully but the parallel
write fails, you're skewed. Next step is to figure out what to do, and
either back out the error, fail out, or recover. This whether the
failing write was aimed at the primary or some secondary database, or
at the journal. Things get more interesting when a secondary error
arises in the recovery path.
If you're planning on running write I/O via both the existing VMS path
and the new database path in parallel, that makes the design much more
complex. (That may end up using something like ZeroMQ
<http://zeromq.org> across hosts, or database high availability or
replication features
<http://dev.mysql.com/doc/refman/5.7/en/replication.html>
<http://www.postgresql.org/docs/current/interactive/high-availability.html>.)
If you're rolling your own, there are various papers on database
reliability and recovery, too; tools and techniques and algorithms.
It's usually easier to use one of the existing databases than to write
one. Unfortunately, swapping out an existing database within a typical
large and accreted application environment is seldom a small and
isolated project; those database tendrils seem to get everywhere.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list