I think a few hundred databases could work if the load on each is low.
If you add a second server, you could have a primary on server a, a
secondary on server b, and an arbiter in the cloud on a small server.
That would let you remain up if you have a hardware failure with 2
machines plus a little.
Another thing to think about is the transition to sharding. One way
people can get in trouble is to wait until the system is slammed to
add shards. Then the system doesn't have enough capacity to perform
chunk migrations, so no data gets onto the new servers and the
existing servers remain overloaded. If you think you might have to add
shards later, I'd think about starting out sharded.
One thing I've seen is letting a single physical machine act as a
primary for one shard and a secondary for another. That way your
overall hardware requirement doesn't grow, but you could add capacity
quickly by bringing in additional hardware and moving from having
multiple shards on a box to one. It does add complexity to your system
though (need to set up sharding , config servers, mongos etc) but puts
you on a potentially smoother growth path for later. (The config
servers and mongos don't need a lot of hardware.)
Really whether its worth the complexity depends on how
predictable/controllable you expect the load on the system to be.
I hope this is helpful,
-- Max
On Fri, Oct 26, 2012 at 6:34 PM, Octavian Covalschi