FYI: I'll meet up with Manik and Bela in NE today/tomorrow.
1) 2.0.0.GA will not be out for a while. Planning a long CR run and
coinciding GA with JGroups 2.5, circa early June.
okey; Steve - when do you expect Hibernate 3.3 to go CR/GA ?
2) When you say separate caches, you would need separate cache
instances if they were to run with separate configurations. (To reduce
the network resource overhead, they could use a single multiplexed
JGroups channel). Region based caches is a long way off (3.0.0
timeframe?)
Ok - so yes, we need to run with seperate configurations; lets try and
get such a config example together while you are here in NE.
3) JBoss Cache 2.0.0.GA will only be supported under Java 5. A
retroweaved 1.4 compat binary *could* be built but for now this will
*not* be supported. [1]. As such, I think there will always be a need
for JBoss Cache 2.0.0 and 1.4.0 support in Hibernate - unless you
foresee Hibernate usage with JDK 1.4 as an outlying minority that can be
ignored here.
I think it is more a question about what you and PM want I assume ?
Hibernate is not dependent on JBossCache and I personally would be fine
saying that if users want to use a clustered JBossCache then it requires
JDK 5 so if you want it you need to use JDK 5.
/max
Cheers,
Manik
[1] http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossCacheHabaneroJava1.4
On 10 Apr 2007, at 22:23, Brian Stansberry wrote:
Max Rydahl Andersen wrote:
That means if you want different behavior for the different "types"
of caches you need separate caches. If the JGroups multiplexer is
available, that's not too bad, as the caches can share a channel. If
we think it through well, they can likely share an overall config
file, with the different "types" just overriding a couple properties
that are relevant.
sounds good. Could you provide an good default fallback setup for
hibernate to run with ?
You mean one with a multiplexer? Right now a multiplexer gets injected
into the cache; JBC has no mechanism to create one itself. Sounds like
we'll need to deal with that.
If the JGroups multiplexer isn't available then having a separate
cache for each "type" is a royal pain, since you have multiple
channels that need to have unique ports, etc. And we need to assume
that the multiplexer won't be available in any non-JDK5 env, since
the earliest JG release where it's reliable is 2.5.
So I guess we just won't have good jbosscache integration before 2.5;
similar that
it won't work good before Hibernate 3.3. Is that a problem ?
Just that JG 2.5 requires JDK 5. AIUI, Hibernate 3.3 will support JDK
1.4. JBC 2.0 will have a retroweaved version that works with JDK 1.4
and that should work fine with JGroups 2.4.x. So, you can make Hibenate
3.3 + JBC work on JDK 1.4, but the multiplexer stuff won't work well.
Confusing.
Re: #4 : what exactly are these differences? Now is the time to
merge it back...
<snip/>
The fix I did was just to 1) have the org.hibernate.cache.Cache impl
make use of this API and
Got it.
2) prevent replication of the org.hibernate.cache.StandardQueryCache
region, since that region could be shared between multiple
deployments and hence there's no 'correct' classloader.
eh - ok, sounds bad.
Yes, this was a hack to allow EJB3 entity clustering to work when
people didn't specify a region prefix. (See below for more on why
that's an issue). I certainly wouldn't mind seeing this go away.
Isn't it better to just use hibernate.cache.region_prefix to
disambiguate the regions per sessionfactory ?
Sure. IIRC, if you specify a region_prefix that becomes part of the
region name passed to o.h.c.TreeCache, in which case the hack that
prevents replication would be bypassed.
I don't think querycache region is the only one that would have
problems if you are using the
same physical cache for multiple sessionfactories. e.g. if a
org.company.model.Customer exists in both you would have troubles
with the entity cache.
If we move to a mode where we have one cache (or set of caches) per
deployment, then this kind of stuff becomes unnecessary. But, again,
that requires the JGroups multiplexer.
Today you should not use the same cache across deployment; that's a
big nono.
JBoss AS currently deploys a single JBC instance for use as a shared
cache across EJB3 deployments. If you specify
org.jboss.ejb3.entity.TreeCacheProviderHook, that's what you get unless
you go out of your way to deploy a separate cache. The design
decisions that led to doing it that way predate me, but I assume its
due to the hassle of deploying multiple JGroups channels.
The separation of caches has more to do with having different
semantics with respect
to replication, locking and put/remove operations.
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.
Don't forget this one - manik ? :)
I think he's teaching this week??
--Brian Stansberry
Lead, AS Clustering
JBoss, a division of Red Hat
[EMAIL PROTECTED]
--
Manik Surtani
Lead, JBoss Cache
JBoss, a division of Red Hat
Email: [EMAIL PROTECTED]
Telephone: +44 7786 702 706
MSN: [EMAIL PROTECTED]
Yahoo/AIM/Skype: maniksurtani
--
--
Max Rydahl Andersen
callto://max.rydahl.andersen
Hibernate
[EMAIL PROTECTED]
http://hibernate.org
JBoss a division of Red Hat
[EMAIL PROTECTED]
_______________________________________________
hibernate-dev mailing list
hibernate-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/hibernate-dev