[Glass] Explanation to "too many failed pom_gen scavenges" in this context??

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Mon Mar 7 11:57:22 PST 2016


On Mon, Mar 7, 2016 at 3:18 PM, Dale Henrichs via Glass <
glass at lists.gemtalksystems.com> wrote:

> Mariano,
>
> The handler for AlmostOutOfMemory relies on being able to resume after a
> successful commit, but a GemStone vm will sometimes cross the threshol in
> the middle of a "random C code" called by a primitive ... in these cases we
> have to defer the signalling of AlmostOutOfMemory until we reach a point
> where we can safely resume .... The implication is that depending upon the
> details of your call it is possible to physically run out of memory before
> the deferred signaling can take place ...
>
> If you lower the threshold, you should be able to find a limit that gives
> you room to finish the memory hungry primitive call and get the deferred
> AlmostOfOfMemory exception signalled.
>
>
Yes,* but I am already running the threshold with 10% with a 700MB temp
space*... how less than that should it be? mmmm


> It is also possible that your temp obj cache is filling with objects that
> have not yet been connected to the persistent root ...
>
>
mmm OK  I will check this. But now I get this same error in another cron
job. Both were running correctly a few weeks/months ago.


> If you want to see what's happening with respect to the exceptions that
> are being signaleed, you could add logging to MCPlatformSupport
> class>>installAlmostOutOfMemoryStaticHandler: ...
>
>
mmmm I am a bit lost there. Which kind of log could I add?

Thanks in advance,





> Dale
>
>
>
> On 03/07/2016 08:35 AM, Mariano Martinez Peck via Glass wrote:
>
> Hi guys,
>
> I am running some code that processes a huge csv file and inserts
> persistent data to gemstone. This is a GemStone 3.2.9 with 1GB of SPC,
> GEM_TEMPOBJ_CACHE_SIZE of 700MB and GEM_TEMPOBJ_POMGEN_PRUNE_ON_VOTE  at
> 100.
>
> What is funny is that my code runs inside commitOnAlmost...
>
> I have this method:
>
> FAGemStoneCompatibility >> commitOnAlmostOutOfMemoryDuring: aBlock
> threshold: aThreshold
>   [
>   MCPlatformSupport installAlmostOutOfMemoryStaticHandler: aThreshold.
>   aBlock value ]
>     ensure: [ MCPlatformSupport uninstallAlmostOutOfMemoryStaticHandler ]
>
> And this is how I use it:
>
>                System commitTransaction.
> FACompatibilityUtils current
> commitOnAlmostOutOfMemoryDuring: [
>     *WhateverClass whateverThingThatNeedsMemory.*
>                         ]
>                         threshold: 10.
> System commitTransaction.
>
>
> And even with a threshold of 10...  I am getting a
>
> *VM temporary object memory is full *
> *, too many failed pom_gen scavenges*
>
>
> Any idea what could be going on?
>
> Thanks in advance,
>
> --
> Mariano
> http://marianopeck.wordpress.com
>
>
> _______________________________________________
> Glass mailing listGlass at lists.gemtalksystems.comhttp://lists.gemtalksystems.com/mailman/listinfo/glass
>
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20160307/8fe9a670/attachment.html>


More information about the Glass mailing list