Mehrstufiger Speicher – Übersicht

Auf dieser Seite wird die Funktionsweise von mehrstufigem Speicher in Spanner beschrieben und erläutert. Dieses Feature wird sowohl in Datenbanken mit GoogleSQL-Dialekt als auch in Datenbanken mit PostgreSQL-Dialekt unterstützt.

Der mehrstufige Speicher von Spanner ist eine vollständig verwaltete Speicherfunktion, mit der Sie auswählen können, ob Ihre Daten auf Solid-State-Laufwerken (SSDs) oder Festplattenlaufwerken (HDDs) gespeichert werden sollen. Wenn Sie keinen mehrstufigen Speicher verwenden, werden Ihre Daten standardmäßig auf SSD-Speicher gespeichert. Je nachdem, wie oft Sie die Daten verwenden oder darauf zugreifen, sollten Sie möglicherweise mehrstufigen Speicher verwenden und Daten sowohl auf SSD- als auch auf HDD-Speicher speichern.

  • SSD-Speicher ist für die meisten Anwendungsfälle die leistungsstärkste (höhere Abfragen pro Sekunde) und kostengünstigste Option. Sie sollten ihn zum Speichern aktiver Daten mit hohem Schreib- und Lesedurchsatz sowie von Daten verwenden, die einen Datenzugriff mit geringer Latenz erfordern.
  • HDD-Speicher ist manchmal angemessen für große Datasets, die nicht latenzempfindlich sind, auf die nur selten zugegriffen wird oder wenn die Speicherkosten ein wichtiger Faktor sind.

Durch die Verwendung von mehrstufigem Speicher können Sie sowohl SSD-Speicher, der die hohe Leistung aktiver Daten unterstützt, als auch HDD-Speicher nutzen, der einen seltenen Datenzugriff zu geringeren Kosten unterstützt.

SSD- oder HDD-Speicher wählen

In der folgenden Tabelle sind die Unterschiede und Gemeinsamkeiten zwischen SSD- und HDD-Speicher aufgeführt. Die Durchsatzwerte in der Tabelle gelten pro Knoten und werden linear mit der Anzahl der Knoten in Ihrer Spanner-Instanz skaliert. Im Zweifelsfall empfehlen wir, SSD-Speicher zu wählen.

SSD-Speicher HDD-Speicher
Zielanwendungsfälle Daten, die einen hohen Schreib- und Lesedurchsatz und einen Datenzugriff mit geringer Latenz erfordern Große Datasets, die nicht latenzempfindlich sind oder auf die nur selten zugegriffen wird
Erwarteter Durchsatz pro Knoten
Regionale Konfigurationen
Bis zu 22.500 Leseabfragen pro Sekunde 
Bis zu 3.500 Schreibabfragen pro Sekunde
Bis zu 1.500 Lese-QPS
Bis zu 3.500 Schreib-QPS
Erwarteter Durchsatz pro Knoten
Konfigurationen für zwei Regionen und mehrere Regionen
Bis zu 15.000 QPS-Lesevorgänge pro Region
Bis zu 2.700 QPS-Schreibvorgänge
Bis zu 1.000 QPS pro Region lesen 
Bis zu 2.700 QPS schreiben
Unterstützte Vorgänge Lesen, Schreiben, Aktualisieren und Löschen Lesen, Schreiben, Aktualisieren und Löschen

Verwenden Sie durchsatzoptimierte Schreibvorgänge, um den Schreibdurchsatz über die Zahlen in der Tabelle hinaus zu steigern. Weitere Informationen finden Sie unter Leistungsübersicht.

Vorteile

Die Verwendung von mehrstufigem Speicher mit SSD- und HDD-Speicher bietet folgende Vorteile:

  • Deutliche Senkung der Gesamtbetriebskosten: HDD-Speicher ist eine kostengünstigere Option für große Datasets, die nicht latenzempfindlich sind und auf die nur selten zugegriffen wird.
  • Einfache Verwaltung: Bietet einen vollständig verwalteten Tiering-Dienst ohne die Komplexität zusätzlicher Pipelines und Split-Logik.
  • Einheitliche und konsistente Nutzung: Bietet einheitlichen Datenzugriff und einen einzigen Satz von Messwerten für aktive und (änderbare) selten genutzte Daten.
  • Höhere Leistung: Die Abfrageleistung wird verbessert, indem Ihre Daten in verschiedenen Lokalisierungsgruppen organisiert werden. So werden Daten lokalisiert und Spalten isoliert. Daten in derselben Lokalisierungsgruppe werden physisch nah beieinander gespeichert.

