[Glass] Garbage Collection , maintenance gem and typical seaside app

Mariano Martinez Peck marianopeck at gmail.com
Thu May 8 12:50:37 PDT 2014


On Thu, May 8, 2014 at 1:37 PM, Norm Green <norm.green at gemtalksystems.com>wrote:

> Well, it all depends on the usage pattern of the database.  Epoch GC is
> designed to cleanup short lived objects.  MFC is the global cleanup.
>
>
This sounds very much like the "incremental GC" of Pharo and the full one
(#garbageCollect).


> Running epochs hourly or daily and running MFC during low times (weekends
> or middle of the night) are common practices.
>
>
Indeed, after having read all this thread, I think that enabling epoch and
running MFC at the middle of the night or weekends looks like the path I
will follow next (when the MFC per hour of the maintenance VM starts to
bother the app users).

Thanks for all the suggestions.



Norm
>
>
> On 5/8/14, 9:32, Otto Behrens wrote:
>
>> Thanks, so the MFC have become quite fancy. Very interesting.
>>
>> So when do I use the MFC (eg from cron / maintenance process) and when
>> do I use the epoch GC?
>>
>> On Thu, May 8, 2014 at 6:19 PM, Norm Green
>> <norm.green at gemtalksystems.com> wrote:
>>
>>> The MFC can be heavy-weight but is designed to be tunable so that it can
>>> also be very light-weight at the expense of taking more time to complete.
>>> This is done by tuning the number of threads used by the MFC and how much
>>> CPU those threads are allowed to consume.
>>>
>>> For example, in 3.x, running the MFC with 1 thread and a cpu limit of 10%
>>> should have minimal impact on the system:
>>>
>>> SystemRepository markForCollectionWithMaxThreads: 1 waitForLock: 60
>>> percentCpuActiveLimit: 10
>>>
>>> Of course you have to be careful not to limit resources too much else the
>>> MFC may never finish.
>>>
>>> Norm
>>>
>>>
>>>
>>>
>>> On 5/8/14, 9:08, Otto Behrens wrote:
>>>
>>>> GLASS comes with nice seaside scripts to start/stop gems and also a
>>>>> maintenance gem which calls WAGemStoneMaintenanceTask. This class, from
>>>>> what
>>>>> I can see, it does seaside session expiration and MFC. So....second
>>>>> question... if I have this VM running...then I wouldn't need to
>>>>> explicitly
>>>>> run a MFC as part of a cron job, right?
>>>>>
>>>>>
>>>>> Right.
>>>>>
>>>> Sorry, I lied. The default maintenance30 implementation does an MFC
>>>> every hour. We disabled that in our apps and switched the epoch GC on.
>>>> I think the MFC is *extremely* heavyweight and will influence your
>>>> application when it runs on a DB with some data. I can't really give a
>>>> measure of how much "some" is, in other words when the DB is small
>>>> enough where the MGC will not influence it that much.
>>>>
>>>> I understand that the purpose of the epoch GC is to be a process that
>>>> runs in the background with loads of fancy parameters to throttle it.
>>>> A seaside app in my understanding is an ideal candidate app for the
>>>> epoch GC. We bypassed WAGemStoneMaintenanceTask >>
>>>> maintenanceTaskMarkForCollect such a long time ago that I forgot about
>>>> it. To me, it does not make sense to implement that complexity in
>>>> maintenanceTaskMarkForCollect if there is a much more sophisticated
>>>> and efficient tool around (epoch GC).
>>>> _______________________________________________
>>>> Glass mailing list
>>>> Glass at lists.gemtalksystems.com
>>>> http://lists.gemtalksystems.com/mailman/listinfo/glass
>>>>
>>>
>>> _______________________________________________
>>> Glass mailing list
>>> Glass at lists.gemtalksystems.com
>>> http://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/20140508/312a6f59/attachment.html>


More information about the Glass mailing list