Instanzen

Auf dieser Seite werden die Konzepte von Cloud Spanner-Instanzen, -Instanzkonfigurationen und -Knoten vorgestellt. Außerdem werden die Vor- und Nachteile regionaler und multiregionaler Instanzen sowie deren Unterschiede beschrieben. Wenn Sie nicht mit der Funktionsweise von Replikationen in Cloud Spanner vertraut sind, lesen Sie zuerst die Informationen zu Replikationen.

Überblick über Instanzen

Zur Verwendung von Cloud Spanner müssen Sie zuerst eine Instanz von Cloud Spanner in Ihrem Google Cloud-Projekt erstellen. Diese Instanz ist eine Zuordnung von Ressourcen, die von den in dieser Instanz erstellten Cloud Spanner-Datenbanken verwendet werden.

Bei der Instanzerstellung gibt es zwei wichtige Auswahlmöglichkeiten: die Instanzkonfiguration und die Knotenzahl. Durch diese Auswahlmöglichkeiten werden der Standort und die Menge der Bereitstellungs- und Speicherressourcen der Instanz festgelegt. Die Konfigurationsauswahl gilt für die jeweilige Instanz dauerhaft. Sie können jedoch die Knotenzahl bei Bedarf nachträglich ändern.

Instanzkonfiguration

Über eine Instanzkonfiguration werden die geografische Platzierung und Replikation der Datenbanken in der jeweiligen Instanz definiert. Instanzen werden bei der Erstellung entweder als regional (alle Ressourcen befinden sich in nur einer Google Cloud-Region) oder als multiregional (die Ressourcen verteilen sich auf mehrere Regionen) konfiguriert. Sie treffen diese Auswahl, indem Sie eine Instanzkonfiguration auswählen, durch die bestimmt wird, wo die Daten für diese Instanz gespeichert werden. Regionale und multiregionale Konfigurationen werden weiter unten ausführlicher beschrieben.

Knotenzahl

Wenn Sie eine Instanz erstellen, müssen Sie nicht nur den Speicherort für die Daten, sondern auch die Knotenzahl bzw. die Anzahl der Knoten auswählen, die dieser Instanz zugewiesen werden sollen. Durch die festgelegte Knotenzahl wird die Menge der Bereitstellungs- und Speicherressourcen bestimmt, die in der Instanz für Datenbanken verfügbar sind.

Jeder Knoten bietet bis zu 2 TB Speicherplatz. Die Spitzenwerte, die mit Knoten für den Durchsatz von Lese- und Schreibvorgängen erreicht werden können, hängen von der Instanzkonfiguration sowie vom Schemadesign und von den Dataset-Eigenschaften ab. Weitere Informationen finden Sie in den Abschnitten zur Leistung regionaler Konfigurationen und zur Leistung multiregionaler Konfigurationen.

Nachdem Sie eine Instanz erstellt haben, können Sie ihr später Knoten hinzufügen. In den meisten Fällen können Sie Knoten auch entfernen. Es gibt jedoch einige Fälle, in denen Knoten nicht entfernt werden können:

  • Beim Entfernen der Knoten müsste die Instanz mehr als zwei TB an Daten pro Knoten speichern.
  • Beruhend auf Ihren bisherigen Nutzungsmustern hat Cloud Spanner eine große Anzahl von Splits für die Daten Ihrer Instanz erstellt und könnte die Splits nach dem Entfernen der Knoten nicht verwalten.

Mit der Cloud Console, dem gcloud-Befehlszeilentool oder den Clientbibliotheken können Sie die Anzahl der Knoten ändern.

Cloud Spanner hat keinen Sperrmodus. Cloud Spanner-Knoten sind dedizierte Ressourcen. Auch wenn keine Arbeitslast ausgeführt wird, führen diese regelmäßig Arbeiten im Hintergrund durch, um Ihre Daten zu optimieren und zu schützen.

Knoten im Vergleich zu Replikaten

Sollten Sie die Bereitstellungs- und Speicherressourcen in Ihrer Instanz hochskalieren müssen, fügen Sie dieser Instanz weitere Knoten hinzu. Beachten Sie, dass das Hinzufügen eines Knotens nicht die Anzahl der Replikate erhöht, da diese abhängig von der Konfiguration festgelegt sind, sondern die Anzahl der Ressourcen, die jedem Replikat in der Instanz zur Verfügung stehen. Durch das Hinzufügen von Knoten erhält jedes Replikat mehr CPU und Arbeitsspeicher, wodurch der Durchsatz des Replikats erhöht wird. Das heißt, dass pro Sekunde mehr Lese- und Schreibvorgänge ausgeführt werden können als zuvor. Im Endeffekt ist die Anzahl der Cloud Spanner-Server in den einzelnen Replikaten der Instanz mit der Knotenzahl der Instanz identisch. Daher entspricht die Gesamtzahl der Server in einer Cloud Spanner-Instanz der Anzahl an Knoten, die die Instanz mit der Anzahl der Replikate in der Instanz multipliziert hat.

