0

we are developing a standalone and distributed (web) application framework. we have sqlite dbs on each machine and framework saves data on that machine but if the machines are in network then they need to synchronize their data to other machines as well and the data should be consitent. e.g. A user can register on any machine but that information should be replicated to all other machines as well, user can login to any machine and then move to any other machine without re-authentication(machine will show list of all online machines and user can click on any of it to move to that machines web app).

We can have a concept of a master machine but that machine will be also be a peer and not a dedicated master(server), the purpsoe of that master machine is to keep single point of reference for machines instead of asking peer for information.

To make data consitent one way we were thinkin was to create data on master machine first and then make a copy on local machine to avoid inconsitent data.( e.g. two users creating a user with same username). SO machines will have one point to verify data to avoid duplications and network congestion.

And we don't need to replicate/synchronize every data but just the user, sessions etc.

There are number of queries.

How to handle it in transactions? whats the best approach for it?

Guids are the identifiers, should we keep the ids same everywhere or every data source can have its own ids?

We need to make synchronizer as a separate tool so other services can also use it for sending the data/files and replication.

and we are using .net technologies. we were thinkin about pnrp as the base tech stack.

Waqas
  • 424
  • 7
  • 15
  • What happens if the master machine drops out of the P2P network? If it is guaranteed to be available, then it is a server and your network becomes _much_ simpler (with a single point of failure); if it isn't guaranteed to be available, you might need to think of how to do a 'master election' to decide on a new master automatically. That is a complex topic. – halfer Apr 16 '12 at 16:56
  • For bidirectional synchronization of data across a number of peers, have a look at http://refuge.io/. – halfer Apr 16 '12 at 16:58
  • we also have a failover machine. – Waqas Apr 25 '12 at 07:04

0 Answers0