The engine-server has his own permanent workers. They call engine.run_calc.Each calculation has therefore its own sources_per_rlz dictionary. All the dictionaries will be cleaned up at celery restart, but if celery does not restart for a long time the memory will keep piling up. This is way I preferred cleaning up explicitly. I guess there are other places where a cleanup would be useful. Now that there is the engine-server we must think in term of long-running processes and we cannot rely on the automatic cleanup at the end of the process.