Regionale Konfigurationen

Google Cloud-Dienste sind an Standorten in Nordamerika, Südamerika, Europa, Asien und Australien verfügbar. Wenn sich Ihre Nutzer und Dienste in einer einzigen Region befinden, sollten Sie eine regionale Instanzkonfiguration wählen, um die Latenz bei Lese- und Schreibvorgängen möglichst gering zu halten.

Verfügbare Konfigurationen

Cloud Spanner bietet folgende regionale Instanzkonfigurationen:

Name der Region Beschreibung der Region
Amerika
northamerica-northeast1 Montreal
southamerica-east1 São Paulo
us-central1 Iowa
us-east1 South Carolina
us-east4 Northern Virginia
us-west1 Oregon
us-west2 Los Angeles
us-west3 Salt Lake City
us-west4 Las Vegas
Europa
europe-north1 Finnland
europe-west1 Belgien
europe-west2 London
europe-west3 Frankfurt
europe-west4 Niederlande
europe-west6 Zürich
Asia Pacific
asia-south1 Mumbai
asia-east1 Taiwan
asia-east2 Hongkong
asia-northeast1 Tokio
asia-northeast2 Osaka
asia-northeast3 Seoul
asia-southeast1 Singapur
australia-southeast1 Sydney

Für jede regionale Konfiguration verwaltet Cloud Spanner drei nicht schreibgeschützte Replikate, wobei sich jedes Replikat in der jeweiligen Region in einer anderen Zone von Google Cloud befindet. Jedes nicht schreibgeschützte Replikat enthält eine vollständige Kopie der operativen Datenbank, die Lese-Schreib-Anforderungen und schreibgeschützte Anforderungen verarbeiten kann. Cloud Spanner greift auf Replikate in verschiedenen Zonen zurück, damit die Datenbank auch dann verfügbar ist, wenn es in einer einzelnen Zone zu einem Ausfall kommt.

Replikation

Regionale Konfigurationen enthalten genau drei nicht schreibgeschützte Replikate. Wie im Artikel zum Thema Replikation in Cloud Spanner beschrieben, ist für jede Cloud Spanner-Mutation ein Schreibquorum erforderlich, das sich aus einer Mehrheit der votierenden Replikate zusammensetzt. Schreibquoren werden aus zwei der drei in regionalen Konfigurationen vorhandenen Replikate gebildet.

Best Practices

Beachten Sie die folgenden Best Practices, um eine optimale Leistung zu erzielen:

  • Erstellen Sie ein Schema, das Hotspots und andere Leistungsprobleme verhindert.
  • Platzieren Sie wichtige Compute-Ressourcen in derselben Region wie die Cloud Spanner-Instanz.
  • Stellen Sie genügend Cloud Spanner-Knoten bereit, damit die Auslastung von CPUs mit hoher Priorität 65 % nicht übersteigt.

Leistung

Wenn Sie die oben beschriebenen Best Practices befolgen, kann jeder Cloud Spanner-Knoten bis zu 10.000 Abfragen pro Sekunde (queries per second, QPS) für Lesevorgänge bzw. 2.000 Abfragen pro Sekunde für Schreibvorgänge bereitstellen (wenn einzelne Zeilen mit 1 KB Daten pro Zeile geschrieben werden).

Multiregionale Konfigurationen

Wie oben beschrieben, werden bei regionalen Konfigurationen von Cloud Spanner Daten zwischen mehreren Zonen innerhalb einer Region repliziert. Wenn Ihre Anwendung jedoch häufig Daten aus mehreren geografischen Standorten lesen muss (z. B. um diese für Nutzer in Nordamerika und Asien verfügbar zu machen) oder wenn Ihre Schreibvorgänge einem anderen Standort entstammen als Ihre Lesevorgänge (z. B. bei umfangreichen Arbeitslasten an Schreibvorgängen in Nordamerika und Lesevorgängen in Europa), ist eine regionale Konfiguration möglicherweise nicht ideal.

