From: Paul S. <psn...@IF...> - 2002-12-05 02:13:03
|
Gentlemen, My name is Paul Snively. I'm the senior Java architect for http://www.ifilm.com, the seventh-largest video-streaming service in the world. We are in the process of redeploying our portal using Java technology. To that end, we have been investigating Hibernate extensively, and are now dealing with questions surrounding data caching. Our expected infrastructure for this redeployment involves ~10 application servers, possibly with another layer of a hopefully smaller number of machines, but still >1, acting as data servers. The Hibernate documentation goes into some detail regarding caching options, and Gavin King has been kind enough to expand on that information still further. In particular, our current understanding is that the use of JCS in Hibernate is recommended for clustered read-only environments, but cannot be used in clustered read-write environments. On the other hand, the JCS documents make quite clear that clustered "put" operations are supported and expected to work. Following Gavin's lead, one alternative that suggested itself to us was simply to rely on Hibernate's session-level cache exclusively and not use JCS at all, but feedback from Gavin suggests in no uncertain terms that such an approach is counterindicated. So our questions basically boil down to the following: 1) How mature is JCS? Who is using it? On how many machines? With which of the three major configurations (fully distributed, client/server, client/cluster)? 2) What was the process by which Gavin gained sufficient confidence in JCS to include it in Hibernate? 3) Why does Gavin indicate that JCS can't be used in a clustered read-write environment, in contradiction to the JCS documentation? 4) If we were able to commit to using Hibernate in a read-only fashion and doing our data writing some other way, changing the data out from under Hibernate, which various legacy admin tools will do anyway, does this change the preference profile between Hibernate's session-level cache vs. JCS? If so, how? The bottom line, quite frankly, is that we're nervous about relying on JCS in the absence of some reassurances about its maturity and use in the real world, as JCS is clearly attempting to solve difficult engineering issues, and this component will prove critical to our success should we choose to use it. The clearest alternative to us is to rely on Hibernate's own session-level caching and to do whatever we need to do in order to make that as efficient as humanly possible. Any feedback about our options would be most greatly appreciated. Many thanks, Paul Snively |