I have a few questions regarding sharing in MongoDB :
My understanding is that sharding implies the data is spread across multiple machines while partitioning does not necessarily. Is this understanding correct in MongoDB ? Also, replication is simply an extra replica on a different node.
If sharding does imply a DB stores across multiple machines, right now I have a 3 nodes cluster (1 master + 2 slaves), should I re-config (or re-install) to form a cluster so that all nodes could read/write (not just master could write) ?
Is 3-nodes cluster enough for sharding with reasonable performance? or need more nodes in the cluster ?
Typically how large a DB could make use of sharding reasonably ? What I mean is that if a DB is too small, the disadvantage of sharding (e.g., the query overhead or the extra replications due to sharding, etc) might be over the advantage of sharding, hence sharding would not be a good choice. Is there any magic number ? for example, how many number of rows of each shard-ID would make sharding reasonable (otherwise would considered too small)? or how large a DB (how many TB or GB) could make full use of sharding, etc, etc.
I appreciate your opinion,