A cluster usually describes something built with several nodes. So a cluster of mongodbs could be multiple servers that know of each other. The difference between aggregate oriented nosql databases like mongodb and SQL is that the mongodb cluster does not need 1 shared datastorage so the scaling and replication mechanism is different.
There are multiple scenarios as to when and why. The most common is preformance.
Usually the cluster hast internal scaling and will be seen as 1 big machine (in SQL) at a certain point 1 machine will exhaust the amount of RAM / HD it can simultanious use. That is when you start clustering.
Another way can be spatial distribution or domain specific aggregation. There are multiple reasons to use a cluster the most common one as I mentioned is performance.
Also the definition of cluster varies based on the technology because in noSQL the move was away from 1 big machine to multiple small machines which then were called shards but having n+ shards can be seen as cluster.
Long story short, if you cannot physically scale with 1 machine anymore (based on your constraints) on strategy is to use a cluster of servers to handle the workload.
j
stuff ;)
A cluster usually describes something built with several nodes. So a cluster of mongodbs could be multiple servers that know of each other. The difference between aggregate oriented nosql databases like mongodb and SQL is that the mongodb cluster does not need 1 shared datastorage so the scaling and replication mechanism is different.
Was this your question?