On Tue, Jun 14, 2011 at 9:37 AM, Mariano Martinez Peck <marianopeck@gmail.com> wrote:


On Tue, Jun 14, 2011 at 8:12 AM, Yanni Chiu <yanni@rogers.com> wrote:
On 13/06/11 6:56 PM, Yanni Chiu wrote:
On 13/06/11 5:49 PM, Mariano Martinez Peck wrote:

mmmmmm so you are using a stream to serialize and such stream is also
being refenced from the object to serialize?

Yes, that's it - except that the stream is an FSWriteStream on a
FSMemoryStore "file", which I think is an issue here. The PRKernel is
holding an instance of PRFuelPersistency, which holds an FSReference.
That FSReference happens to refer to a memory-based "file".

The code is at http://ss3.gemstone.com/ss/pierfuel.html

You'll first need a Pier image, with the following loaded:

(ConfigurationOfFilesystem project version: �'2.0.1-baseline') load

(ConfigurationOfFuel project version: �'1.4') load
�OR
(ConfigurationOfFuel project version: �'1.5-baseline') load

If you run PRFuelPersistencyTest, then you'll see the stack trace. I saw the same problem with 1.4 and with 1.5-baseline.

In the 1.5-baseline, I added #fuelIgnoredInstanceVariableNames to PRFuelPersistency and FSMemoryStore


BTW� you put them as class side methods, don't you?

(to ignore 'directory' and 'root', respectively) but the same problem remained. So I think it's a bug.


Yes, We think you have spot a bug :)
Martin is working on that. We will let you know. Thanks
Despite the test failing, the PRFuelPersistency works as expected to save/restore a Pier kernel to/from a file. The file is 30 times smaller than the corresponding (uncompressed) SIXX file.



and speed?� could you measure serialization / materialization time ?

Thanks a lot,



--
Mariano
http://marianopeck.wordpress.com