Subject Re: [IB-Architect] Journaling support?
Author Ann Harrison
At 05:31 PM 3/24/00 +1100, Jan Mikkelsen wrote:

>Assuming that a sweep hasn't taken place since the point in time you want to
>recreate, it should be possible to create a read only view of the database
>as it was at a given point in time by only considering deltas up to a
>particular transaction number. I don't think any major architectural
>modification would be required, but I still haven't seen the source. Ann?

Remember that garbage collection is a continuous process - not just a
sweep issue. So no, unless you've inhibited garbage collection entirely,
you can't reliably reconstruct past time. And I really really really
don't recommend inhibiting garbage collection.

>Are timestamps stored with transaction numbers? Ie: Can you find out what
>the highest transaction number was at a given point in time?


>I assume that blobs are released when their referencing row is swept, and so
>would also be handled. Is this correct? I guess this also one of the
>drawbacks of the architecture: No in place editing of a large objects makes
>any change, no matter how minor, expensive.

Yes blobs are released when unreferenced. In theory, you can keep
modifying a blob and never tie up more than 2x the blob space, since
the old space is reused. Not so expensive, since the before image
has to be kept somewhere for rollback.

>Another feature which might be useful is point in time recovery from a
>backup. The administrative sequence would then be: perform backup, run
>sweep. Of course, the backup process would need to store the full history
>of each row, not just the latest version. That would probably have major
>implications for the implementation of gbak.

No kidding.