[squeak-dev] The Inbox: Monticello-mva.667.mcz
Milan Vavra
vavra_milan at yahoo.com
Fri Apr 7 20:37:34 UTC 2017
Chris Muller wrote:
>> Chris Muller wrote:
>>> I haven't looked at it, but would like to ask if you've tested when
>>> you have multiple .mcd's in succession? Like, if you have,
>>>
>>> Kernel-cmm.100.mcz
>>> Kernel-cmm.101.mcd
>>> Kernel-cmm.102.mcd
>>>
>>> Does 102 need to have ancestry at least back to 101 (or, 100?) still
>>> stored?
>>>
>> Assuming we have
>> Kernel-cmm.100.mcz
>> Kernel-cmm.101(cmm.100).mcd
>> Kernel-cmm.102(cmm.101).mcd
>> then yes, 102 needs to have ancestry going back to 101. But no further.
>> No need to go beyond 101. Ancestry from 101 onward can be trimmed.
>> So when writing
>> Kernel-cmm.102(cmm.101).mcd
>> ancestry of Kernel-cmm.101 can be trimmed. In the file we are saving, not
>> in the system, that's why we need a #veryDeepCopy of the ancestry before
>> we trim it.
>
>So it reduces redundancy and disk utilization, with the trade-off
>being that it must re-open the original .mcz in order to get that
>ancestry back into memory.
That is correct. See below.
>
>That read should be done eagerly, otherwise the system would interpret
>the empty ancestry as simply no ancestry.
>
Good point.
The original mcz is being opened. Albeit indirectly and behind the
scenes.
The code
MCRepositoryGroup default versionWithInfo: baseInfo
basically does that.
What it does is ask the system: 'in any of the repositories known to you,
look for a version with this UUID and return it to me'.
We then attach its ancestors to our newly read version info at points where
the base version info is referenced.
>> And when reading
>> Kernel-cmm.102(cmm.101).mcd
>> ancestry of Kernel-cmm.101 can be re-attached so that Kernel-cmm.102's
>> version info looks the same as it did when we were writting the
>> Kernel-cmm.102(cmm.101).mcd before the trimming.
>
>You said, "can be", but I think it should do it eagerly to avoid
>unintended consequences. If we don't open the original .mcz eagerly,
>then I think we would need to terminate the ancestry with some kind of
>"reference stub" instead of an empty Array.
>
I said "can be" but what I really meant is "is being re-attached".
Best Regards,
Milan Vavra
--
View this message in context: http://forum.world.st/The-Inbox-Monticello-mva-667-mcz-tp4941466p4941583.html
Sent from the Squeak - Dev mailing list archive at Nabble.com.
More information about the Squeak-dev
mailing list
|