[Python-ideas] Concurrent refcounting research

Jason Orendorff jason.orendorff at gmail.com
Tue Oct 16 20:56:27 CEST 2007


GIL-slayers take note.  Here are two papers about concurrent reference counting:

    An On-The-Fly Reference Counting Garbage Collector for Java
    Levanoni and Petrank, 2001.
    http://www.cs.technion.ac.il/~erez/Papers/refcount.ps

    Efficient On-the-Fly Cycle Collection
    Paz, Bacon, Kolodner, Petrank, and Rajan, 2005.
    http://www.cs.technion.ac.il/%7Eerez/Papers/CycleCollection.ps

"On-the-fly" means the algorithm is neither "fully concurrent" nor
"stop the world".  Rather, each thread pauses occasionally to do some
work.  Instead of a GIL, you have a lock that covers this periodic
bookkeeping.

The details are awfully complex, but there may be insights worth
gleaning regardless.

Also -- I wrote some stuff at:
  http://wiki.python.org/moin/GlobalInterpreterLock
in the hopes that future "Kill GIL" discussions can start from a
better-informed base.

-j



More information about the Python-ideas mailing list