From: Ann W. Harrison Date: November 11 2008 8:58pm Subject: Re: Question on The 3 phases Of Recovery List-Archive: http://lists.mysql.com/falcon/170 Message-Id: <4919F1F9.3020009@mysql.com> MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset=ISO-8859-1 Content-Transfer-Encoding: 7BIT 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