So funktioniert der Speicherplatz mit verschiedenen Stufen

Wenn Sie eine neue Instanz erstellen, werden Daten standardmäßig nur auf SSD-Speicher gespeichert. Auch Daten in vorhandenen Instanzen werden nur auf SSD-Speicher gespeichert.

Wenn Sie gestuften Speicher verwenden möchten, um einige Daten auf Festplatten zu speichern, müssen Sie eine Lokalitätsgruppe erstellen. Damit wird die Richtlinie für gestuften Speicher für Daten in Ihrem Schema definiert. Wenn Sie eine Lokalisierungsgruppe erstellen, können Sie den Speichertyp definieren, entweder ssd oder hdd. Optional können Sie auch festlegen, wie lange Daten auf SSD-Speicher gespeichert werden, bevor sie auf HDD-Speicher verschoben werden. Diese Zeit bezieht sich auf den Commit-Zeitstempel der Daten. Nach Ablauf der angegebenen Zeit migriert Spanner die Daten während des normalen Verdichtungszyklus auf HDD-Speicher. Dies dauert in der Regel sieben Tage ab dem angegebenen Zeitpunkt. Dies wird als altersbasierte Speicherrichtlinie mit Stufen bezeichnet. Wenn Sie eine altersbasierte Tiered-Storage-Richtlinie verwenden, beträgt die Mindestzeit, die Daten auf einer SSD gespeichert werden müssen, bevor sie auf HDD-Speicher verschoben werden, eine Stunde.

Nachdem Sie Ihre Standortgruppen definiert haben, können Sie beim Erstellen Ihrer Tabellen die Richtlinie für mehrstufigen Speicher auf Datenbank-, Tabellen-, Spalten- oder sekundärer Indexebene festlegen. Die Richtlinie für die Speicherung in verschiedenen Stufen bestimmt, wie und wo Daten gespeichert werden. Eine Anleitung finden Sie unter Lokalitätsgruppen erstellen und verwalten.

Details zu den wichtigsten Verhaltensweisen

Bei der Verwendung von mehrstufigem Speicher gelten die folgenden Verhaltensweisen:

  • Speicherstufen werden auf Zellebene angewendet: Richtlinien für die altersbasierte Speicherstufung werden auf einzelne Zellen in einer Zeile angewendet. Grundlage ist der Commit-Zeitstempel der Zelle. Daten werden in den HDD-Speicher verschoben, wenn ihr Commit-Zeitstempel älter als die angegebene Dauer ist. Eine einzelne Zeile kann daher einige Daten auf der SSD und einige auf der HDD enthalten, je nachdem, wann die einzelnen Zellen zuletzt aktualisiert wurden.
  • Überlappende Tabellen sind unabhängig: Einstellungen für die Lokalisierungsgruppe und Richtlinien für den mehrstufigen Speicher werden nicht von überlappenden untergeordneten Tabellen übernommen. Sie müssen diese Einstellungen für jede Tabelle einzeln anwenden.
  • Lesevorgänge haben keine Auswirkungen auf die Datenalterung: Wenn Daten aus einer Tabelle gelesen werden, wird ihr Alter nicht zurückgesetzt und sie werden nicht daran gehindert, auf eine Festplatte verschoben zu werden. Nur ein Schreibvorgang, bei dem die Daten aktualisiert werden, setzt den Commit-Zeitstempel zurück und behält die Daten im SSD-Speicher bei.
  • Daten von der HDD zurück auf die SSD verschieben: Wenn Sie auf der HDD gespeicherte Daten aktualisieren, schreibt Spanner die neue Version der Daten direkt in den SSD-Speicher. Die vorherige Version der Daten auf der Festplatte wird als veraltet markiert und später durch einen Hintergrundverdichtungsprozess bereinigt. So wird sichergestellt, dass Aktualisierungen von selten genutzten Daten sofort von der SSD-Leistung für nachfolgende Lesevorgänge der neuen Daten profitieren.

Sichern und wiederherstellen

Sie können Ihre Daten mit Spanner-Sicherungen sichern und wiederherstellen. Die Sicherung enthält alle Informationen zum Speicherschema, einschließlich INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS, das den Speichertyp jeder Ortsgruppe angibt. Wenn Sie eine Sicherung, die Lokality-Gruppen enthält, in einer neuen Instanz wiederherstellen möchten, muss sich die Zielinstanz in der Spanner Enterprise- oder Spanner Enterprise Plus-Version befinden.

Data Boost

