[Glass] wait for reclaim
Otto Behrens via Glass
glass at lists.gemtalksystems.com
Mon Jun 22 09:24:45 PDT 2015
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
More information about the Glass
mailing list