Distributed systems are usually client-server systems (and mixtures) where the distance between clusters of users would result in system degradation due to the communication bottlenecks. Multiple servers are used simultaneously, the servers share the data tables, often each supplying a subset suitable to each location. Here, synchronising the data between the servers creates a new set of challenges.
The multiple copies are synchronised over the (slower) WAN links which connect the remote clusters. Distributed systems can be made up of any of the available architectures. Often only parts of the whole dataset are held in each site.
* All of the data belonging to the company is theoretically available to all users.
* In practice, all of the data that is local to a user’s part of the company is available at a good speed. any data that is required from a remote part of the company may or may not be available at high speed depending on the design.
* Distributed systems are never built by preference but instead by necessity, when two or more distant sites are parts of the same company and need to share the same data (such as a parts inventory) then there are significant advantages to using a “single” database system.
* The individual segments can usually make fast alterations to data in the local server but communications between servers is bottlenecked by the WAN links.
* A choice must be made whether the local servers all hold copies of the ‘global’ dataset or whether they only hold their own ‘local’ subset of it.
* If the implementation allows users in remote sites to perform transactions on data that ‘belongs’ to a remote part of the company then it is possible that two alterations are made ‘simultaneously’ and that the database will have to be ‘corrected’ IE one or both transactions allowed or disallowed.
* The synchronization of the local databases is critical and serious design effort must be invested in this area