Auf dieser Seite wird die Funktionsweise von mehrstufigem Speicher in Spanner beschrieben. Diese Funktion wird sowohl in Datenbanken im GoogleSQL- als auch im 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 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, die einen Datenzugriff mit niedriger Latenz erfordern.
- 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 sowie 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 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 Tiering-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 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 müssen Daten mindestens eine Stunde lang auf SSD gespeichert werden, bevor sie auf HDD-Speicher verschoben werden.
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:
- Speicherebenen werden auf Zellebene angewendet: Altersbasierter mehrstufiger Speicher Richtlinien gelten für einzelne Zellen innerhalb einer Zeile, 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 im SSD-Speicher.
- 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 Hintergrundkomprimierungsprozess 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 haben.
Data Boost
Mit Spanner Data Boost können Sie auf Daten auf SSD- oder HDD-Speicher zugreifen. Beim Abfragen von Daten auf HDD-Speicher wird eine separate HDD-Festplattenlastkapazität von Ihrer Instanz verwendet, ähnlich wie bei der separaten Compute-Kapazität.
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 Ihre Nutzung von mehrstufigem Speicher und Daten 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 Ihre Instanz eine HDD-Festplattenlast von 100% erreicht, kommt es zu einer erheblichen Erhöhung der 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. Sie enthält 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 Statistiktabellen für Tabellengrößen.
Die Tabellen für Abfragestatistiken und Lesestatistiken haben die folgende Spalte, die sich auf mehrstufigen Speicher bezieht:
AVG_DISK_IO_COST: Die durchschnittlichen Kosten dieser Abfrage in Bezug auf die Spanner-HDD-Festplattenlast. 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-Festplattenlast verwenden und Ihre Abfrage möglicherweise langsamer ist, als wenn sie auf SSD ausgeführt würde. Wenn die HDD-Festplattenlastkapazität ausgeschöpft 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-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
- Weitere Informationen zu Lokalisierungsgruppen.
- Informationen zum Erstellen und Verwalten von Lokalisierungsgruppen
- Weitere Informationen zum Optimieren von Abfragen mit Pushdown von Zeitstempelprädikaten.