Abstract— The objective of this paper is to provide an algorithm to solve the problem that when all clients are relying on
a single server. If that database becomes unavailable due to planned server downtime or from server failures, all of the
remote workers will be disconnected from their data. Data is stored on their system (user system). When the user connected
to the internet data automatically sink from their client system to the server in serial order. It also works on file handling.
When the system is disconnected from the network all the files (images) uploaded by user, saved on the client machine
folder when it is again connected to the server,automatically files (images) transferred from client to server.
Thread or process synchronization
Thread synchronization or serialization, strictly defined, is the application of particular mechanisms to ensure that
two concurrently-executing threads or processes do not execute specific portions of a program at the same time. If
one thread has begun to execute a serialized portion of the program, any other thread trying to execute this portion
must wait until the first thread finishes. Synchronization is used to control access to state both in small-scale
multiprocessing systems, in multithreaded environments, multiprocessor computers and in distributed computers
consisting of thousands of units, in banking and database systems, in web servers, and so on.
Data synchronization
A distinctly different (but related) concept is that of data synchronization. This refers to the need to keep multiple
copies of a set of data coherent with one another. Data synchronization is the process of establishing consistency
among data from a source to target data storage and vice versa, and the continuous harmonization of the data over
time. Data synchronization technologies are designed to synchronize a single set of data between two or more
devices, automatically copying changes back and forth. For example, a user's contact list on one mobile device can
be synchronized with other mobile devices or computers. Data synchronization can be local synchronization where
the device and computer are side-by-side and data are transferred or remote synchronization when a user is mobile
and the data is synchronized over a mobile network.
As seen in Fig.1, a remote database is free to exchange information with any other database. This type of solution
is useful when a team of people is working in remote locations and do not have access to a central database. These
workers often need to share information amongst each other, but since they do not have connectivity to the central
database they need to share information through some sort of peer-to-peer network. Data synchronization is
enabled through specialized software that tracks data versions as they are created and utilized. The process is
implemented in distributed systems where data elements are routed between several computers or systems. Each
computer may modify original data versions, depending on requirements. Data synchronization ensures that
regardless of data modifications, all changes are merged with the original data source. Data synchronization is also
used in data mirroring, where each data set is exactly replicated or synchronized within another device.
• Cache coherency, maintaining multiple copies of data in sync, across multiple caches.
• RAID (redundant array of independent disks), where data is written in a redundant fashion across multiple
disks, so that the loss of any one disk does not lead to a loss of data.
• Database replication, where copies of data in a database are kept in sync, despite possible large
geographical separation.
• Journaling, a technique used by many modern file systems to make sure that file metadata are updated on a
disk in a coherent, consistent manner.
Data Synchronization Techniques
The increasing decentralization of information raises the need to synchronize data across numerous devices and
data storage locations. Synchronization processes comprise a „source‟ and „destination‟ entity and, based on data
appearance, is categorized into unidirectional and bidirectional synchronization.
Unidirectional synchronization
Unidirectional synchronization [2] replaces all content of the destination entity with data from the source entity.
1. Back-up synchronization methods create replica/mirror files:
• New and updated files are copied from source to destination entity.
• New files added to the source entity are copied to the destination entity.
• Deleted files in the source are also deleted from the destination entity.
2. If older versions of files in the destination entity need to be kept, an archiving feature can be enabled which
includes that deleted files in the source entity are not deleted from the destination entity.
3. Consolidation does not keep track of file conflicts or deletions:
• New files added to the source are copied to the destination and new files added to destination are copied to
the source.
• Deleted files in the source are copied back from destination entities and vice versa.
• Updated files in the source copy over older files in the destination and vice versa.