Suggestion on a replication scheme for my use-case?
I am working on an application that runs on multiple clients that talk to one main MySQL database. Additionally, we have a web application that uses the same MySQL database.
Due to latency issues, all clients will have to run their own local MySQL database which should be a copy of the main MySQL database. The web application remains to use the main MySQL database.
The clients only read from table A, and write to table B. The web application writes both to tables A and B.
How should I setup a replication scheme that ensures data consistency? It should be possible for clients to go offline开发者_JAVA百科 for an extended period of time. Is this even possible using MySQL or am I better of having a look at something like CouchDB? CouchDB seems to support this explicitly according to the website:
it allows for users and servers to access and update the same shared data while disconnected and then bi-directionally replicate those changes later
(from: http://couchdb.apache.org/docs/overview.html)
CouchDB has the semantics you need if it's feasible for you to move to away from MySQL.
You wouldn't even need to "two table" system. The document system has MVCC built in so you can update documents and resolve conflicts, etc. Replication is awesome and fully peer-to-peer and intended, by design, to support offline applications.
精彩评论