Bei multiregionalen Konfigurationen können die Daten der Datenbank nicht nur in mehreren Zonen, sondern in mehreren Zonen, die auf mehrere Regionen verteilt sind, repliziert werden – so wie in der Instanzkonfiguration festgelegt. Mithilfe dieser zusätzlichen Replikate können Sie Daten mit geringer Latenz aus mehreren Standorten lesen, die sich in der Nähe oder innerhalb der Regionen der Konfiguration befinden. Hieraus ergeben sich sowohl Vor- als auch Nachteile. In einer multiregionalen Konfiguration sind die für ein Quorum benötigten (nicht schreibgeschützten) Replikate auf mehr als eine Region verteilt. Daher kann zusätzliche Netzwerklatenz auftreten, wenn diese Replikate miteinander kommunizieren, um über das Festschreiben von Schreibvorgängen abzustimmen. Dies bedeutet, dass Ihre Anwendung in multiregionalen Konfigurationen Lesevorgänge an mehr Orten schneller ausführen kann, was jedoch eine etwas höhere Schreiblatenz nach sich zieht.

Verfügbare Konfigurationen

Ein Kontinent

Konfigurationsname Konfigurationsstandort Standardmäßige führende Region Zusätzliche nicht schreibgeschützte Region Schreibgeschützte Regionen
nam3 Nordamerika us-east4 us-east1
nam6 Nordamerika us-central1 us-east1 us-west1
us-west2
eur3 Europa europe-west1 europe-west4

Drei Kontinente

Konfigurationsname Konfigurationsstandorte Standardmäßige führende Region Zusätzliche nicht schreibgeschützte Region Schreibgeschützte Regionen
nam-eur-asia1 Nordamerika, Europa und Asien us-central1 us-central2
(Oklahoma — private Google Cloud-Region)
europe-west1
asia-east1

Vorteile

Multiregionale Instanzen bieten folgende große Vorteile:

  • Verfügbarkeit von 99,999 %: Dies übersteigt die Verfügbarkeit von 99,99 %, die regionale Konfigurationen von Cloud Spanner bieten.

  • Datenverteilung: Cloud Spanner repliziert die Daten automatisch zwischen Regionen, in denen hohe Konsistenz garantiert wird. So können Ihre Daten dort gespeichert werden, wo sie verwendet werden, wodurch die Latenz verringert werden kann.

  • Externe Konsistenz: Obwohl Cloud Spanner Daten in geografisch weit voneinander entfernten Standorten repliziert, können Sie Cloud Spanner wie eine auf nur einem Computer ausgeführten Datenbank verwenden. Für Transaktionen wird die Serialisierbarkeit garantiert. Außerdem gleicht die Reihenfolge der Transaktionen in der Datenbank der Reihenfolge, in der Clients feststellen, ob die Transaktionen festgeschrieben wurden. Durch externe Konsistenz wird dahingehend eine bessere Garantie geboten, als durch die Strong Consistency (hohe Konsistenz), welche von einigen anderen Produkten geboten wird. Weitere Informationen zu diesem Attribut erhalten Sie unter TrueTime und externe Konsistenz.

Replikation

Jede multiregionale Konfiguration enthält zwei Regionen, die als nicht schreibgeschützte Regionen festgelegt sind, von denen jede zwei nicht schreibgeschützte Replikate enthält. Eine dieser nicht schreibgeschützten Regionen wird als standardmäßig führende Region festgelegt. Dies bedeutet, dass sie die Leader-Replikate Ihrer Datenbank enthält. Cloud Spanner platziert außerdem ein Zeugenreplikat in einer dritten Region, die als Zeugenregion bezeichnet wird.

Jedes Mal, wenn ein Client eine Mutation für Ihre Datenbank ausgibt, bildet sich ein Schreibquorum, das aus einem der Replikate aus der standardmäßig führenden Region und zwei beliebigen der zusätzlichen vier abstimmenden Replikate besteht. (Das Quorum könnte aus Replikaten aus zwei oder drei der Regionen Ihrer Konfiguration gebildet werden, abhängig davon, welche anderen Replikate an der Abstimmung teilnehmen.) Zusätzlich zu diesen fünf votierenden Replikaten kann die Konfiguration auch schreibgeschützte Replikate zum Verarbeiten von Lesevorgängen mit niedriger Latenz enthalten. Die Regionen mit schreibgeschützten Replikaten werden als schreibgeschützte Regionen bezeichnet.

Im Allgemeinen werden in einer multiregionalen Konfiguration die votierenden Regionen geografisch nah beieinander platziert, d .h., weniger als 1.609 km voneinander entfernt, damit ein Quorum mit niedriger Latenz für schnelle Schreibvorgänge gebildet werden kann (weitere Informationen). Dennoch sind die Regionen weit genug voneinander entfernt – in der Regel mindestens einige hundert Meilen (ein Vielfaches von 161 km) – damit koordinierte Ausfälle vermieden werden können.

