Thanks for the paper, Paolo - I'll have a read of it over the weekend. On 9 Jun 2011, at 21:47, Paolo Romano wrote:
> There has been a lot of discussion on this topic also in the Transactional > Memory area, triggered to the best of my knowledge by this paper [1]. > > Mixing transactional and non-transactional access to shared state opens a > number of subtle scenarios and there are a pile of follow-up papers on how to > try to make tx and non-tx access coexist (what is called strong-atomicity in > TM terminology), and it typically implies adding a good deal of complexity > and overheads. > > My opinion is fully aligned with Galder's & Manik's view: enforcing a neat > and clear separation at the API level in order to prevent mixing tx and > non-tx access is the way to go. This ensures that non-tx accesses can be > supported by fast and clean mechanisms, while also simplifying management of > transactions. > > Cheers, > > P > > [1] www.cis.upenn.edu/acg/papers/cal06_atomic_semantics.pdf > > On 6/9/11 9:39 PM, Manik Surtani wrote: >> >> Regarding the comment on transactional versus non-transactional threads >> mentioned on https://issues.jboss.org/browse/ISPN-1137 - I think the fact >> that we allow this is a flaw. >> >> The approach we are taking with JSR 107 is such: >> >> 1) If a cache is non-transactional, transactional threads accessing the >> cache throw an exception. >> 2) If a cache is transactional, threads must have an ongoing transaction. >> If not, an exception is thrown, unless: >> 3) Auto-commit is configured to be true. In this case, if a >> non-transactional thread accesses the cache, a tx is started, work done, and >> the tx auto-committed. >> >> See https://groups.google.com/forum/#!topic/jsr107/WW-ObwfFEbI - and feel >> free to chime on on that list as well. :-) >> >> This is another relevant and interesting thread: >> https://groups.google.com/forum/#!topic/jsr107/iFo20hxQKSw >> >> Cheers >> Manik >> >> >> On 9 Jun 2011, at 20:31, Manik Surtani wrote: >> >>> Good summary, Mircea. Breaking it down - and the specific design as well >>> in the JIRAs - makes it seem almost trivial to implement. ;) >>> >>> On 24 May 2011, at 22:36, Mircea Markus wrote: >>> >>>> Hi, >>>> >>>> This is re: http://community.jboss.org/wiki/PossibleLockingImprovements >>>> >>>> I've created JIRAs for the locking optimisations as follows: >>>> >>>> #1: https://issues.jboss.org/browse/ISPN-1131 >>> >>> Keep in mind the LockingInterceptor delegates a lot of the copyOnWrite (of >>> CacheEntries) and the corresponding locking to the EntryFactoryImpl. This >>> too would probably need to be subclassed. >>> >>>> #2: this seems to be just a particular case of #4 >>>> #3: https://issues.jboss.org/browse/ISPN-1132 >>> >>> Looks good, however I'm concerned about the key comparator and how this >>> would deterministically order keys. Basing order on hashcode can lead to >>> collisions (and if using the default Object.hashcode breaks down >>> completely). And we can't *require* that users provide one; we'd need to >>> provide a sensible - if suboptimal - default. >>> >>>> #4: https://issues.jboss.org/browse/ISPN-1137 >>> >>> Paolo's concerns are very valid. Vector clocks to determine order of >>> application on non-primary owner node is one mechanism that would work; >>> another may be that each node only ever communicates with the primary >>> owner. And the primary owner then has the responsibility of propagating >>> prepares and commits to other peers. This will mean eventual consistency >>> though, since concurrent readers would always have to read from the primary >>> owner since reading from other owners of an entry may result in stale data. >>> >>> Another potential problem here is failover. You should discuss how you >>> intend to deal with failure in the primary owner, with different >>> transactions at various stages of completion. >>> >>> Cheers >>> Manik >>> -- >>> Manik Surtani >>> ma...@jboss.org >>> twitter.com/maniksurtani >>> >>> Lead, Infinispan >>> http://www.infinispan.org >>> >>> >>> >>> _______________________________________________ >>> infinispan-dev mailing list >>> infinispan-dev@lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/infinispan-dev >> >> -- >> Manik Surtani >> ma...@jboss.org >> twitter.com/maniksurtani >> >> Lead, Infinispan >> http://www.infinispan.org >> >> >> >> >> _______________________________________________ >> infinispan-dev mailing list >> infinispan-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/infinispan-dev > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev -- Manik Surtani ma...@jboss.org twitter.com/maniksurtani Lead, Infinispan http://www.infinispan.org
_______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev