Sounds an aweful lot like RAID level one :-) Why would a DB system need to
do what RAID already does quite well?
> Sorry, should've at least described 'shadowing'. A shadow is a
> synchronous page-level (I think) mirror file. That is, when you open a
> database /disk1/dbname.fdb and then issue a:
>
> > CREATE SHADOW 1 '/disk2/dbname.fdb';
> > CREATE SHADOW 2 '/disk3/dbname.fdb';
>
> then all 3 files will be kept synchronized at all times. Each subsequent
> page write will go to all 3 files (if any of the write fails, the
> transaction fails, so it's not unlike a synchronous replication).
>
> Now suppose /disk1 fails, one of the shadow can be configured to
> immediately take over as the master database, without any down time. We
> can then add /disk4/dbname.fdb, for instance, to become a new shadow.
>
> Alternatively, when a shadow fails, IB/Firebird can refuse further
> transactions until there is another shadow coming up, so the database is
> shadowed all the time.