[gclist] zillion objects

Ji-Yong D. Chung virtualcyber@erols.com
Fri, 24 Aug 2001 03:00:43 -0400


Hi

    In my preceding email,

> [I wrote]  This question is a general one. In brief:
>if you have a large number of objects, a small
>fraction of which die (very slowly), is there a
>method of automatic memory management
>(i.e., gc), which would not (1) try to copy most of
>those objects or (2) trace most of those pointers?

    Perhaps some background material on this would
be helpful.

    Basically the question asks for a strategy for 
implementing an automatic memory manager 
(perhaps GC) for a high-performance servers that 
does lots of caching.

    With today's decline in memory price, servers like 
to put *everything* in memory (few gigs?).  Garbage
collectors or automatic memory managers for such 
servers, need to be able to handle large
data without significant collection pauses.  The 
emphasis on caching will increase as 64 bit machines
become more prevalent.  

    I don't know if generational collector would be
good for the above described large cache oriented servers.
A generational collector will push all stable data to
its oldest generation arena.  And eventually, it will
still need to perform garbage collection on that
generation.

    When it does, it has to scan perhaps up to few gigabytes
of data (perhaps tens or hundreds of gigabytes in
extreme cases).  I am guessing that this has to 
result in significant GC pauses.  
    
    When one has so much data on RAM, cache
miss caused by client requests will be relatively
rare.  This means the rate of garbage generation,
(garbage generated by replacing pointers to old 
object by the poiner to a new object read in from a disk
due to the cache miss) would be slow as well.