Subject Re: [Firebird-Architect] Metadata locking policy and caching
Author Alex Peshkov
On Wednesday 06 August 2008 19:23, Adriano dos Santos Fernandes wrote:

> Versioned metadata may (who knows, before investigation of how this all
> will work with relations, check constraints, computed expressions, etc?)
> but don't solve metadata integrity checks. When you're compiling a
> object that uses old version of dependencies, fresh dependencies may not
> be compatible (number of procedure parameters, for example) anymore. I
> see no good way to solve it without locks.

Yes, but this locks can be held for smaller (much smaller!) timeframe.

What about fixing cache state at the end of DDL transaction? And creating
version not according to number of DDL transaction, but according to current
transaction ID when DDL is complete? I agree that it is not like VIO works,
but at least looks like predictable behaviour. If we accept this, looks like
I know an easy way to make new data available to DDL transaction itself. But
this for sure makes mentioned before 'data postfixing' problem even worse.

> I want to say that locks may be done on columns
> too. But may create a lot of lock objects.

Agreed. And same for procedure parameters, I think.
Therefore it's specially interesting to have them for as small period as
possible.

> Current behavior doesn't have too much
> logic. :-)

Current logic is really too "smart" :)