Hier ist, wie ich CAP diskutiere, insbesondere in Bezug auf P.
CA ist nur möglich, wenn Sie mit einer monolithischen Einzelserver-Datenbank einverstanden sind (möglicherweise mit Replikation, aber alle Daten auf einem "Fehlerblock" - Server gelten nicht als teilweise fehlerhaft).
Wenn Ihr Problem eine Skalierung, Verteilung und mehrere Server erfordert, können Netzwerkpartitionen auftreten. Sie benötigen bereits P. Nur wenige Probleme, die ich anspreche, sind für Paradigmen mit nur einem Server zugänglich (oder, wie Stonebraker sagte, "verteilt ist Tischeinsätze"). Wenn Sie ein CA-Problem finden, bieten Lösungen wie ein herkömmliches RDBMS ohne Skalierbarkeit viele Vorteile.
Für mich selten: Also fahren wir mit der Diskussion von AP gegen CP fort.
Sie können nur zwischen AP- und CP-Betrieb wählen, wenn Sie eine Partition haben. Wenn das Netzwerk und die Hardware ordnungsgemäß funktionieren, erhalten Sie Ihren Kuchen und essen ihn auch.
Lassen Sie uns die AP / CP-Unterscheidung diskutieren.
AP - Wenn eine Netzwerkpartition vorhanden ist, lassen Sie die unabhängigen Teile frei arbeiten.
CP - Wenn eine Netzwerkpartition vorhanden ist, fahren Sie Knoten herunter oder lassen Sie Lese- und Schreibvorgänge nicht zu, damit deterministische Fehler auftreten.
Ich mag Architekturen, die beides können, weil einige Probleme AP und andere CP sind - und einige Datenbanken beides können. Unter den CP- und AP-Lösungen gibt es auch Feinheiten.
In einem AP-Dataset haben Sie beispielsweise die Möglichkeit, sowohl inkonsistente Lesevorgänge durchzuführen als auch Schreibkonflikte zu generieren. Dies sind zwei verschiedene mögliche AP-Modi. Kann Ihr System für AP mit hoher Leseverfügbarkeit konfiguriert werden, Schreibkonflikte jedoch nicht zulassen? Oder kann Ihr AP-System Schreibkonflikte mit einem starken und flexiblen Auflösungssystem akzeptieren? Benötigen Sie irgendwann beides oder können Sie ein System auswählen, das nur eines ausführt?
Wie viel Nichtverfügbarkeit erhalten Sie in einem CP-System mit kleinen Partitionen (einzelner Server), falls vorhanden? Eine stärkere Replikation kann die Nichtverfügbarkeit in einem CP-System erhöhen. Wie geht das System mit diesen Kompromissen um?
Dies sind alles Fragen, die Sie mit CP vs AP stellen müssen.
Eine großartige Lektüre in diesem Bereich ist derzeit der Beitrag "12 Jahre später" von Brewer. Ich glaube, dies treibt die GAP-Debatte mit Klarheit voran und empfehle sie sehr.
http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed