I have a simple yet tricky question - as far as I know Facebook, Google, etc have more than one server for obvious reasons - maintain 100% uptime, load distribution and some more.
My question is how do they synchronize the data on the sql/nosql tables behind each and every server. In other words, what do I need to look for in order to understand how they do that data synchronization?
For smaller applications data is replicated (a built in feature of several database systems) between nodes so that identical copies exist in more than one place.
Larger systems are either sharded out so different data exists in different places or clustered.
http://www.highscalability.com is a good resource for understanding the problems of running and scaling large web applications