Re: Daily gclist MIME digest V5 #121
Eliot Moss <[email protected]> Mon, 11 Jan 2010 20:37:00 -0500
| Newsgroups | gmane.comp.programming.garbage-collection.general |
|---|---|
| Organization | UMass Computer Science |
| Message-ID | <[email protected]> |
On 1/11/2010 6:52 PM, Mingnan Guo wrote: > Hi all, > > I want to say something about the terminology of "Concurrent", "On-The-Fly" and "Full Concurrent". > > Many technical papers have used the term "Concurrent" and "On-The-Fly" regarding stack scanning as: > > "Concurrent garbage collectors run concurrently with the application and only stop it for a short synchronization phase in the beginning or end of the collection. On-the-fly collectors are special concurrent collectors that never need to stop all threads simultaneously. They stop the application one thread at a time typically for scanning the thread runtime stack" > > However, some concurrent GC algorithms do not perform stack scanning at all. As far as I know, there are at least two implementations of that kind of GC. One is HnxGC based on reference counting, another one is not reference counting based. These kinds of GCs are so much different from those "Concurrent" and "On-The-Fly" on stack scanning. So, using a different terminology, such as "Full Concurrent", is more appropriate for these GC algorithms to avoid confusion. For example, > > "Full Concurrent garbage collectors run concurrently with the application and behave like usual application threads, which never involuntarily stop other threads except for debug purpose." > > Any comment? Thanks, > > -Mingnan Guo In slightly more colloquial English, I would say "Fully Concurrent". Concerning "Concurrent" versus "On-the-fly", I would agree that the difference is whether all threads are stopped at once. It is indeed possible to write collectors where the mutators never need to block (unless storage is exhausted; with adequate resources, bounds on mutator allocation rate, etc., it is possible to avoid storage exhaustion). However, such approaches may need more frequent or more costly read or write barriers in the mutators. Reference counting meeds to be augmented with a cycle collector, and in general you may still need to support compaction in order to repair fragmentation .... Best wishes -- Eliot Moss