List:Falcon Storage Engine« Previous MessageNext Message »
From:Vladislav Vaintroub Date:November 11 2008 9:19pm
Subject:RE: Question on The 3 phases Of Recovery
View as plain text  
Ann, thanks a lot for the answer.
I'm still on tablespaces recovery  doing my investigations. I want to put a
something more robust and predictable then exceptions I used in my patch in
the phase 1.
In theory, phase 1 should have no access to physical structures , e.g
tablespaces , incarnations are bumped, nothing else happens.With your
explanation, I think *all* reallocPage should be done then on phase2 and all
allocPage if any should be done in redo, is this correct?  I could put
ASSERTs for that

If this is so, I can populate droppedTablespaces bitmap during phase1, and
during phase2 or redo skip all records that reference non-existing
tablespaces. It is exactly what I have done in the patch, but this time just
without any exception handling, as we do not expect access to the
tablespaces in the phase1.

There is a reason I do not like exceptions anymore. With exceptions, I could
skip a potentially valid record referencing tablespace that should be
created at the end, but that is not yet there in the phase1 of recovery.

> -----Original Message-----
> From: Ann.Harrison@stripped [mailto:Ann.Harrison@stripped] On Behalf Of
> Ann W. Harrison
> Sent: Tuesday, November 11, 2008 9:59 PM
> To: Vladislav Vaintroub
> Cc: 'FalconDev'
> Subject: Re: Question on The 3 phases Of Recovery
> Vlad,
> >
> Sorry this is late - we've discussed this on Friday.
> > In case I'm investigating right now I've got following  backtrace
> > 	PageInventoryPage::reallocPage
> > 	Dbb::reallocPage
> >  	SerialLog::bumpPageIncarnation
> > 	SRLSectionPage::pass1
> >
> >
> > How does this correspond to the description of Phase I? Should not
> > reallocPages be done first in Phase II?
> If memory serves, the resolution was to be certain that nothing in
> Phase II allocates new pages.  It shouldn't, but all the pages that
> are reallocated must be done before any new allocation is done, or
> an object that must be on a certain page may find that the page is
> already in use for something else.
> To be absolutely clear, there are two different operations:
> reallocPage which reestablishes the use of a specific page for
> an object (e.g. index, section, record locator) that must be
> on a specific page, and new allocation which takes whatever
> page is free and uses it for data or blobs.  The two must be
> in separate phases, or they step on each other.
> If there are new allocations in Phase II, then either they should
> be deferred to Phase III (probably hard) or we need a phase II.V
> that does those new allocations.
> Sorry again if this is a rehash of an old discussion -
> Best,
> Ann
> --
> Falcon Storage Engine Mailing List
> For list archives:
> To unsubscribe:

Question on The 3 phases Of RecoveryVladislav Vaintroub7 Nov
  • RE: Question on The 3 phases Of RecoveryVladislav Vaintroub7 Nov
  • Re: Question on The 3 phases Of RecoveryAnn W. Harrison11 Nov
    • RE: Question on The 3 phases Of RecoveryVladislav Vaintroub11 Nov
      • Re: Question on The 3 phases Of RecoveryAnn W. Harrison11 Nov