Übersicht über die In-Memory-Stufe
Die In-Memory-Stufe ist eine Einstellung auf Clusterebene, die spezielle Knoten verwendet. Bevor Sie diese Seite lesen, sollten Sie sich mit Instanzen, Clustern und Knoten vertraut machen. Wir empfehlen Ihnen außerdem, sich mit den Beschränkungen vertraut zu machen.
Bigtable In-Memory ist eine integrierte Speicherstufe als Teil des Bigtable-Knotens, die eine nahtlose, kostenoptimierte Datenabstufung basierend auf Zugriffsmustern und Leistungsanforderungen ermöglicht – alles über eine einzige API. Durch die Verwendung von Remote Direct Memory Access (RDMA) reduziert die In-Memory-Stufe von Bigtable die Antwortzeiten erheblich, minimiert Hotspots und sorgt für einen hohen Durchsatz bei latenzempfindlichen Daten. Weitere Informationen finden Sie unter Leistung verstehen.
Wann sollte die In-Memory-Stufe verwendet werden?
Wir empfehlen, die In-Memory-Stufe für die folgenden Anwendungsfälle zu aktivieren:
- Anforderungen an die Latenz im Submillisekundenbereich: Arbeitslasten, die Leselatenzen von weniger als 1 ms erfordern, werden in der Regel durch eine selbstverwaltete Cachelösung vor einer Datenbank abgedeckt.
- Punktlesevorgänge mit hohem Durchsatz: Anwendungen mit hohen Anforderungen an den Lesetraffic Durchsatz für bestimmte Teilmengen von Daten.
- Hotspot-Minimierung: Arbeitslasten mit hohem Durchsatz, die Trafficspitzen oder Hotspots für bestimmte Zeilenschlüssel enthalten können.
- Kostenoptimierung: Szenarien, in denen Sie die Anzahl der Bigtable-Knoten reduzieren möchten, indem Sie hohe Lesemengen auf eine kostengünstigere In-Memory-Stufe auslagern.
Funktionsweise der In-Memory-Stufe
Die In-Memory-Unterstützung wird von Hybrid-Speicherknoten bereitgestellt. Diese speziellen Knoten erweitern die Disaggregation von Rechenleistung und Speicher von Bigtable um eine Speicherstufe mit vertikal skalierbarem Durchsatz. Die Bereitstellung der speziellen Knoten für die In-Memory-Stufe kann bis zu 30 Minuten dauern. Während dieser Zeit verarbeitet Bigtable weiterhin Traffic aus dem nichtflüchtigen Speicher.
Sie können die In-Memory-Stufe aktivieren auf Clusterebene.
Die In-Memory-Stufe funktioniert so:
- Daten in die Speicherstufe übertragen: Die In-Memory-Stufe bietet ein Read-Through-Caching Verhalten. Eine Zeile wird mit Lesevorgängen über ein Anwendungsprofil, das Sie für die In-Memory-Stufe konfigurieren, in die Speicherstufe übertragen. Ein Schreibvorgang aus einem beliebigen Anwendungsprofil aktualisiert die Speicherstufe, wenn sich die Zeilendaten bereits in der In-Memory-Stufe befinden.
- Richtlinien für das Entfernen und Ungültigmachen: Die In-Memory-Stufe verwendet das LRU-Verfahren (Least Recently Used) zum Entfernen auf Zeilenebene und eine Richtlinie zum Ungültigmachen mit einer Gültigkeitsdauer (Time-to-Live, TTL) von 15 Minuten.
- Negatives Caching: Die In-Memory-Stufe merkt sich, wenn eine Ressource für einen bestimmten Zeitraum fehlt, um eine Überlastung des Back-Ends zu verhindern.
- Sicherheit: Die In-Memory-Stufe unterstützt die Verschlüsselung ruhender und übertragener Daten (TLS).
- Replikation: In einer Multi-Cluster-Instanz sind die Speicherstufen verschiedener Cluster nicht synchron. Da jede Speicherstufe unabhängig voneinander bestimmt, welche Daten basierend auf dem empfangenen Lesetraffic in den Arbeitsspeicher geladen werden, können verschiedene Cluster unterschiedliche Zeilenschlüssel in ihren Speicherstufen enthalten. Bigtable lädt Daten aus der SSD-Stufe des lokalen Clusters in den Arbeitsspeicher. Bei einem Schreibvorgang in eine Zeile wird diese schließlich in allen Speicherstufen aktualisiert, in denen sie vorhanden ist. Dabei wird das Standardreplikationsmodell von Bigtable mit letztendlicher Konsistenz verwendet.
- Vertikales Autoscaling: Die In-Memory-Stufe unterstützt vertikales Autoscaling auf Knotenebene, das mit dem Autoscaling von Bigtable zusammenarbeitet.
Die In-Memory-Stufe ist für den leistungsstarken Zugriff auf aktuelle Daten optimiert. Um diese Leistung aufrechtzuerhalten, befinden sich in der Speicherstufe nur die neuesten Versionen einer Zeile mit Zeitstempel. Anfragen nach früheren Versionen von Daten, auch historische Zellen genannt, umgehen die Speicherstufe automatisch und werden aus dem nichtflüchtigen Speicher bereitgestellt.
Datenkohärenz
Bigtable sorgt dafür, dass die In-Memory-Daten mit den nichtflüchtigen Daten auf der SSD- oder der Speicherstufe für seltenen Zugriff übereinstimmen. Diese Hybridarchitektur ermöglicht es Bigtable, ein einheitliches Speichermodell für alle Speicherstufen bereitzustellen. So können Sie unabhängig davon, ob sich die Daten physisch im RAM oder im nichtflüchtigen Speicher befinden, über dieselbe semantische Schnittstelle auf Ihre Daten zugreifen. Wenn Bigtable In-Memory aktiviert ist, bleibt die Read-Your-Writes-Konsistenz auf Clusterebene erhalten.
Vertikale Skalierung
Wenn Sie die In-Memory-Stufe aktivieren, kann jeder Knoten die vertikale Skalierung verwenden, um die Durchsatzkapazität der In-Memory-Stufe zu ändern. Jeder Knoten enthält 8 GB RAM für die In-Memory-Stufe und beginnt mit einer Basiskapazität von 40.000 Lesevorgängen pro Sekunde. Um Spitzen beim Punktlesetraffic zu bewältigen, können Knoten automatisch in Schritten von 40.000 Lesevorgängen pro Sekunde skaliert werden. Dabei können bis zu 120.000 Lesevorgänge pro Sekunde und Knoten erreicht werden.
Diese Funktion für die vertikale Skalierung ist in das Autoscaling von Bigtable integriert. Wenn die maximale In-Memory-Kapazität auf allen Knoten im Cluster erreicht ist und das Autoscaling aktiv ist, stellt Bigtable automatisch zusätzliche Knoten bereit, um den In-Memory-Durchsatz weiter zu steigern.
Die vertikale Skalierung auf einem Knoten gilt nur für In-Memory-Lesevorgänge pro Sekunde und funktioniert unabhängig davon, ob das Autoscaling auf Clusterebene aktiviert ist. Für die vertikale Skalierung über die 40.000 Lesevorgänge pro Sekunde hinaus wird ein Multiplikator auf die stündlichen Kosten des Knotens angewendet. Weitere Informationen finden Sie unter Preise und Limits.
Beschränkungen
Für die In-Memory-Stufe gelten die folgenden Beschränkungen:
- Für die In-Memory-Stufe ist SSD-Speicher erforderlich.
- Die In-Memory-Stufe unterstützt nur Punktlesevorgänge auf Zeilenebene.
- Die In-Memory-Stufe stellt keine Datenscans bereit und unterstützt keine SQL-Abfragen.
- In-Memory-Anwendungsprofile unterstützen nur das Routing zu einem einzelnen Cluster.
- Die In-Memory-Stufe beschränkt die Zeilengröße auf 1 MiB pro Zeilenschlüssel. Bigtable liest Zeilen, die dieses Limit überschreiten, aus dem nichtflüchtigen Speicher.
- Für die In-Memory-Stufe ist Version 2.77.0 oder höher der Bigtable Clientbibliothek für Java oder BOM 26.80.0 oder höher erforderlich. Andere Clientbibliotheken werden nicht unterstützt.
- Cluster mit vom Kunden verwalteten Verschlüsselungsschlüsseln (Customer-Managed Encryption Keys, CMEK) unterstützen die In-Memory-Stufe nicht.
Nächste Schritte
- Erfahren Sie, wie Sie die In-Memory-Stufe aktivieren