Each full garbage collection in a program with millions of objects can pause the program for multiple seconds. Much of this work is typically repeated, as the collector re-traces parts of the object graph that have not changed since the last collection. Clustered Collection reduces full collection pause times by eliminating much of this repeated work.
Clustered Collection identifies clusters: regions of the object graph that are reachable from a single “head” object, so that reachability of the head implies reachability of the whole cluster. As long as it is not written, a cluster need not be re-traced by successive full collections. The main design challenge is coping with program writes to clusters while ensuring safe, complete, and fast collections. In some cases program writes require clusters to be dissolved, but in most cases Clustered Collection can handle writes without having to re-trace the affected cluster. Clustered Collection chooses clusters likely to suffer few writes and to yield high savings from re-trace avoidance.
Clustered Collection is implemented as modifications to the Racket collector. Measurements of the code and data from the Hacker News web site (which suffers from significant garbage collection pauses) and a Twitter-like application show that Clustered Collection decreases full collection pause times by a factor of three and six respectively. This improvement is possible because both applications have gigabytes of live data, modify only a small fraction of it, and usually write in ways that do not result in cluster dissolution. Identifying clusters takes more time than a full collection, but happens much less frequently than full collection.
Sun 14 JunDisplayed time zone: Tijuana, Baja California change
16:00 - 17:15 | |||
16:00 25mTalk | Recycling Trash in Cache Research Papers Jonathan Shidal Washington University, Ari J. Spilo Washington University, Paul T. Scheid Washington University, Ron K. Cytron Washington University, Krishna M. Kavi University of North Texas Link to publication | ||
16:25 25mTalk | Reducing Pause Times With Clustered Collection Research Papers Link to publication | ||
16:50 25mTalk | The Judgment of Forseti: Economic Utility for Dynamic Heap Sizing of Multiple Runtimes Research Papers Link to publication |