Hi,

I'm not particulary knowledgeable of inner workings of Iliad or voyage. But
I think you should have a look at ghostproxy
http://rmod.lille.inria.fr/web/pier/software/Marea/GhostProxies.

The idea being that after storing your objects you should keep proxies to
them in the image. These proxies would replace your objects and have
knowledge of how to retrieve them from voyage. Something like that is done
by the marea project. http://rmod.lille.inria.fr/web/pier/software/Marea

Cheers
On Feb 8, 2013 11:48 AM, "Bernat Romagosa" <[email protected]>
wrote:

> Hi!
>
> We've been trying to migrate the data of our Iliad webapp to Voyage, and
> so far everything was going great, until the garbage collector collected
> objects it shouldn't have... Here's what we did:
>
> We used to have all objects stored in an Instances classVar belonging to
> their own classes, so:
>
>
>    1. I had our classes return true to *#isVoyageRoot*
>    2. *ourClasses do: [ :c | (c classVarNamed: #Instances) do: [ :i | i
>    save ]]*
>    3. I checked MongoDB and all was looking great. From Pharo, we could
>    get all our instances and explore all of their relationships by *OurClass
>    selectAll*. Everything was working, so we thought we didn't need the
>    image stored instances anymore, thus:
>    4. *ourClasses do: [ :c | c classVarNamed: #Instances put: nil ]*
>    5. *Smalltalk garbageCollect*
>    6. *RMUser selectAll* → (long delay) → BOOM → 'Reference  not found
>    RMUser: OID(3725800612)'
>
> So, should we actually keep references to our instances in the image? I
> doubt this is the case, cos that'd mean we still have the 2Gb storage
> limitation, and then having an external DB would not be helping much...
>
> Thanks a lot in advance!
>
> Bernat.
>
> p.s. I've also tried saving copies of my objects, but the result's been
> the same, after garbage-collecting, I lose references.
>
> --
> Bernat Romagosa.
>

Reply via email to