[Glass] wait for reclaim
Dale Henrichs via Glass
glass at lists.gemtalksystems.com
Mon Jun 22 11:33:00 PDT 2015
Otto,
I think I need a little more information ... We would probably need a
statmon file to tell what is actually going on and some information on
how you are "changing large numbers of objects" and where the
#waitForReclaim is called in relation to the changes you are made:
perhaps some session stats to annotate when a waitForReclaim is called
and then number of times you loop waiting for pagesNeedReclaimSize to
drop...
After a bit of internal discussion, we *have* made changes
(improvements) to multi-threaded reclaim in 3.2.x and if I were to make
wild guess, I guess that the the reclaim threads are spinning away fast
enough that the PagesNeedReclaimSize stat never reaches 2000.... But
that is a guess ... a statmon would make it possible for us to pinpoint
the "problem" ...
Mariano, this is a case where the growth is happening on disk, so it
would no be directly related to the memory footprint of seaside gems ...
Dale
On 06/22/2015 09:24 AM, Otto Behrens via Glass wrote:
> Hi,
>
> We're trying to control repository growth when changing large numbers
> of objects. We have 1 extent file.
>
> We've had this discussion on the list before, but our solution prior
> to upgrading to 3.2.6 does not seem to work anymore.
>
> We call "waitForReclaim" periodically to give the reclaim gem a chance
> to work if there are lots to reclaim.
>
> waitForReclaim
> self pagesNeedReclaimSize > 2000
> ifTrue: [
> self log: 'Waiting for reclaim of ' , self pagesNeedReclaimSize
> printString , ' pages'.
> [ self pagesNeedReclaimSize > 250 ]
> whileTrue: [
> (Delay forMilliseconds: 100) wait.
> System abortTransaction ].
> self log: 'Reclaimed'.
> System startCheckpointAsync "The checkpoint frees up the space
> allocated by the pages. This is because GS need to keep the pages
> between checkpoints to recover from a stone crash." ]
>
> Where pagesNeedReclaimSize is:
> ^ (System cacheStatistics: 1) at: (System cacheStatisticsDescription
> indexOf: 'PagesNeedReclaimSize')
>
> Did something perhaps change quite a bit between 3.1.0.5 and 3.2.6?
> Does this strategy still hold?
>
> We get this kind of output in the reclaim gem's log, indicating that
> it reclaimed a huge number of pages:
>
> --- 06/22/2015 17:58:05.198 SAST Reclaim Summary
> 2530 reclaims 975978 pagesReclaimed 859450 singleObjPages
> 28324822 processedObjs 28324822 liveObjs 0 deadObjs 29.0 avgObjsPerPage
>
> Thanks
> Otto
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
More information about the Glass
mailing list