ACM Queue: Realtime Garbage Collection

The Metronome technology, developed at IBM Research and now available in production, solves [the problem of realtime GC] by limiting interruptions to one millisecond and spacing them evenly throughout the application's execution.2 Memory consumption is also strictly limited and predictable, since an application can't be realtime if it starts paging or throws an out-of-memory exception.

The article is primarily about the Metronome garbage collection technology, but includes a nice introduction to garbage collection and realtime terminology as well.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Yet another introduction to garbage-collection

It probably already has been presented here, but the Uniprocessor garbage collection techniques paper of Wilson is also a quite nice introduction, and talk about realtime as well.

Of course. It's an old

Of course. It's an old favorite.

Some observations.

Observation #1: Metronome works on single CPU systems. Would IBM be able to make it work for multiple CPU systems?

Observation #2: the IBM solution uses a principle similar to libasync: a scheduler dispatches jobs across different threads around known boundaries.

Perhaps the key to successfully utilizing many cores is to separate the code in 'jobs' that are executed in parallel, and the scheduler makes sure jobs with dependencies are executed by the same thread.

And since garbage collection is just another thread, it can be made incremental but without locks.

(perhaps this comment is more suitable for the other thread about parallelism, but isn't garbage collection subject to parallelism as well? especially since it has to do with graphs)

OK for small scale SMP

In the presentation referred by Anton van Straaten, it is said that it works also on small scale SMP, but doesn't detail the performance variation..

I find it annoying that there is so little information..

Related presentation

Here's a 2005 presentation about real-time Java and garbage collection by the same author, David Bacon. (I linked to this, with a very brief summary, in a previous comment about safety-critical Java.)