Currently we are looking for a solution to sync databases across multiple locations. We a location hierarchy such as Country -> State -> District -> Center. To increase speed and reliability of the access of data, we thought that we can have partial synchronisation of database as you go up the hierarchy.
e.g. USA / \ / \ New York Illinois / \ / \ NY City Long Island / \ \ / \ \ Manhattan Brooklyn Suffolk
Manhattan and Brooklyn will sync to NY City, NY City and Long Island will sync to New York and New York and Illinois will sync to USA database.
One main reason to do this is because the each location will only need to access data about itself and it's children. So the only node will all the data would be the USA node (which regular backups and possibly mirrored)
Would this be a reliable way to store data and increase speed?
If so what database would be best to implement this architecture? SQL, NoSQL?
Also are there any systems that already do this?