Subject Re[2]: [Firebird-devel] HEAD branch and ODS changes
Author Nickolay Samofatov
Hello, Ann !

> I'm not ignoring you or this issue. Your difference files seem much
> like shadow files and they can be added on the fly and use clumplets.
> I'm sure you've got some real problem, but I don't understand it at the
> moment. Perhaps you could describe the situation on the architecture list?

Ok, I can explain. I'm not sure that what shadowing code is doing is a
safe practice.

1) I'm not sure that re-reading shadow set information from system
tables is a safe operation in the middle of CCH_handoff sequence, for
example. Deadlocks and race conditions may be possible (reading data
from tables may generate GC activity, for example - this is surely
unsafe page access pattern)

2) SDW does tricky things and this tricks are not directly applicable
in backup locking code. For example, physical page write is not
synchronized with shadow set modification directly (this way author
worked around CCH recursion I reported in my previous letter) and there
is no way to know when other processes finish writing previous version
of shadow set. This is ok for shadowing, but will not go for backup purposes.

Anyway, new backup technology already works in my local tree and should be
safe. And its code is pretty straightforward.

> Ann

Nickolay Samofatov