Viele Datenbanken haben jetzt tatsächlich unterschiedliche Konfigurationen und können je nach den Einstellungen entweder CA, CP, AP usw. sein, aber nicht alle drei gleichzeitig. Einige Datenbanken bemühen sich tatsächlich, alle drei zu unterstützen, priorisieren sie jedoch in einer bestimmten Weise.
Zum Beispiel kann MySQL abhängig von den Konfigurationen CP und CA sein. Standardmäßig ist es CA, da es einem Master-Slave-Paradigma folgt, dessen Daten zu den Slaves repliziert werden. Die Partitionstoleranz wird geopfert, wenn eine Gruppe von Slaves die Verbindung zum Master verliert und entscheidet sich daher, einen neuen Master zu wählen, der zwei Master mit eigenen Slaves erstellt.
Allerdings hat MySQL auch eine andere Konfiguration, die eine gruppierte Konfiguration ist. Es priorisiert CP über die Verfügbarkeit, z. Der Cluster wird heruntergefahren, wenn nicht genügend aktive Knoten für die Bereitstellung aller Daten vorhanden sind.
Es gibt wahrscheinlich mehr Konfigurationen für MySQL, die andere CAP-Theorem-Kombinationen erfüllen, aber insgesamt wollte ich nur sagen, dass es davon abhängt, was Ihr System benötigt. Manchmal sind Datenbanken für eine Konfiguration besser als andere, daher ist es am besten zu sehen, welche Arten von Problemen auch bei der Verwendung einer bestimmten Konfiguration auftreten können.
Für die Umsetzung des CAP-Theorems würde ich empfehlen, einen weiteren Blick auf verschiedene Datenbanken zu werfen und wie sie die Prioritäten für das CAP-Theorem umsetzen. Es gibt einfach zu viele verschiedene Möglichkeiten, sie zu implementieren, z. Im Allgemeinen wird das Master-Slave-Modell für CA-Systeme, der Hash-Ring für AP-Systeme usw. verwendet.
MongoDB folgt auch dem Master-Slave-Setup, aber warum wird es als Partitionstolerant betrachtet? – Glide
Partition-tolerant ist für Netzwerk-down, andere Systemfehler. Zuvor wurde mysql auf einem Rechner eingerichtet, so dass es keine Möglichkeit gibt, das Netzwerk herunterzufahren, oder ein Systemfehler bedeutet, dass es keine Möglichkeit gibt, dass ein Knoten aufgrund eines Netzwerkausfalls oder eines Systemfehlers nicht antwortet und andere funktionieren. Aber in mongodb können wir auf verschiedenen -2-Rechner einrichten, warum es auch Partition Tolerant berücksichtigt. Aber heutzutage betrachtete mysql auch Partitionstoleranz. –
Wenn MySQL auch als partitionstolerant gilt, wird es dann als CAP betrachtet? (d. h. alle 3 konsistent, verfügbar, * UND * partitionstolerant) – Glide