[Mongrel] Recommentation: Sessions and PStore

Kirk Haines wyhaines at gmail.com
Sun Sep 3 12:42:15 EDT 2006

On 9/3/06, Zed Shaw <zedshaw at zedshaw.com> wrote:

> First, the memory leak was because of a bug in how the GC in Ruby was
> collecting threads after they used a Mutex.  Don't ask me why, but
> switching to Sync fixed it.  Problem is, this also causes the leak on
> Win32.  Still working on that problem.

I still doubt that Mutex itself is the problem here.  Sync uses the
same algorithm for exclusive locking, and I can run _millions_ of
threads through IOWA, which operates similarly to Mutex with regard to
how it spawns threads, without any memory leaks, and Mutex gets used
with every one of those requests/threads.

> All of the people who had Mongrel processes going crazy, blocking,
> locking, or just generally doing bad things had a pstore as their
> session storage option.  What happens is the pstore isn't that great
> when multiple processes access it, and if one Mongrel has problems
> pulling an object from the pstore then it'll explode.  Use the file
> store when you develop, and use the database or memcached store in
> production.

I have had similar misery with PStore.  I've been meaning to get it
done for a month, but I have a process/threadsafe to-disk persistence
library that I will bundle and release separately from IOWA.  It
provides relatively fast persistence and could be used to store
sessions like people use PStore.  I'll try to finally get that done
today if anyone wants to try it out as a PStore replacement for
storing sessions to disk.

Kirk Haines

More information about the Mongrel-users mailing list