Subject Re: [Firebird-Architect] FB2, read-commited and blobs
Author Ann W. Harrison
Vlad Horsun wrote:
>
>>3) Create a new lock series for blob garbage collection - oldest_blob
>>for example.
>
>
> As i understand this new lock series have the same meaning for
> read-comited transactions as old lock series for snapshot transactions ?

Not exactly. Read-committed transactions only block the garbage
collection of record versions that contain blobs. In fact, record
versions with blobs can be garbage collected if a newer version of the
record shares the same blob id. So, it's not exactly parallel.

> If yes - may be it is better to name it using 'read-commited' words ?
> Are we have symmetry here with snapshot\read-commited transactions
> and new\old lock series ?

Again, not exactly parallel.
>
>
>>4) At startup, read-committed transactions also take a lock in the blob
>>garbage collection series, identified by transaction id and containing
>>the current oldest-active as the data portion.
>
>
> What value snapshot transactions will put in this lock ? Zero ? Or its
> will not take this lock at all ?

Snapshot transactions won't take this lock at all.

> If latter - why read-commited transactions
> take usual transaction lock ?

Because we need that lock to wait on when there's an update conflict.


Regards,


Ann