2014-11-26 21 views
6

Nach einigen googeln, die ich gefunden habe:Kann relationale Datenbank horizontale Skalierung

Hinweis von mysql docs:

MySQL Cluster automatisch Scherben (Partitionen) Tabellen über die Knoten, Datenbanken ermöglichen horizontal auf niedrig Kosten zu skalieren Rohstoff Hardware zu dienen Lese- und Schreibintensive Auslastungen, zugegriffen sowohl von SQL und direkt über NoSQL APIs.

Kann die relationale Datenbank horizontal skaliert werden? Wird es irgendwie auf der NoSQL-Datenbank basieren?

Sie jemand eine wirkliche Welt Beispiel haben?

Wie kann ich verwalten SQL-Anfragen, Transaktionen und so weiter in einer solchen Datenbank?

+0

Werfen Sie einen Blick auf [JetPants] (https://github.com/tumblr/jetpants) und sehen, was Sie denken. Diese Frage ist zu umfangreich für das StackOverflow-Format. – tadman

+0

Letztendlich sind alle Datenbanken NoSQL, bis Sie SQL hinzufügen. Ich mache Witze, aber ernst. Alles, was ein dbms tut, organisiert Dateien in schnell zugängliche Schlüssel/Wert-Paare. – theMayer

+0

CAP-Theorem ist eine Antwort. – Maksym

Antwort

7

Ich denke, die Antwort ist, eindeutig, ja. Sie müssen bedenken, dass SQL einfach eine Datenzugriffssprache ist. Es gibt absolut keinen Grund, warum es nicht auf mehrere Computer und Netzwerkpartitionen erweitert werden kann. Ist es ein herausforderndes Problem? Sicherlich, und deshalb ist Software, die es tut, in den Kinderschuhen.

Nun, ich denke, was Sie versuchen zu fragen ist "Können alle Funktionen, die ich kenne und die in einem relationalen Datenbank-Managementsystem vom Typ SQL ankommen, so entwickelt werden, dass auf diese Weise mehrere Server arbeiten?" Während ich zugeben muss, dass ich das Problem nicht gründlich studiert habe, gibt es da draußen Sätze, die sagen: "Nein, das kann nicht". Consistency-Availability-Partition Theorem postuliert, dass wir nicht alle drei Qualitäten auf dem gleichen Niveau haben können.

Nun, für alle praktischen Zwecke „sharding“ oder „Partitionierung“ oder was auch immer Sie es nennen wollen, ist nicht weg; im Gegenteil. Dies bedeutet, dass wir angesichts des Grades, zu dem das CAP-Theorem gilt, die Art und Weise, wie wir über Datenbanken denken, und wie wir mit ihnen interagieren (zumindest in gewissem Maße), verschieben müssen. Viele Entwickler haben bereits die Umstellung vorgenommen, um auf einer No-SQL-Plattform erfolgreich zu sein, viele andere jedoch nicht. Letztendlich wird eine ausreichende Reife des Modells und effektive Workarounds erreicht werden, so dass traditionelle SQL-Datenbanken in dem Sinne, wie Sie es nennen, mehr oder weniger praktisch auf mehreren Rechnern sein werden. Das fängt schon an, sich auszubreiten, und ich würde sagen, geben Sie es noch ein paar Jahre und wir werden zu diesem Punkt sein. Oder wir haben kollektiv das Denken auf den Punkt verlagert, wo es nicht mehr nötig ist, und die Welt wird ein besserer Ort sein. :)

+0

Danke, ich habe noch nie von CAP gehört, während ich gelesen habe, dass ich nützliche Links über Transaktionen für NoSQL http://www.infoq.com/articles/MarkLogic-NoSQL-with-Transactions gefunden habe. – Maksym

+0

Sie sind willkommen, froh, dass es hilfreich war – theMayer

2

Danke für die Frage und Antwort. Ich habe versucht, dies zu jemandem wie folgt zu erklären:

In Bezug auf die CAP Theorem, können Sie nicht alle drei haben. Also, wenn eine Partition (Netzwerk- oder Serverausfall):

  • A relational database auf einem einzelnen Server gibt Ihnen C (Konsistenz). Wenn also eine P (Partition - Server/Netzwerkfehler) auftritt, nicht A (Verfügbarkeit - db geht) haben

  • A nosql datastore gibt Ihnen A, so dass, wenn ein P auftritt, können Sie nicht haben C (eine oder mehrere Ihrer replizierten Partitionen werden aus Sync, bis die N/W kommt zurück und sie alle synchronisieren).So wird es nur sein eventually consistent

Verwandte Themen