Lesepools

Cloud SQL-Lesepools unterstützen Load Balancing für große Lesearbeitslasten.

Was sind Lesepools?

Ein Lesepool ist eine Sammlung von Lesereplikatinstanzen, die zum Verteilen großer Lesearbeitslasten verwendet werden. Diese Arbeitslasten können von der primären Instanz an den Lesepool weitergeleitet werden, um die Last auf der primären Instanz zu reduzieren.

Jedes Lesereplikat im Lesepool wird als Lesepoolknoten bezeichnet.

Sie können Ihren Lesepool auf verschiedene Arten skalieren:

  • Skalieren: Skalieren Sie die Load-Balancing-Kapazität horizontal, indem Sie die Anzahl der Lesepoolknoten im Lesepool ändern. Jeder Lesepool unterstützt zwischen 1 und 20 Lesepoolknoten.
  • Hoch- oder herunterskalieren: Skalieren Sie die Load-Balancing-Kapazität vertikal, indem Sie den Maschinentyp ändern, der einem Lesepoolknoten zugeordnet ist. Nach der Definition wird die Konfiguration einheitlich auf jeden Lesepoolknoten im Lesepool angewendet.

Wenn Sie die Einstellungen für Lesepoolknoten ändern, z. B. Speicher, Konnektivität oder Datenbankkonfigurations-Flags, werden die Änderungen automatisch einheitlich auf jeden Lesepoolknoten im Lesepool angewendet.

Über einen einzelnen Leseendpunkt auf einen Lesepool zugreifen

Der Lesepool ist über einen einzelnen Leseendpunkt mit einer unveränderlichen IP-Adresse zugänglich. Verbindungen, die über den Endpunkt hergestellt werden, werden automatisch an einen der Lesepoolknoten weitergeleitet. Wenn Sie den Lesepool horizontal skalieren möchten, müssen Anwendungen, die zuvor mit diesem einzelnen Leseendpunkt verbunden waren, nicht neu konfiguriert werden, auch wenn Sie neue Lesepoolknoten im Lesepool erstellen oder vorherige löschen können.

Jeder Lesepoolknoten hat auch eine eigene IP-Adresse. Diese IP-Adressen werden nicht als effizienter Ansatz für den Zugriff auf Ihre Daten empfohlen. Sie können sie jedoch verwenden, um die Leistung einzelner Lesepoolknoten zu beheben.

Weitere Informationen zum Abrufen der Verbindungsinformationen für den Lesepool oder die Lesepoolknoten (entweder IP-Adressen oder ein Verbindungsstring) finden Sie unter Lesepoolinformationen ansehen.

Autoscaling für Lesepools

Sie können den Lesepool so konfigurieren, dass seine Größe automatisch an die sich ändernden Arbeitslastanforderungen Ihrer Anwendung angepasst wird. Weitere Informationen finden Sie unter Autoscaling für Lesepools.

Eigenschaften des Lesepools

Es gelten die folgenden Merkmale:

  • Lesepools haben keine eindeutige von Cloud SQL unterstützte API. Alle Vorgänge zum Erstellen, Konfigurieren oder Aufrufen eines Lesepools werden über die Cloud SQL-Instanz-API ausgeführt.

    Wenn Sie beispielsweise die gcloud CLI verwenden, um einen Lesepool zu erstellen, verwenden Sie den Befehl gcloud sql instances create. Mit dem Befehl gcloud sql instances describe können Sie die Anzahl der in einem Lesepool konfigurierten Lesepoolknoten prüfen.

  • Ein Lesepool mit zwei oder mehr Knoten ist durch das Service Level Agreement (SLA) abgedeckt.
  • Lesepoolknoten des Lesepools befinden sich immer in derselben Region, wie vom Nutzer angegeben. Cloud de Confiance by S3NS wechselt die Lesepoolknoten-Residenz zwischen allen Zonen in der Region.
  • Eine primäre Instanz kann einen oder mehrere Lesepools haben.
  • Bei den folgenden Vorgängen kommt es zu einer Ausfallzeit von weniger als einer Sekunde:
    • Horizontal skalieren (Knoten im Lesepool hinzufügen oder entfernen)
    • Hoch- oder Herunterskalieren (Ändern des Maschinentyps der Knoten im Pool)
    • Vorhandenes zonales Lesereplikat in einen Lesepool konvertieren.
  • Ein Lesepool wird vor seiner primären Instanz gewartet, ähnlich wie Lesereplikate. Wie Lesereplikate werden auch Lesepools während des Wartungsfensters der primären Instanz gewartet.
  • Für jeden Lesepoolknoten sind dieselben Messwerte verfügbar wie für ein Cloud SQL-Lesereplikat.
  • Wenn Sie gcloud oder die Cloud de Confiance Console verwenden, um die Details eines Projekts zu beschreiben, wird der Name des Lesepools aufgeführt, nicht jedoch die Namen der einzelnen Lesepoolknoten.
  • Wenn Sie die Anzahl der Lesereplikate auf mehr als 10 skalieren möchten, müssen Sie die Werte für die Datenbank-Flags max_wal_senders und max_replication_slots auf der primären Instanz auf einen Wert zurücksetzen, der größer oder gleich der Anzahl der Lesereplikate ist, die Sie verwenden möchten. Wenn Ihre primäre Instanz beispielsweise zwei Lesereplikate und zwei Lesepools mit jeweils zehn Replikaten hat, müssen Sie die Konfigurations-Flags max_wal_senders und max_replication_slots auf 22 oder höher zurücksetzen. Wenn Ihre Instanz PostgreSQL 18 verwendet, müssen Sie auch das Flag max_active_replication_origins auf 22 oder höher setzen.

