CAS Distributed Ticket Registry ?
Davide Baroncelli
baroncelli at yahoo.com
Sat Sep 16 10:06:13 EDT 2006
>We've also considered a backend db (oracle here) to support clustered CAS servers. The two obvious solutions seem:
>1. distributed caches
>2. database backend
>I like distributed caches since it is generally light-weight though I'm not sure how it will scale with the number of servers/traffic increasing. Assuming you have a DB backend available/scalable, this seems to support a large number of >CAS server front-ends though the DB will be hit pretty hard.
Four years ago I had to replace a "distributed session" functionality based on an older vignette server so that our new java-based implementation didn't hit the database every time a user needed to have his or her session verified (in that architecture it could be at every click, if I remember well, because it had been a progressive port of functionalities out of vignette and into our turbine-backed java app). I choose to do it using javagroups (now jgroups), they had abstractions such as distributed and replicated hashtables (the difference was in async vs sync operation). In a typical work day we had 1000-1200 clients connected at once, which means that in the periods where everyone was logging in (mostly on market opening time, it was a trading online system) most of them would log in in the same time. The system did not have any problem with the load, nor did the network traffic show any noticeable increase. The shared memory approach is certainly feasible, and
JBossCache, which is now backed by jgroups could be the right technology. What bothers me a bit is:
1) it seems that as soon as one wants to put jbosscache into its architecture it has to put no less than six different jars inside (maybe more), including jboss-core, jboss-serialization, jboss-jmx and so on. The jmx part is especially bothering, it seems it's not well separated from the cache stuff, so even if one doesn't want to use it it throws exceptions on shutdown (didn't inspect this well, though)
2) I didn't analyze this problem well enough, but it seems that even if one doesn't want to use its transactional features JBossCache wants to use a transaction manager, tries to bind objects to the jndi (which in Tomcat is read-only) and so on. So as far as I could see it could not be a "real plug and play" approach, it seems one has to tweak it a bit: but as I said I didn't have time to inspect it further. I will do it in the next few weeks.
More information about the cas
mailing list