From: Samofatov, N. <Nickolay@BroadViewSoftware.com> - 2004-04-11 18:15:29
|
Dear Mr.Starkey! Could you please explain the design goals of DFW, in particular, which work should be done in each phase. The problem is that nobody understands (and probably Borland too) the policy behind it and as the result simple cases work, but almost all complex cases produce corrupted databases.=20 My understanding of all this stuff is that there should be conceptually 4 phases: 0 - recovery, called when things go fishy 1 - check sanity, take locks, execute deferred constraints, etc. I.e. do anything that doesn't require modification of database. 2 - do deferred metadata work 3 - release locks, clean up Posted items should be executed sequentially in the phases. But this is my understanding of the idea, this is very far from what is happening inside the engine now. I've heard that early during engine development metadata dependencies formed tree, not multigraph like now. Most probably multiple DFW phases we can observe are the remains of that logic and it doesn't work now. Am I right? Nickolay Samofatov |