Beschränkungen

Es gelten folgende Einschränkungen:

  • Lesepools sind nur für Cloud SQL Enterprise Plus-Version-Instanzen in der neuen Netzwerkarchitektur verfügbar. Die primäre Instanz, die einem Lesepool zugeordnet ist, muss ebenfalls eine Cloud SQL Enterprise Plus-Instanz sein.
  • Traffic wird von Lesepoolknoten bereitgestellt, je nachdem, ob die Datenbank fehlerfrei ist, aber unabhängig davon, wie hoch die Replikationsverzögerung auf diesem Lesepoolknoten ist. Traffic kann von einem verzögerten Lesepoolknoten bereitgestellt werden, auch wenn ein anderer Lesepoolknoten verfügbar ist, der nicht verzögert ist. Eine Datenbank gilt als fehlerfrei, wenn der Datenbankprozess aktiv ist und Abfragen beantworten kann. Es gibt jedoch keine Anforderung, wie aktuell die bereitgestellten Daten sein müssen.
  • Es gibt keine Garantie dafür, dass eine einzelne logische Sitzung eine Verbindung zu mehreren Lesepoolknoten im Lesepool herstellt. Es ist möglich, dass spätere Anfragen in einer Sitzung eine Verbindung zu einem Lesepoolknoten herstellen, der eine niedrigere Replikationsposition (LSN) hat als der Lesepoolknoten, der eine frühere Anfrage verarbeitet hat. Dadurch kann es so aussehen, als ob der Status der Datenbank in der Zeit zurückgeht.
  • Die folgenden Arten von Updates werden nicht unterstützt:
    • Lesepools erhalten zwar weiterhin Cloud SQL-Wartungsupdates, Sie können Ihren Lesepool jedoch nicht auf eine neue Hauptversion der Datenbank aktualisieren.
    • Knoten des Lesepools starten oder beenden.
  • Zusätzlich zu den Vorgängen, die für Lesereplikate nicht unterstützt werden, werden die folgenden Vorgänge für Lesepools nicht unterstützt:
    • Replikation aktivieren und deaktivieren
    • Replikat hochstufen
    • Neu starten
    • Importieren
    • Exportieren
    • Failover
    • Neu verschlüsseln
    • Klonen
  • SSL/TLS-Zertifikate mit einer freigegebenen Zertifizierungsstelle oder einer vom Kunden verwalteten Zertifizierungsstelle können nicht mit einem Lesepool verwendet werden.
  • Ein Lesepool kann nicht in eine andere Instanz repliziert werden, z. B. in ein kaskadierendes Replikat oder einen anderen Lesepool.
  • Ein Lesepool muss direkt aus einer primären Instanz repliziert werden. Es darf kein kaskadierendes Replikat sein.
  • Wenn Sie ein regionales Lesereplikat in einen Lesepool konvertieren möchten, müssen Sie das regionale Lesereplikat zuerst in ein zonales Lesereplikat konvertieren.
  • Wenn Sie einen Lesepool erstellen oder skalieren, müssen Sie warten, bis die vorherigen Vorgänge zum Erstellen, horizontalen Verkleinern oder horizontalen Skalieren des Lesepools abgeschlossen sind. Diese Einschränkung gilt für alle anderen Lesepools, die mit derselben primären Instanz verknüpft sind. Wenn Sie mehrere Lesepools skalieren möchten, die mit derselben primären Instanz verknüpft sind, müssen Sie warten, bis die Skalierungsvorgänge für den ersten Lesepool abgeschlossen sind, bevor Sie mit der Skalierung des nächsten Lesepools beginnen. Wenn Sie gleichzeitige Anfragen senden, erhalten Sie möglicherweise den folgenden Fehler: Operation failed because another operation was already in progress..
  • Nur ein zonales Replikat, das sich in derselben Region wie die primäre Instanz befindet, kann für die Verwendung in einem Lesepool konvertiert werden.
  • Wenn Ihre Anwendung eine Verbindung zu einem dedizierten Lesereplikat herstellen muss, z. B. aufgrund von sekundären Indexen, die auf einem bestimmten Lesereplikat vorhanden sind, erstellen Sie ein Cloud SQL-Lesereplikat und verwenden Sie es stattdessen.

Nächste Schritte