Subject | Re: [Firebird-Architect] Metadata cache |
---|---|
Author | Alex Peshkov |
Post date | 2008-08-11T11:17:07Z |
On Sunday 10 August 2008 07:44, Alexandre Benson Smith wrote:
(concurrency) transaction. There may be some special modes (like stop and
rollback any transaction, using old copy of a modified object), but IMO
_normal_ behavior should be like you say. No matter what object do we work
with - procedure, table, generator or UDF.
But I'm afraid we do not have enough resources to rework (and debug) cache so
much in 3.0, where we need to make it thread-safe and try to avoid most
bad 'features'.
Hopefully sometimes later it will be implemented.
> Hi !Alexandre, this is certainly ideal and correct behavior for RepeatableRead
>
> Please, at first excuse my ignorance...
>
> I think in the ideal world any kind of metadata changes should be
> allowed no matter if the objects is in use or not. And I think this is
> the desired goal (and wich I like it to be).
>
> When I read "versoined metadata" I think something exactly as
> transaction isolation as one would get from "normal" records.
>
> Lets suppose:
>
> T1: Create Procedure P1
> T1 Commit
> T2: Starts
> T2 Execute Procedure P1
> T3 Starts
> T3 alter procedure P1
> T3 Commit
> T2 execute procedure P1 (version created by T1)
> T2 Commit
> T4 starts
> T4 execute prcoedure P1 (version created by T3)
>
> This would be the normal behaviour if the BLR would be read from system
> tables every time (in a non read commited transaction), so the problem
> lies on how to handle it on Metadata Cache.
(concurrency) transaction. There may be some special modes (like stop and
rollback any transaction, using old copy of a modified object), but IMO
_normal_ behavior should be like you say. No matter what object do we work
with - procedure, table, generator or UDF.
But I'm afraid we do not have enough resources to rework (and debug) cache so
much in 3.0, where we need to make it thread-safe and try to avoid most
bad 'features'.
Hopefully sometimes later it will be implemented.