Hi,

There is no solution to the partitioning problem if you need consistency. The first impossibility proof appeared in Brian A. Coan, Brian M. Oki, and Elliot K. Kolodner. “Limitations on Database Availability when Networks Partition.” Proceedings of the Fifth Annual ACM Symposium on Principles of Distributed Computing (1986), pp. 187–194. If your machines are connected to the same network switch, they will all lose connectivity simultaneously if the switch goes down. You can then have 2 networks with something like heartbeat (the HA tool) for failover from one network to the other. If someone artificially introduces a network partition by misconfiguring the network (bad firewall or VPN setup) the you will have to do reconciliation (which cannot be done automatically). Some people have been thinking about the problem: Asplund, M. and Nadjm-Tehrani, S. 2006. Post-partition reconciliation protocols for maintaining consistency. In /Proceedings of the 2006 ACM Symposium on Applied Computing/ (Dijon, France, April 23 - 27, 2006). SAC '06. ACM, New York, NY, 710-717.

In all cases, you have to try to avoid partitions by designing carefully your network configuration. You will only be able to detect a partition when it is too late and what you want to do for reconciliation is application specific.

Hope this helps,
Emmanuel

I am running two controllers with RAIDB-1 scheme. But, the problem is when network is partitioned because of a switch failure. In this scenario, two controllers will receive user's requests from each. So, it will make two backends inconsistent. >From the Bianca's papers I reallized that this network partition very often can happen.

When I look at this mailing-list, Emmanuel suggested to unify database communication path and user request path in network topology. But, in our case, databases are already communicating via gigabit network, seperated from outside communication channel.

And, I read the "C-JDBC Horizontal Scalability: A controller replication user guide", and understood I need to make a JMX client which listens from JMX notification of Sequoia controllers. I think that this process will need to stop one controller, when two controllers are
partitioned, or switch a backend database to the read-only mode.

At this point, I have a quick question. I wonder if there is another better solution dealing with this sort of network partition in Sequoia.
Thank you for your reading.


Best,


------------------------------------------------------------------------

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia


--
Emmanuel Cecchet
FTO @ Frog Thinker Open Source Development & Consulting
--
Web: http://www.frogthinker.org
email: [EMAIL PROTECTED]
Skype: emmanuel_cecchet

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to