Subject | Trying to understand the end_backup method of jrd/nbak.cpp |
---|---|
Author | r_vowles |
Post date | 2006-11-14T10:08:56Z |
At the start of the method, there is a line:
// Lock header page first to prevent possible deadlock
Is this the header page of the database or something else?
Later it says (before it has actually done any work to stuff the
deltas back into the database):
// Here comes the dirty work. We need to reapply all changes from
difference file to database
// Merge process should not inhibit normal operations.
I can't see how the merge can take place without locking the database
for the short time it is operating, but the source code is a bit too
obscure to follow. Anyone know the answer?
Thanks
Richard
// Lock header page first to prevent possible deadlock
Is this the header page of the database or something else?
Later it says (before it has actually done any work to stuff the
deltas back into the database):
// Here comes the dirty work. We need to reapply all changes from
difference file to database
// Merge process should not inhibit normal operations.
I can't see how the merge can take place without locking the database
for the short time it is operating, but the source code is a bit too
obscure to follow. Anyone know the answer?
Thanks
Richard