The missing detail here is that reading a session object causes a write to the database to update the last access time for that session object. So what looks like a plain old read to the application code above, in-fact includes a write just below the surface. (This is a design choice so that stale session objects can be removed.)
Some time ago (search the archives) I had problems with high rate of write conflict errors and then Michael Dunstan has written: "One option to reduce the rate of this write conflict is to tune the session machinery to suit. For example use session-resolution-seconds of say 300 seconds." It helped me a lot - almost no conflict errors :) Maybe you should try to change this setting in zope.conf and see what will happen. Im curious if there are side effects of setting high value to this variable? I haven't noticed any... -- Maciej Wisniowski