Now that this is open season on the clustering topic, I'm going to toss in
an idea that has yet to be brought up. I realize that the group wants to
take it small bites at a time, and that a concise plan/path has yet to be
developed for implementing clustering, I'm going to toss in my 2cents
worth...
Much discussion seems to revolve around two issues, high availability and
load balancing. Both of these for the most part, deal with clustered
instances of the server. From what I have seen of other commercial servers,
this is what they do, run multiple instances in a clustered environment,
using different approaches to load balancing and failover/replication. This
is all good and fine, and I'm sure JBoss could provide both of these
services and claim victory for clustering. I think however that there is the
potential to do so much better than everyone else in this area. In addition
to LB and failover, why not provide a two level approach to the clustering?
By this I mean not just clustering the app server instance, but also cluster
the VMs underneath it? Gemstone is the only one I know of that does this.
No, I don't work for them, but I have used it in the past, and I think it is
a great piece of technology.
Consider: One instance of the server is run on top of multiple VMs, each one
configurable. The server can then load balance clients to the VMs, partition
an applications components across the VMs, meaning you can specify which
EJBs you want to run in the VMs individually, and other features. The server
can also create and destroy VMs on an as needed basis, based on current
load, VM heap size, etc., and can detect if/when a VM has crashed, and start
up another one to take it's place, and recycle VMs on a given schedule.
You could take this and then cluster the instance, so you have clustering
(instances) on top of clustering (VMs). Why did we want/need the capability?
Security and peace of mind mostly. We could partition our applications
effectively and know that if one application could bring down a server (yes
it does happen..) it would not affect the others. Granted, not all
organizations need to run more than one application, but some do. We knew
that if we had an app that was misbehaving in production, such as crashing
the VM or something, our clients really wouldn't know, because Gemstone
would just startup another VM to replace the one that died, allowing the app
to continue running while a real solution was found.
As far as load balancing goes, yes you can do this in hardware and LB across
physical machines, but some organizations don't use or want a farm of
hardware. Where I was, at Honeywell, they invested heavily in large Sun
machines (5500 and 6500s mostly), to reduce the system admins work, or so
they say. At most they would 'cluster' two machines, one being a failover
box for the other, so we had to rely on software load balancing for the
appserver. With the configurable VMs, we could specify how many clients were
allowed to connect to a given VM, keeping the response times very high. I've
seen tests that showed how response times gradually got slower as more
clients connected to the server, regardless of how much memory you allocated
to the VM. We could keep our heap sizes fairly small, and by running
multiple VMs, we could keep our response times high without having to go
with more physical machines.
This may seem like overkill and/or far fetched, but since JBoss is a
technically superior app server as it stands, maybe some of these ideas
could be included to make it even better. I don't know if the JBoss
infrastructure as it is would work in this kind of environment(?), but it
might be worth some consideration.
Robert McIntosh
The Middleware Company
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of marc fleury
Sent: Tuesday, March 06, 2001 6:27 PM
To: jBoss Developer
Subject: [jBoss-Dev] CL: Clustering, let's get started
Ok, it's been promised, it's been discussed, it has already started, it is
really wanted.
Also it will put JBoss on the map for ever...
The clustering.
I would like to "officially" call the season for clustering "open".
There have been some discussions already some public some private and I
believe we should really take this take by step. So we won't shoot for the
stars in the very beginning, just something simple.
I will assume the interim leadership for the implementation since there is
no clear lead yet and the team is yet to form. I invite all of you that
have touched the subject to publicly post and explain your view.
STEP ONE:
-Start 2 servers do "round robin" on STATELESS SESSION.
Simple right? That will be some work
go!
marc
_________________
Marc Fleury, Ph.D
[EMAIL PROTECTED]
_________________