[Logo] Terracotta Discussion Forums (LEGACY READ-ONLY ARCHIVE)
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
Messages posted by: jdevins  XML
Profile for jdevins -> Messages posted by jdevins [7]
Author Message
Hey all,

I just read an article on The Server Side about EE scalability and there seem to be some rather questionable comments and conclusions about Terracotta in it. I'd reply to the article myself, but would prefer to see a "professional" do it! Just a heads up...
[url=http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplicationsPart2]
http://www.theserverside.com/tt/articles/article.tss?l=ScalingYourJavaEEApplicationsPart2[/url]

Josh
Ari, totally on the same page. It's pretty low on my list of things to be concerned about, and I'm sure we'll be calling for some consulting once we do get to that point! In all honesty, simply having caching (distributed or not) is going to be nice for us :)
No tuning yet at this point. I was only testing/curious about how the application reacted when the entire TC cluster was down in the event of a near-catastrophic failure. I know it's an edge case, but I have to take it into consideration.
Not in production yet, just started dev work with clustering ehcache. It's not an NFS problem though, as I can reproduce the blocking with a local, single TC server.

I'm currently working with 2.5.2, but will look for the 2.6 release before going to production (and/or call for support too). Thanks for the heads up!

EDIT: So do you prefer the networking active-passive versus the NFS-based method? My *assumption* was that the NFS-based was a bit more efficient. Although we will likely only have two nodes in the TC cluster.
Thanks Taylor. I certainly feel that Terracotta brings a lot to the table. We're only trying to explore how it reacts under all of the possible circumstances. I look forward to the addition to Terracotta that you mentioned, and in the meantime, I'll either wrap my cache calls, or simply live with the edge case scenario as it is. I don't think it will be a reason to not use Terracotta (I hope)!
Thanks for the replies. I have indeed read the "Configuring a Terracotta Server Cluster" and have the active-passive via NFS-mount cluster setup and running fine.

My issue with the failover/HA is that when I call my ehcache Cache and my TC cluster is down, all the calls just block until the active TC node comes back up. What I would prefer is if the calls to the cache would fail gracefully instead, in the same way a database connection would (i.e. you get an exception or some notification that the "system is down").

I am now thinking that perhaps I need to write a wrapper around my cache accesses, in order to provide a failsafe and a timeout should the cluster go down. I don't want all my threads to block forever (or uncontrollably) should the cluster be down for some reason. Again, I know this is an edge case, but I'm trying to "sell" TC to other people, and this seems to be a point of contention.
I have a couple of newbie questions:

1. I have ehcache clustered nicely to an active-passive TC server cluster. If I bring down *both* TC server nodes, calls to ehcache block, presumably trying to contact the TC server cluster. Is there no way to say, "if the TC server nodes are down, do everything locally only"? It would be nice to be able to have this fallback should the TC server cluster ever become unavailable. How reasonable is it to assume that with a TC server cluster, there will never be such a case?

2. I would like to have the TC server cluster have separate configuration files from the application/client nodes. I know that the documentation says that this is only suitable for development, since the application/client configurations could become out of sync. However, in practice, I don't see how keeping application-specific configuration on the TC server cluster is appropriate. That means every time I change an application, I have to change the config on the TC server cluster, and restart the cluster?

3. In order to achieve true high availability with TC, do I need to run the 2x2 setup where the application servers have TC servers on them?

4. My plan was to have one TC server cluster (active-passive setup), and have several applications use the same cluster, even if they are not sharing a heap. Is this advisable? Or would you have a separate TC server cluster per application?
 
Profile for jdevins -> Messages posted by jdevins [7]
Go to:   
Powered by JForum 2.1.7 © JForum Team