Ü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 Einschränkungen vertraut zu machen.

Die In-Memory-Stufe von Bigtable ist eine integrierte Speicherebene, die Teil des Bigtable-Knotens ist. Sie ermöglicht eine nahtlose und kostenoptimierte Datenabstufung basierend auf Zugriffsmustern und Leistungsanforderungen – alles über eine einzige API. Durch die Verwendung von Remote Direct Memory Access (RDMA) reduziert die In-Memory-Stufe von Bigtable die Antwortzeiten erheblich, verringert 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-Verringerung: Arbeitslasten mit hohem Durchsatz, die Traffic spitzen oder Hotspots bei bestimmten Zeilenschlüsseln umfassen 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-Stufe wird von Hybrid-Speicherknoten unterstützt. Diese speziellen Knoten erweitern die Entkopplung von Compute und Speicher in Bigtable um eine Speicherebene mit vertikal skalierbarem Durchsatz. Es kann bis zu 30 Minuten dauern, bis die speziellen In-Memory-Stufenknoten in Bigtable bereitgestellt werden. 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 Speicherebene übertragen: Die In-Memory-Stufe bietet Read-Through Caching. Eine Zeile wird mit Lesevorgängen über ein Anwendungsprofil in die Speicherebene übertragen, das Sie für die In-Memory-Stufe konfigurieren. Ein Schreibvorgang aus einem beliebigen Anwendungsprofil aktualisiert die Speicherebene, 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 TTL-Richtlinie (Time-to-Live) von 15 Minuten zum Ungültigmachen.
  • Negatives Caching: Die In-Memory-Stufe merkt sich, wenn eine Ressource fehlt für einen bestimmten Zeitraum, 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 Speicherebenen verschiedener Cluster nicht synchron. Da jede Speicherebene unabhängig davon bestimmt, welche Daten in den Arbeitsspeicher geladen werden sollen, basierend auf dem Lesetraffic, den sie empfängt, können verschiedene Cluster unterschiedliche Zeilenschlüssel in ihren Speicherebenen 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 Speicherebenen aktualisiert, in denen sie vorhanden ist. Dabei wird das Standardreplikationsmodell von Bigtable mit Eventual Consistency 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 nur die neuesten Versionen einer Zeile mit Zeitstempel in der Speicherebene. Anfragen nach früheren Versionen von Daten, auch historische Zellen genannt, umgehen automatisch die Speicherebene und werden aus nichtflüchtigem Speicher bereitgestellt.

Datenkohärenz

Bigtable sorgt dafür, dass die Daten der In-Memory-Stufe mit den persistenten Daten auf der SSD- oder der selten genutzten Speicherebene übereinstimmen. Diese Hybridarchitektur ermöglicht es Bigtable, ein konsistentes Speichermodell für alle Speicherebenen 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 die In-Memory-Stufe von Bigtable 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 Kapazität der In-Memory-Stufe auf allen Knoten im Cluster erreicht ist und das Autoscaling aktiv ist, stellt Bigtable automatisch zusätzliche Knoten bereit, um den Durchsatz der In-Memory-Stufe weiter zu erhöhen.

Die vertikale Skalierung auf einem Knoten gilt nur für Lesevorgänge pro Sekunde in der In-Memory-Stufe und funktioniert unabhängig davon, ob das Autoscaling auf Clusterebene aktiviert ist. Die vertikale Skalierung über die Basiskapazität von 40.000 Lesevorgängen pro Sekunde hinaus wird durch Anwendung eines Multiplikators auf die stündlichen Kosten des Knotens berechnet. Weitere Informationen finden Sie unter Preise und Limits.

Beschränkungen

Für die In-Memory-Stufe gelten die folgenden Einschrä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 verarbeitet keine Datenscans und unterstützt keine SQL-Abfragen.
  • Anwendungsprofile für die In-Memory-Stufe 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 Version 26.80.0 oder höher erforderlich. Andere Clientbibliotheken werden nicht unterstützt.
  • Cluster mit vom Kunden verwalteten Verschlüsselungsschlüsseln (CMEK) unterstützen die In-Memory-Stufe nicht.

Nächste Schritte