Hi,
Since I cannot find a good Falcon internals documentation and cannot make
use of sparse comments,
I fallback to Chris' blog that explains Falcon recovery (Chris, much thanks
for putting docu on the Web:)):
Phase I: Take Inventory, Establish State
- Determine transaction states
- Determine object states (track state transitions, record final state)
- Determine the last checkpointed record (prior objects guaranteed on disk)
Phase II: Physical Allocation
- Allocate and release required pages and sections
- Track object "incarnation" and state--update active objects with last
incarnation
Phase III: Logical Application
- Apply data and index changes (avoid reallocating pages in use)
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?
Vlad