Ich studiere Couchbase jetzt, ich bin wirklich verwirrt durch die offizielle Beschreibung des Begriffs "Eimer" und "Vbucket", kann jemand erklären, was genau ein Eimer oder Vbucket ist? was ist der Unterschied? Besser, einige Analogien zu machen und einige Beispiele zu geben.
Bucket ist wie eine Datenbank bei RDBMS. Es enthält Dokumente, Ansichten und einige Konfigurationen. VBucket ist wie Shard bei RDBMS. Alle Schlüssel in CB, die auf #VBucket und #VBucket abgebildet sind, werden dem Server-Namen zugeordnet. Dank dieser Hash-Funktionen ergibt sich eine gleichmäßige Verteilung der Dokumente auf mehreren Knoten und die schnelle Bedienung des Dokuments durch seine ID.
Bucket ist ein logischer Schlüsselbereich von eindeutig codierten Dokumenten, die gleichmäßig auf alle Knoten in einem Cluster verteilt sind.
vBucket ist eine Teilmenge eines Buckets, der sich auf einem einzelnen Knoten befindet. Union aller vBuckets ist ein Eimer.
Stellen Sie sich vor, Sie haben drei Knoten:
%Vor%Ein Bucket ist eine Gruppe von Dokumenten (die sich in Struktur und Attributen unterscheiden können), die auf alle drei Knoten verteilt sind, aber denselben Schlüsselraum haben.
%Vor%Beachten Sie, dass ein Schlüssel in einem Bucket eindeutig sein muss, was im Vergleich zu einem Datenbankkonzept in RDBMS, in dem ein Schlüssel in einer Tabelle eindeutig ist, anders ist.
Der Bucket ist in 1024 Segmente unterteilt, die gleichmäßig über alle Knoten im Cluster verteilt sind. Diese Segmente sind virtuelle Buckets oder vBucketes. Also, in diesem Fall gibt es auf jedem Knoten 1024/3 vBuckets.
%Vor%Jedes vBucket hat seine zugehörigen Dokumente. Wenn die Suche durchgeführt wird, berechnet clusterMap den Hash des gesuchten Dokuments und identifiziert den Knoten und den vBucket, in dem sich das Dokument befindet.
Referenzen: Ссылка
Sie können mit der Couchbase-Dokumentation beginnen, Abschnitt "Architektur und Konzepte" Ссылка
Weitere Informationen zu Buckets finden Sie unter Ссылка .
Weitere Informationen zu vBuckets finden Sie unter Ссылка .
Kurz gesagt, Bucket ist eine Abstraktion, die bestimmte Ressourcen im Cluster beschreibt (wie RAM und Festplattenspeicher) und auch vom API-Standpunkt aus ist es der Namespace für die im System gespeicherten Dokumente, ähnlich wie in SQL World / p>