In den nächsten Abschnitten werden die einzelnen Regionstypen genauer beschrieben. Außerdem wird erläutert, wie Sie Ihre Auslastung an Schreib- und Lesevorgängen entsprechend am besten verteilen.

Regionstypen

Nicht schreibgeschützte Regionen

Wie oben beschrieben, enthält jede multiregionale Konfiguration zwei nicht schreibgeschützte Regionen, die jeweils zwei nicht schreibgeschützte Replikate enthalten. Eine dieser nicht schreibgeschützten Regionen wird als standardmäßig führende Region festgelegt, in der Leader-Replikate platziert werden. Unter normalen Bedingungen, also wenn alle Replikate verfügbar sind, enthält die standardmäßig führende Region die Leader. Schreibvorgänge werden daher im Normalfall dort zuerst verarbeitet. Wenn Leader ausfallen, fungieren automatisch andere Replikate in der standardmäßig führenden Region als Leader. Tatsächlich führen Leader Eigendiagnosen durch und können daher präventiv ihre Funktion als Leader abgeben, wenn sie feststellen, dass ihre Integrität kompromittiert wurde.

Die zweite nicht schreibgeschützte Region enthält die zusätzlichen Replikate, die als Leader fungieren können. Im unwahrscheinlichen Fall des Verlusts der standardmäßig führenden Region werden aus der zweiten nicht schreibgeschützten Region neue Leader-Replikate ausgewählt.

Schreibgeschützte Regionen

Schreibgeschützte Regionen enthalten schreibgeschützte Replikate, die Lesevorgänge mit niedriger Latenz für Clients ausführen können, die sich außerhalb der nicht schreibgeschützten Regionen befinden.

Zeugenregionen

Eine Zeugenregion enthält ein Zeugenreplikat, welches zum Abstimmen über das Festschreiben von Schreibvorgängen verwendet wird. Zeugen werden in dem seltenen Fall wichtig, wenn die nicht schreibgeschützten Regionen nicht mehr verfügbar sind.

Best Practices

Beachten Sie die folgenden Best Practices, um eine optimale Leistung zu erzielen:

  • Erstellen Sie ein Schema, das Hotspots und andere Leistungsprobleme verhindert.
  • Zum Erzielen einer optimalen Schreiblatenz sollten Sie die Rechenressourcen für schreibintensive Arbeitslasten innerhalb oder in der Nähe der standardmäßig führenden Region platzieren.
  • Zum Erzielen einer optimalen Leseleistung außerhalb der standardmäßig führenden Region sollten Sie als Schwellwert für die Veralterung mindestens 15 Sekunden einstellen.
  • Platzieren Sie wichtige Compute-Ressourcen in mehreren Regionen, damit Sie vermeiden können, dass Arbeitslasten von einer einzigen Region abhängig sind. Eine gute Option ist, sie neben den beiden verschiedenen Regionen mit Lese-/Schreibzugriff zu platzieren, damit ein Ausfall einer Region nicht Ihre gesamte Anwendung beeinträchtigt.
  • Stellen Sie genügend Cloud Spanner-Knoten bereit, um die Auslastung von CPUs mit hoher Priorität unter 45 % in jeder Region zu halten.

Leistung

Jede Cloud Spanner-Konfiguration weist auf Grundlage der Replikationstopologie etwas unterschiedliche Leistungseigenschaften auf.

Wenn die oben beschriebenen Best Practices eingehalten werden, kann jeder Cloud Spanner-Knoten folgende ungefähre Leistungswerte erzielen:

Multiregionale Konfiguration Ungefährer Spitzenwert für Lesevorgänge (QPS pro Region) Ungefährer Spitzenwert für Schreibvorgänge (QPS insgesamt)
nam3 7.000 1.800
nam-eur-asia1 7.000 1.000

Beachten Sie, dass die Orientierungswerte für Lesevorgänge für jede Region einzeln angegeben werden, da Lesevorgänge von überall aus bedient werden können, während sich die Orientierungswerte für Schreibvorgänge auf die gesamte Konfiguration beziehen. Bei den Orientierungswerten für Schreibvorgänge wird davon ausgegangen, dass einzelne Zeilen mit 1 KB Daten pro Zeile geschrieben werden.

Vor- und Nachteile von regionalen und multiregionalen Konfigurationen

Konfiguration Verfügbarkeit Latenz Kosten Datenlokalität
Regional 99,99 % Geringere Schreiblatenzen innerhalb der Region Geringere Kosten; siehe Preise Aktiviert die geografische Datenverwaltung
Mehrere Regionen 99,99 % Geringere Leselatenzen für mehrere geografische Regionen Höhere Kosten; siehe Preise Daten werden auf mehrere Regionen innerhalb der Konfiguration verteilt

Weitere Informationen