You are not logged in.

Dear visitor, welcome to QtForum.org. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, August 1st 2005, 10:05am

RFC - System Designs

Hi Guys,

Do you guys have any idea on implementing a cost effective distributed system in QT. What i mean is we must be able to keep database in the client system and the same information should be available in other clients. So that in the absence of a netwok connection individual clients must be able to Operate and once there is a network the data could be synchronised.

Any idea
Check this 4m out http://QtCentre.Org - The Qt Community Centre

jacek

Master

  • "jacek" is male

Posts: 2,729

Location: Warsaw, Poland

  • Send private message

2

Monday, August 1st 2005, 5:11pm

RE: RFC - System Designs

Quoted

Originally posted by sunil_thaha
So that in the absence of a netwok connection individual clients must be able to Operate and once there is a network the data could be synchronised.

Suppose you have access to n versions of that database (from n different nodes). Do you know how to reliably synchronize your data in such situation? Will it be sufficient to pick the latest version or each row? Does each node operate only on a part of that database? Does each of these nodes can add rows to database tables?

3

Tuesday, August 2nd 2005, 4:51am

RE: RFC - System Designs

OK. Lets view the scenario this way.

There are n Clients and each client has to update the data belonging to that clinet only. All the data need to be synchronised based on the timestamp. So v have database installed in all the clients. How do we synchonise them? Will the database do this for itself ?
One more Queston :
Is this approach cost effective ? When compared to a centralised database approach?
i.e If the clients are placed abroad and not planning to use the internet or leased line. What other ways exists other than a dialup connection?
Check this 4m out http://QtCentre.Org - The Qt Community Centre

This post has been edited 1 times, last edit by "sunil_thaha" (Aug 2nd 2005, 5:02am)


jacek

Master

  • "jacek" is male

Posts: 2,729

Location: Warsaw, Poland

  • Send private message

4

Tuesday, August 2nd 2005, 1:26pm

RE: RFC - System Designs

That's a bit different story. I thought you want to synchronize data in real time. If you want to use dial-up connections, you can write separate program which does the synchronization upon request.

The easiest solution is to have a designated server that will hold "up to date" data and each of the clients would connect to it, send their update and get new version of the database. This way each of the clients will have to make only one connection to get the data.

If you add a version number to each part of the database that is incremented when data is modified[1], you could reduce the amount of data that client must download (by omiting the data that the client already has).

Another solution is that each of the clients can synchronize with any other client. In such case version numbers are required. When two clients synchronize with each other, they will have to exchange the newest parts of the database. This solution is more robust, but clients might need more time to get in sync (you can still make them connect to one designated client to get faster synchronization, but when it's down you can switch to another one).

If you use commercial database, probably it has some replication tool --- check whether it won't solve your problem, before you start designing your own system.


[1] You don't have to increase the version number each time client modifies the database, but you must do this at least with the first modification after the synchronization.

5

Wednesday, August 3rd 2005, 4:58am

RE: RFC - System Designs

I am checking out the the Databases that supports distributed achitecture.
I will be back soon :)
Check this 4m out http://QtCentre.Org - The Qt Community Centre