durusmail: quixote-users: session management
session management
2004-08-02
2004-08-02
2004-08-02
session management
Neil Schemenauer
2004-08-02
On Mon, Aug 02, 2004 at 12:52:58PM +0100, Jamie Hillman wrote:
> The nicest way to solve this would be to make the session manager
> singleton but as the different handlers reside in different
> address spaces this isn't possible.  How is everyone else handling
> this?

We use Durus (an object database).

> I implemented a persistent mysql-backed session mapping so that I can
> leave the handlers creating new instances but always pass in my custom
> session mapping.  This seems to work well, when the new handlers are
> spawned the session data is consistent as it's all stored in the
> database.  Does anyone see a problem with this way of implementing
> things?

Using a database seems to be the most common solution.  What does
your database connection do when more than one process is trying to
modify data?

> There is a database write every time a session is modified
> (possibly every time a page is requested) which seems a bit heavy
> but that's the only draw-back I can see.

Does the DB client do caching?  If not, then you would have to do a
DB read (or more than one) on revery request.

> Finally (thanks if you've read this far :-)) I've noticed there doesn't
> seem to be any expiring of sessions in quixote although the hooks are
> there to do it.  Is this expected to be done by session managers?

We expire sessions via a separate process started by a cron job.

  Neil

reply