Java – is there any framework to synchronize data generated on one peer with all other peers in an unreliable network?
We are developing a system with the following requirements
>There are n systems, each generating its own unique data > each system needs data from other systems to perform its ultimate goal > these systems talk to each other on unreliable networks. > It is expected that some systems will be completely unavailable for a long time (but may contact some peers in contact with other networks)
In other words, each system needs to replicate its data to n peer systems Ideally, this would be done in an intelligent manner
I consider studying database synchronization framework, but I worry that this problem is excessive I don't think row conflict is possible because the data of each system is completely independent of other systems
The question is, do you know any framework that can help solve this problem? Or maybe a way to explain this problem, which may help me find a solution
Finally, ideally, the framework will be in C (possibly Java)
Solution
SymmetricDS. org
The solution you are looking for sounds like open source software symmetricds
"Symmetricds is an asynchronous data replication software package that supports multiple users and two-way synchronization. It uses web and database technology to copy tables between relational databases. If necessary, it can implement the software in real time. The software aims to expand a large number of databases, connect across low bandwidth, and withstand network outage time." - symmetricds.org
Symmetric is designed to be used as a Java library and stand - alone applications When used with lightweight databases such as H2, you can avoid overuse scenarios H2 can choose to run embedded in the application and store the data in memory or disk
Disclaimer: I recently started working for jumpmind, the company that developed this software