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