durusmail: quixote-users: Interface for session persistence
Interface for session persistence
2002-05-18
2002-05-18
2002-05-19
2002-05-20
2002-05-20
2002-05-20
2002-05-20
2002-05-20
2002-05-21
2002-05-24
2002-05-24
2002-05-24
2002-05-18
2002-05-20
2002-05-20
Interface for session persistence
Titus Brown
2002-05-20
-> On 18 May 2002, Titus Brown said:
-> > It sounds to me like the best way to integrate all of this into a
-> > transaction-oriented database is to have the save_changes take an
-> > in-memory representation and map them into the database, and then
-> > do a commit immediately.
->
-> With ZODB at least, there's no need for your application to worry about
-> mapping in-memory objects to database objects -- ZODB does it for you.

Right -- but in that case, for every open session, you have a separate
transaction handle to the database.

-> > I'm using a home-grown object <--> database
-> > mapping system that (like ZODB?) automagically transmits the changes
-> > to the database, modulo a commit; does this change in session management
-> > protocol mean that for this sort of database system, you'd either have
-> > to decouple the session from the database-linked object until
-> > save_changes() is called, or keep a separate transaction handle for each
-> > session?
->
-> If your home-grown OODB works like ZODB, which is what it sounds like to
-> me, then I don't think you have anything to worry about.  In the course
-> of processing one request, you should only modify one session -- the
-> session identified by that request's session cookie.  (Yes, you can
-> always get your hands on the global SessionManager carried around by
-> your publisher and go grubbing through other sessions.  That's your
-> problem though, and if you do that sort of thing, it's up to you to save
-> the sessions that you so modify.)  Thus, commiting "the current
-> transaction" *should* just save the changes to the one session that you
-> (may) have changed in the course of processing the current request.
->
-> Clear as mud?

Gotcha.  I guess I'm just worrying again about the multiple-connections
issue (== threading, basically) which I should just stop worrying about ;).

--titus


reply