Please submit your work by creating a JIRA Issue (here: http://jira.nhforge.org) and attach a SVN patch with your changes. We would like to see some (unit-)tests as well, unless you think that existing tests offer good enough coverage.
Regards Julian On Fri, Dec 3, 2010 at 1:31 PM, Aaron Boxer <[email protected]> wrote: > Hello All, > > I've just finished a massive refactoring of the NH cache classes. The > biggest change is the introduction of a > copy-on-write cache concurrency strategy, where each session, after > locking an entity, performs a copy on write into > a local per session cache, and copies the write back into the main > cache after an entity has been unlocked > (assuming that the main cache item for this key is puttable). > > This provides true repeatable read and read committed isolation for > different sessions, and allows one session to access a cache key > after another session locks it, as opposed to forcing the first > session to hit the database. (Note: the copy > on write cache only works for versioned entites). > > The strategy uses a reader/writer lock for synchronizing access to the > cache (ReaderWriterLockSlim), so performance should be > good. (I've also converted the ReadWriteCache strategy to use a > reader/writer lock) > > I've updated my Redis-based cache provider to support the new copy on > write cache strategy, and because of how > Redis is designed, it is possible to remove all locks. So compared to > other distributed caches, performance should > be excellent. > > What is the best way of submitting these changes for review? > > Thanks, > Jorge >
