> 10.05.2014 15:30, Vlad Khorsun wrote:
>> Here you wrong: if blob contents was not changed by update, there will
>> be no new blob.
>
> Yes, and in this case blob cannot be garbage collected because next record
> version
> refers to it. No need to analyze whole versions chain (collect staying list)
> - two these
> versions are enough for decision making. (Actually, there must be three
> versions for
> analyze, but one of them may be missed if going version is on the end of
> chain.)
It is wrong for "lost update" scenario, which is allowed for read-committed
transactions:
att1: start tx1, insert version1 (blob1), commit tx1
att1: start tx2 (read-committed), read version1 (blob1)
att2: start tx4, update version2 (blob2), commit tx4
att1: update version3 (blob1), commit tx2
Here we have chain of versions:
version3 (tx2, blob1) -> version2 (tx4, blob2) -> version1 (tx1, blob1)
Regards,
Vlad
------------------------------------------------------------------------------
Is your legacy SCM system holding you back? Join Perforce May 7 to find out:
• 3 signs your SCM is hindering your productivity
• Requirements for releasing software faster
• Expert tips and advice for migrating your SCM now
http://p.sf.net/sfu/perforce
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel