[hibernate-dev] Re: JBoss Cache and Hibernate Integration

Max Rydahl Andersen max.andersen at redhat.com
Mon Apr 9 09:54:25 EDT 2007


> So I started breaking out 3.3 as a separate code base on the Hibernate  
> svn trunk.  The first thing done was this org.hibernate.cache.Cache  
> splitting.  So at this point we now have the ability to be completely  
> free in how we cache entity-data versus collection-data versus  
> query-data versus timestamps-data within the same "second level cache".

Cool.

> But now looking back at #1, I am no longer certain of the conclusions;  
> and to me the wiki did not make it clear to me what the "long term"  
> solution was supposed to be (nor really what the "short term" solution  
> is/was either).  Anyone remember the specific conclusions with regards  
> to this point?

Long-term:
In Hibernate - use seperate caches which you have done for 3.3
In JBoss Cache - as it stands now you would have to use differnt  
jbosscache configurations.
In older versions of JBC you would need different treecache.xml; but that  
has been simplified
in later JBC's AFAIK - Manik/galder ? Depending on this and wether  
optimistic locking is a global
or node level-and-down setting users might need some less or more complex  
"writing jbosscache config files
for hibernate" examples ;)

Short-term:
Write a cacheprovider that would use different jbosscaches for each "type"  
of cache.
Not sure if that still makes sense.

> Re: #4 : what exactly are these differences?  Now is the time to merge  
> it back...

I recall these as being Bryan 2 things:

1) setting up JBC/Cacheprovider so it would use the correct classloader  
when loading data from the cache.

2) doing some "mutations"/magic-lookup of the cache region names to know  
which classloader to use
(this might just me having nightmares, so need Bryan to certify ;) If it's  
true we would
need to look into the practicallity of that solution.

> Re: #5 : what about the other solution I proposed where instead of  
> registering synchs directly with the TC/TM, you instead delegate it to a  
> strategy which can route the request back through Hibernate; Hibernate  
> can then manage ordering the callbacks?

I don't recall more progress on that topic.

/max

> Re: #6 : I'm actually in favor of just moving to the new (2.0) API;  
> easier from a management perspective.
>> Ok, so my notes from the call, based on issues from the wiki
>>
>>
>> 1.  Multiple caches will probably only formally make it in the next  
>> major Hibernate release - 3.3.
>>
>> 2 Notes on putForExternalRead() functionality, in addition to the  
>> solution presented on the wiki:
>> - PFER only goes through if node does not exist; no-op otherwise
>> - Force asynchronous mode for replication or invalidation to prevent  
>> any blocking
>> - 0ms lock timeout to prevent any blocking here either.  If this fails,  
>> PFER is a no-op
>> - no to separate thread necessary, since we will be operating with a  
>> 0ms timeout, async replication and a no-op if the node exists.  The  
>> only real chance of any blocking here is JGroups FC which is considered  
>> small enough a case.
>>
>> 3.  Since JBC 1.4.1.SP1, write locks are not acquired on parents when  
>> adding or removing children, to be more accurate to repeatable read  
>> semantics.  WLs can still be acquired on parents if enabled in the  
>> configuration (see "LockParentForChildInsertRemove" in  
>> http://labs.jboss.com/file-access/default/members/jbosscache/freezone/docs/1.4.1.SP2/TreeCache/en/html/configuration.html,  
>> which defaults to false).  As such, this contention should no longer be  
>> a problem.
>>
>> 4.  Brian implemented for EJB3 clustering in AS 4.2, will make it's way  
>> back into HIbernate in the 3.3 timeframe?
>>
>> 5.  Do nothing for now since the urgency is removed.  Only fails on old  
>> versions of JBoss TS.  In future (JBC 2.1 timeframe) look at what the  
>> microcontainer has to offer with synchronisation registrations.
>>
>> 6.  Coordination issue
>>
>> 7.  Galder to come back with more details here, but general consensus  
>> is not to perform transparent retries.
>>        Feel free to add stuff I may have missed or further thoughts.   
>> Very useful and productive call!
>>
>> Cheers,
>> Manik
>
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev



-- 
--
Max Rydahl Andersen
callto://max.rydahl.andersen

Hibernate
max at hibernate.org
http://hibernate.org

JBoss a division of Red Hat
max.andersen at jboss.com



More information about the hibernate-dev mailing list