A system and method for managing software upgrades in a distributed computing
system.
The distributed computing system may include a plurality of nodes which provide
one or more fault-tolerant services. The system and method perform software upgrades
in a sequential or "rolling" manner (e.g., node by node). The rolling upgrade process
allows all services and data of the distributed computing system to remain operable
and available throughout the upgrade process.