Marcel Reutegger
Mon, 12 Mar 2007 07:52:44 -0800
Jukka Zitting wrote:
A) a change log must be persisted as a whole or not at allI) while a change log is persisted a read must not see partially stored contentThese could both be achieved also with connection pooling, just acquire a connection at the beginning of PersistenceManager.store() and commit the changes at the end of the method before releasing the connection. Similar pattern would also work for all the load() and exists() methods to avoid the need to synchronize things on the prepared statements.
Agreed.
C) this is actually handled by the upper levelACK, the key is the write lock on SharedItemStateManager. In fact, do we even need the database persistence managers to be transactional over multiple method calls?
I can't follow you here. what exactly do you mean by weakening transaction requirements on the persistence manager? e.g. reading of uncommitted items?
And to follow, could we in fact already now remove the synchronization of read operations given that consistency is already achieved on a higher level?
yes, we can. the persistence manager just has to ensure that only committed data is returned.
regards marcel