- The CQ5.5 servicepacks are distributed as CRX packages. You can replicate these packages and on the publishs they are unpacked and installed.
- In a cluster the situation is different: You have only 1 repository. So when you have installed the servicepack on one node, the new versions of bundles and other stuff is unpacked to the repository (most likely to /libs). Then the magic (essentially the JcrInstaller) takes care, that the bundles are extracted to started.
I would not recommend to activate the service pack in a production environment, because then all publishs will be updated the same time. And as a restart is required, you might encounter downtimes. Of course you can make it work when you play with the replication agents :-)
many thanks for these helpful comments! I need to point out that we have a "share nothing" cluster, so there are two repositories involved. I was afraid, that the package would get replicated and that both cluster nodes would simultaneously install the package, possibly leading to...intersting...results. Is my fear irrational :-) ?
technically you have 2 repositories, but logically it's only one. So when you install a package, you execute this operation on one node, and the other node syncs the results of this operation (that means, it syncs the unpacked files), but it does not execute the operation itself as well. That's the repository part.
On top there is the JcrInstaller and OsgiInstaller, but these need to operate on both nodes, as OSGI per se is not clusteraware and needs to run on both nodes.