HP3000-L Archives

August 2001, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Gibson Nichols <[log in to unmask]>
Reply To:
Gibson Nichols <[log in to unmask]>
Date:
Mon, 6 Aug 2001 12:30:22 -0600
Content-Type:
text/plain
Parts/Attachments:
text/plain (85 lines)
I've seen six broken chains(different systems all on 6.0) in the past twelve
months.


"Gavin Scott" <[log in to unmask]> wrote in message
news:9kfbe90j4n@enews2.newsguy.com...
> > A programmer asked me if doing an ABORTJOB on a program will
> > cause a broken chain in an Image database.
>
> It's amazing how much superstition exists surrounding this kind of stuff,
> and how many unnecessary rituals and sacrifices are performed daily to
> appease the mythical pantheon of data integrity gods.
>
> "Real" broken chains are (supposed to be) *impossible* to achieve with
Image
> on MPE/iX, no matter what application programs do, or how they are
aborted,
> or how many times the system crashes!
>
> The Transaction Manager (XM) provides absolute protection against internal
> database inconsistencies, as long as there are no bugs in the system and
as
> long as the hardware is not corrupting data.  No action or configuration
is
> required on the part of the user.
>
> Logical inconsistencies (order detail without an associated order header
> record for example) can easily be created by aborting an application
that's
> in the middle of performing a database update that spans multiple records.
> Of course Image doesn't care whether your data is logically correct or
not,
> that's the job of application programmers.
>
> Using DBBEGIN/DBEND will have no affect on logical integrity whatsoever,
> unless you actually run DBRECOV to roll forward or roll back the database
to
> a consistent point *every time* you abort a program or suffer any other
> failure.
>
> By using the DBXBEGIN/DBXEND "XM style" transactions, you can extend
Image's
> guarantee of physical integrity to the logical integrity of your database.
> The system will ensure that no matter what happens, either all changes
> inside a DBX transaction will be applied, or none of them will be.  Of
> course it's still possible to use this feature incorrectly (locking
> strategies are non-trivial as you need to lock the data that you *read* as
> well as that which you intend to write in many cases).
>
> MPE/V introduced a feature called Intrinsic Level Recovery (ILR) which
could
> (and still can be) enabled for a database.  This was sort of a mini-XM
which
> forced updates to disk each time an Intrinsic call completed in order to
> ensure structural integrity of the database in the face of system
failures.
>
> I believe that on MPE/iX, enabling ILR for a database does something
really
> nasty like forcing an XM post after every update intrinsic call, which is
a
> serious performance problem.  ILR is no longer required on MPE/iX as XM
will
> ensure integrity without it.  With ILR you might be guaranteed that every
> committed transaction will survive a system abort, whereas without it XM
> might end up having to rollback the last fraction of a second's worth of
> transactions.  For almost any application this difference is negligible.
Do
> not turn ILR on!
>
> There are more complexities if your application performs transactions that
> affect multiple databases or databases and non-database files.  It's
> possible to do multi-database Image transactions, but only if the
databases
> reside on the same volume-set I believe.
>
> G.
>
> * To join/leave the list, search archives, change list settings, *
> * etc., please visit http://raven.utc.edu/archives/hp3000-l.html *
>

* To join/leave the list, search archives, change list settings, *
* etc., please visit http://raven.utc.edu/archives/hp3000-l.html *

ATOM RSS1 RSS2