What I do not understand is:
(1) If I add the cache to the session the application server is responsible for storing it persistent. This certainly is not what is intended with it cache, right?
(2) Additionally, I do not know how a session can be used to pass information between arbitraty cluster nodes. As you said the session will be taken over only if one node fails.
Oliver
James Mason wrote:
Well, I'm thinking mostly about Tomcat's clustering here (so no EJBs). Tomcat uses javagroups to persist changes in session attributes across all the nodes in the app server. This isn't really "persistent" storage, it just ensures that if one node drops out of the cluster users won't notice anything.
Since Slide already has a clusterable persistent storage mechanism (clusterable databases, cjdbc, etc) the only issue is making sure the local caches get refreshed when a change is made. This either means a "hey dummy, update your cache" message, or storing the cache in a way that changes are "shared" across the cluster.
Just implementing the cache javagroups would work, I'm sure, but it might (maybe) be less work to tie into preexisting clustering technologies. I think that would mean tying the cache to a user's session somehow, though...
-James
[EMAIL PROTECTED] 7/9/2004 1:33:06 PM >>>
Yes,
this would work for sessions, but what would be the use? AFAIK clustering for persistent storage only works with EJBs, right?
Oliver
James Mason wrote:
How about taking advantage of the app server for clustering? I'm not familiar enough with Slide's internals yet to know if this would
work,
but I know most (all?) the major app servers have built-in
clustering
support for sessions.
-James
[EMAIL PROTECTED] 7/9/2004 1:26:45 PM >>>
My very *personal* impression is that Slide could need improvements
for
clustering. However, a redundancy solution might look like having two
Slide instances both accessing the same RDBMS (clustering will not
work
with the default file store). This RDBMS might be a clusterd one as well, what ever you want.
As there is (currently) no notification mechanism (this might be implemented with the event stuff Daniel added) between Slide
instances
and global caching might return outdated values I added this caching
mode that only caches inside of transactions.
Oliver
James Mason wrote:
Oliver, Can you elaborate on this a bit? It's something I'm *very*
interested
in. I'm slowly integrating Slide into a Portal/CMS solution that failover/redundancy at every level and Slide is sticking out a bit
like
a sore thumb :).
-James
[EMAIL PROTECTED] 7/8/2004 6:25:08 AM >>>
Hi Jamie!
In the upcoming 2.1 release it will be possible to switch off
caching
by configuration. It will also be possible to use a mode that allows
for
intra-transaction caching which is much faster, but enables clustering.
Oliver
Mortimore, Jamie [IT] wrote:
Slightly off topic but... I'm going to try using cjdbc
(http://forge.objectweb.org/projects/c-jdbc) to connect a JDBCStore
to
two databases in order to create a fault tolerant webdav service.
There
will also be two slide servers:
-------- -------- | slide | | slide | | server | | server | | 1 | | 2 | -------- -------- | | -------- -------- | CJDBC |----| CJDBC | --------\ /-------- | \ / | | \/ | -------- /\ -------- | DB1 |/ \| DB2 | -------- --------
If one slide server or one database becomes unavailable the system
will still be operational. In order for this to work neither slide server should cache (if 1 updates the db and 2 has a cached version,
2
will not see the update).
I had a quick look at the src for slide 2.0 and it looks like
caching
is not configurable (cacheResults returns true in org/apache/slide/common/AbstractServiceBase.java). So, just to
confirm,
in order to switch caching off I will have to extend JDBCStore and overide cacheResults to return false?
In addition I would be interested if anyone has any feedback on the
above architecture (eg will it work?). It does not have to be super responsive but must be fault tolerant because, if all goes well,
many
other business critical systems will be relying on the system availability.
Regards,
Jamie.
-----Original Message-----
From: Andreas Probst [mailto:[EMAIL PROTECTED] Sent: 08 July 2004 06:35
To: Slide Developers Mailing List
Subject: Re: StandardStore, AbstractStore, caching
Hi Oliver,
thank you for the quick response. Sorry, but I copied it from cvs head. It's not fixed there. Below are the ID tags.
/home/cvspublic/jakarta-slide/src/share/org/apache/slide/store/AbstractStore.java,v
1.42 2004/06/23 09:13:42 ozeigermann Exp $
/home/cvspublic/jakarta-slide/src/share/org/apache/slide/store/StandardStore.java,v
1.22 2004/02/11 11:30:18 ozeigermann Exp $
Regards,
Andreas
On 7 Jul 2004 at 23:54, Oliver Zeigermann wrote:
Andreas Probst wrote:
for the project I'm working in I need to change the caching behaviour of Slide. Looking at StandardStore, which does the caching, I wonder:
If caching is disabled, read calls are forwarded to super (AbstractStore), which then calls the actual Store implementation.
If caching is enabled but the object to read is not in the cache, the calls are not forwarded to super but to the actual Store implementation, e.g. DescriptorsStore.
Why is it done this way? Is it just style? When super is called, the Stores are listed in a transaction...
I guess you are referring to 2.0, right? I have done this stuff
and
as
far as I remember, it was just non sense and I fixed it in the
current
CVS head.
Oliver
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