Mit Spanner Data Boost können Sie auf Daten auf SSD- oder HDD-Speicher zugreifen. Beim Abfragen von Daten auf der Festplatte wird die Festplattenlastkapazität der Instanz verwendet, die Teil Ihrer Rechenkapazität ist.

Suchindexe

Volltextsuche und Vektorindexe übernehmen die auf dem Datenbankobjekt festgelegte Lokalisierungsgruppe.

Beobachtbarkeit

Die folgenden Observability-Funktionen sind für Tiered Storage verfügbar.

Cloud Monitoring-Messwerte

Spanner bietet die folgenden Messwerte, mit denen Sie die Nutzung und Daten des mehrstufigen Speichers mit Cloud Monitoring überwachen können:

  • spanner.googleapis.com/instance/storage/used_bytes (Gesamtspeicher): Hier wird die Gesamtzahl der Bytes an Daten angezeigt, die auf SSD- und HDD-Speicher gespeichert sind.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes: Hier wird das kombinierte Speicherlimit für SSD und HDD angezeigt.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: Hier wird das kombinierte SSD- und HDD-Speicherlimit für jede Verarbeitungseinheit angezeigt.
  • spanner.googleapis.com/instance/storage/combined/utilization: Zeigt die kombinierte SSD- und HDD-Speicherauslastung im Vergleich zum kombinierten Speicherlimit an.
  • spanner.googleapis.com/instance/disk_load: Zeigt die Festplattennutzung in Prozent an. Wenn die Festplattenauslastung Ihrer Instanz 100% erreicht, kommt es zu einer erheblich erhöhten Latenz.

Wenn Sie vorhandene Abfragen haben, in denen vorhandene Messwerte nach storage_class:ssd gefiltert werden, müssen Sie den Filter entfernen, um die Festplattennutzung zu sehen.

Weitere Informationen zum Monitoring Ihrer Spanner-Ressourcen finden Sie unter Instanzen mit Systemstatistiken überwachen und Instanzen mit Cloud Monitoring überwachen.

Informationsschema

INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS enthält die Liste der Lokalitätsgruppen und Optionen in Ihrer Spanner-Datenbank. Sie enthält Informationen für die default-Lokalisierungsgruppe. Weitere Informationen finden Sie unter locality_group_options für GoogleSQL-Dialektdatenbanken und locality_group_options für PostgreSQL-Dialektdatenbanken.

Integrierte Statistiktabellen

Die folgenden integrierten Statistiktabellen sind für Datenbanken mit mehrstufigem Speicher verfügbar:

  • SPANNER_SYS.TABLE_SIZES_STATS_1HOUR: Zeigt die HDD- und SSD-Speichernutzung für jede Tabelle in Ihrer Datenbank an.
  • SPANNER_SYS.TABLE_SIZES_STATS_PER_LOCALITY_GROUP_1HOUR: Zeigt die HDD- und SSD-Speichernutzung für jede Lokalisierungsgruppe in Ihrer Datenbank.

Weitere Informationen finden Sie unter Statistiken zu Tabellengrößen.

Die Tabellen mit Abfrage- und Lesestatistiken haben die folgende Spalte, die sich auf den mehrstufigen Speicher bezieht:

  • AVG_DISK_IO_COST: Die durchschnittlichen Kosten dieser Abfrage in Bezug auf die HDD-Laufwerkslast von Spanner. Mit diesem Wert können Sie relative HDD-I/O-Kostenvergleiche zwischen Lesevorgängen durchführen, die Sie in der Datenbank ausführen. Ein höherer Wert weist darauf hin, dass Sie mehr HDD-Festplattenlast verwenden und Ihre Abfrage möglicherweise langsamer ist als bei der Ausführung auf einer SSD. Wenn die Auslastung Ihrer HDD-Festplatte das Maximum erreicht hat, kann sich das zusätzlich auf die Leistung Ihrer Abfragen auswirken.

Weitere Informationen finden Sie unter Abfragestatistiken und Lesestatistiken.

Preise

Für die Verwendung von mehrstufigem Speicher fallen keine zusätzlichen Kosten an. Ihnen werden die Standardpreise für Spanner für die von Ihrer Instanz verwendete Rechenkapazität und den von Ihrer Datenbank verwendeten Speicherplatz berechnet. Daten, die auf SSD und HDD gespeichert sind, werden zu den jeweiligen Speicherpreisen in Rechnung gestellt. Das Verschieben von Daten zwischen SSD- und HDD-Speicher ist kostenlos. Beim Abfragen von Daten auf einer HDD wird die HDD-Festplattenlastkapazität der Instanz verwendet, die Teil der Preise für die Rechenkapazität ist. Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte