Mehrstufiger Speicher – Übersicht

Auf dieser Seite wird beschrieben, wie mehrstufiger Speicher in Spanner funktioniert. Diese Funktion wird sowohl in Datenbanken im GoogleSQL-Dialekt als auch im PostgreSQL-Dialekt unterstützt.

Spanner-Speicher mit mehreren Stufen ist eine vollständig verwaltete Speicherfunktion, mit der Sie auswählen können, ob Ihre Daten auf SSDs (Solid-State Drives) 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, können Sie mehrstufigen Speicher verwenden und Daten sowohl auf SSD- als auch auf HDD-Speicher speichern.

  • SSD-Speicher ist die leistungsstärkste (mehr Abfragen pro Sekunde) und kostengünstigste Wahl für die meisten Anwendungsfälle. Sie sollten ihn verwenden, um aktive Daten mit hohem Schreib- und Lesedurchsatz sowie Daten zu speichern, für die ein Datenzugriff mit niedriger Latenz erforderlich ist.
  • HDD-Speicher ist manchmal für große Datasets geeignet, die nicht latenzempfindlich sind, auf die nur selten zugegriffen wird oder wenn die Speicherkosten ein wichtiger Faktor sind.

Mit 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 ermöglicht.

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 skalieren linear mit der Anzahl der Knoten in Ihrer Spanner-Instanz. 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 niedriger 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 QPS für Lesevorgänge
Bis zu 3.500 QPS für Schreibvorgänge
Bis zu 1.500 QPS für Lesevorgänge
Bis zu 3.500 QPS für Schreibvorgänge
Erwarteter Durchsatz pro Knoten
Konfigurationen mit zwei Regionen und mehreren Regionen
Bis zu 15.000 QPS für Lesevorgänge pro Region
Bis zu 2.700 QPS für Schreibvorgänge
Bis zu 1.000 QPS für Lesevorgänge pro Region
Bis zu 2.700 QPS für Schreibvorgänge
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 Werte in der Tabelle hinaus zu erhöhen. Weitere Informationen finden Sie unter Leistungsübersicht.

Vorteile

Mehrstufiger Speicher bietet die folgenden Vorteile, da Sie sowohl SSD- als auch HDD-Speicher verwenden können:

  • Deutliche Reduzierung der Gesamtbetriebskosten: HDD-Speicher ist eine kostengünstigere Option für große Datasets, die nicht latenzempfindlich sind oder auf die nur selten zugegriffen wird.
  • Einfache Verwaltung: Bietet einen vollständig verwalteten mehrstufigen Dienst ohne die Komplexität zusätzlicher Pipelines und Aufteilungslogik.
  • Einheitliche und konsistente Nutzung: Bietet einheitlichen Datenzugriff und eine einheitliche Reihe von Messwerten für Hot- und (veränderliche) Cold-Daten
  • Verbesserte Leistung: Verbessert die Abfrageleistung, indem Ihre Daten in verschiedenen Lokalisierungsgruppen organisiert werden, was für Datenlokalität und Isolation über Spalten hinweg sorgt. Daten in derselben Lokalisierungsgruppe werden physisch nah beieinander gespeichert.

Funktionsweise von mehrstufigem Speicher

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

Wenn Sie mehrstufigen Speicher verwenden möchten, um einige Daten auf HDD-Speicher zu speichern, müssen Sie eine Lokalisierungsgruppe erstellen, mit der die Richtlinie für mehrstufigen Speicher für Daten in Ihrem Schema definiert wird. Wenn Sie eine Lokalisierungsgruppe erstellen, können Sie den Speichertyp definieren, entweder ssd oder hdd. Optional können Sie auch die Zeitspanne definieren, für die Daten auf SSD-Speicher gespeichert werden, bevor sie auf HDD-Speicher verschoben werden. Diese Zeitspanne ist relativ zum Commit-Zeitstempel der Daten. Nach Ablauf der angegebenen Zeit migriert Spanner die Daten während des normalen Komprimierungszyklus auf HDD-Speicher. Dieser Zyklus dauert in der Regel sieben Tage ab dem angegebenen Zeitpunkt. Wenn Sie Daten schneller als im normalen Komprimierungszyklus zwischen SSD und HDD migrieren möchten, können Sie manuell eine Hauptkomprimierung auslösen. Dies wird als altersbasierte Richtlinie für mehrstufigen Speicher bezeichnet. Bei Verwendung einer altersbasierten Richtlinie für mehrstufigen Speicher muss die Mindestzeit, für die Daten auf SSD gespeichert werden müssen, bevor sie auf HDD-Speicher verschoben werden, eine Stunde betragen.

Nachdem Sie Ihre Lokalisierungsgruppen definiert haben, können Sie beim Erstellen Ihrer Tabellen die Richtlinie für mehrstufigen Speicher auf Datenbank-, Tabellen-, Spalten- oder Sekundärindexebene festlegen. Die Richtlinie für mehrstufigen Speicher bestimmt, wie und wo Daten gespeichert werden. Eine Anleitung finden Sie unter Lokalisierungsgruppen erstellen und verwalten.

Wichtige Details zum Verhalten

Bei Verwendung von mehrstufigem Speicher gilt Folgendes:

  • Speicherstufen werden auf Zellebene angewendet: Altersbasierte Richtlinien für mehrstufigen Speicher werden auf einzelne Zellen in einer Zeile angewendet, basierend auf dem Commit Zeitstempel der Zelle. Daten werden auf HDD-Speicher verschoben, wenn der Commit-Zeitstempel älter als die angegebene Dauer ist. Eine einzelne Zeile kann daher Daten auf SSD und HDD enthalten, je nachdem, wann die einzelnen Zellen zuletzt aktualisiert wurden.
  • Verschachtelte Tabellen sind unabhängig: Einstellungen für Lokalisierungsgruppen und Richtlinien für mehrstufigen Speicher werden nicht von verschachtelten untergeordneten Tabellen übernommen. Sie müssen diese Einstellungen auf jede Tabelle einzeln anwenden.
  • Lesevorgänge wirken sich nicht auf das Alter der Daten aus: Wenn Sie Daten aus einer Tabelle lesen, wird das Alter der Daten nicht zurückgesetzt und sie werden nicht daran gehindert, auf HDD verschoben zu werden. Nur ein Schreibvorgang, der die Daten aktualisiert, setzt den Commit-Zeitstempel zurück und behält die Daten auf SSD-Speicher bei.
  • Daten von HDD zurück auf SSD verschieben: Wenn Sie auf HDD gespeicherte Daten aktualisieren, schreibt Spanner die neue Version der Daten direkt auf SSD Speicher. Die vorherige Version der Daten auf HDD wird als veraltet markiert und später durch einen Hintergrundkomprimierungsvorgang bereinigt. Sie können manuell eine Hauptkomprimierung auslösen , um die Bereinigung zu beschleunigen. So profitieren Aktualisierungen von Cold-Daten sofort von der SSD-Leistung für nachfolgende Lesevorgänge der neuen Daten.

Sichern und wiederherstellen

Sie können Ihre Daten mit Spanner-Back-ups sichern und wiederherstellen. Das Back-up enthält alle Informationen zum Speicherschema, einschließlich INFORMATION_SCHEMA.LOCALITY_GROUP_OPTIONS, das den Speichertyp jeder Lokalisierungsgruppe angibt. Wenn Sie ein Back-up mit Lokalisierungsgruppen in einer neuen Instanz wiederherstellen möchten, muss die Zielinstanz die Spanner Enterprise-Version oder die Spanner Enterprise Plus-Version verwenden.

Data Boost

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

Suchindexe

Volltextsuche und Vektorindexe übernehmen die Lokalisierungsgruppe , die für das Datenbankobjekt festgelegt ist.

Beobachtbarkeit

Die folgenden Funktionen zur Beobachtbarkeit sind für mehrstufigen Speicher 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): Zeigt die Gesamtanzahl der Bytes an Daten, die auf SSD- und HDD-Speicher gespeichert sind.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes: Zeigt das kombinierte Limit für SSD- und HDD-Speicher an.
  • spanner.googleapis.com/instance/storage/combined/limit_bytes_per_processing_unit: Zeigt das kombinierte Limit für SSD- und HDD-Speicher für jede Verarbeitungseinheit an.
  • spanner.googleapis.com/instance/storage/combined/utilization: Zeigt die kombinierte Nutzung von SSD- und HDD-Speicher im Vergleich zum kombinierten Speicherlimit an.
  • spanner.googleapis.com/instance/disk_load: Zeigt die HDD-Nutzung in Prozent an. Wenn die HDD-Auslastung Ihrer Instanz 100% erreicht, kommt es zu einer erheblich erhöhten Latenz.

Wenn Sie vorhandene Abfragen haben, die vorhandene Messwerte nach storage_class:ssd filtern, müssen Sie den Filter entfernen, um die HDD-Nutzung 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 Lokalisierungsgruppen und -optionen in Ihrer Spanner-Datenbank. Dazu gehören auch Informationen für die Lokalisierungsgruppe default. Weitere Informationen finden Sie unter locality_group_options für Datenbanken im GoogleSQL-Dialekt und locality_group_options für Datenbanken im PostgreSQL-Dialekt.

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 an.

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

Die Tabellen mit Abfragestatistiken und Lesestatistiken enthalten die folgende Spalte, die sich auf mehrstufigen Speicher bezieht:

  • AVG_DISK_IO_COST: Die durchschnittlichen Kosten dieser Abfrage in Bezug auf die HDD-Auslastung von Spanner. Mit diesem Wert können Sie relative HDD-E/A-Kostenvergleiche zwischen Lesevorgängen durchführen, die Sie in der Datenbank ausführen. Ein höherer Wert bedeutet, dass Sie mehr HDD-Auslastung verwenden und Ihre Abfrage möglicherweise langsamer ist, als wenn sie auf SSD ausgeführt würde. Wenn die HDD-Auslastung voll ausgelastet ist, kann sich dies außerdem weiter auf die Leistung Ihrer Abfragen auswirken.

Weitere Informationen finden Sie unter Abfragestin und Lesestatistiken.

Preise

Für die Verwendung von mehrstufigem Speicher fallen keine zusätzlichen Gebühren an. Ihnen werden die Standardpreise für Spanner für die von Ihrer Instanz verwendete Rechenkapazität und die von Ihrer Datenbank verwendete Speichermenge in Rechnung gestellt. Für Daten, die auf SSD und HDD gespeichert sind, werden die jeweiligen Speichertarife berechnet. Für das Verschieben von Daten zwischen SSD- und HDD-Speicher fallen keine Gebühren an. Beim Abfragen von Daten auf HDD wird die HDD-Laufwerkauslastung der Instanz verwendet, die Teil Ihrer Rechenkapazität ist. Weitere Informationen finden Sie unter Spanner-Preise.

Nächste Schritte