(This issue has been brought up several times, but I can't find a JIRA for it, so I'm creating it now)
Confluence clustering allow us to add redundancy and load balancing to our wiki service with the aims at increasing availability and scalability of the service. The problem we face is that all of this goes to waste when we need to upgrade the application, because in order to do that we need to shut down the entire cluster.
This is becoming more and more unacceptable as our user base grows because a 5-10min outage often translates to thousands of missed page views.
I understand that sometimes it is not (easily) possible to deliver this feature - mainly in cases when the new version of the application depends on a database schema, which is incompatible with the previous version.
On the other hand, changes like this don't happen very often and in many cases database schema changes often don't break the previous application (the old application just can't take advantage of the new schema features because it is not aware of them).
What I suggest is to allow cluster upgrades without the requirement to shut down the cluster whenever possible. IMO this means most of the time if the version of the application used in the cluster is not very outdated.
I realize that this will most likely require someone to watch schema changes or other changes that would make "hot" cluster upgrade impossible (incompatibilities in the serialized objects, coherence upgrades, etc), but it shouldn't be too difficult for anyone who is heavily involved in the Confluence development.
High availability is not an optional feature for Enterprise applications, so please consider this request and make necessary changes to the application as well as to the development/release processes to make Confluence more Enterprise friendly.