Fehlerbehebung

Auf dieser Seite erfahren Sie, wie Sie Probleme mit Firestore im Datastore-Modus beheben.

Latenz

In folgender Tabelle werden mögliche Ursachen für eine erhöhte Latenz beschrieben:

Latenzursache Arten von betroffenen Vorgängen Lösung
Kontinuierlicher Traffic, der die Regel 500-50-5 überschreitet. Lese-/Schreibzugriff

Für einen schnellen Anstieg des Traffics versucht der Datastore-Modus, automatisch um der erhöhten Nachfrage gerecht zu werden. Im Datastore-Modus nimmt die Latenz ab.

Hotspots (hohe Lese-, Schreib- und Löschraten für einen kleinen Entitätsbereich) die Skalierbarkeit des Datastore-Modus einschränken. Überprüfen Sie das Skalierbares Design und ermitteln Sie Hotspots in Ihrer Anwendung.

Konflikt, entweder durch die Aktualisierung einer einzelnen Entität häufig oder aufgrund von Transaktionen. Lese-/Schreibzugriff

Reduzieren Sie die Schreibrate auf einzelne Entitäten.

Überprüfen Sie die Transaktionsisolation und -konsistenz. und wie Sie Transaktionen verwenden.

Anfragen für langsame Join-Vorgänge. read Beispielsweise können Anfragen mit mehreren Gleichheitsfiltern (==), die jedoch nicht von zusammengesetzten Indexen unterstützt werden, zu langsamen Join-Anfragen führen. Fügen Sie zusammengesetzte Indexe für diese Abfragen hinzu, Siehe Indexe optimieren
Große Lesevorgänge, die viele Entitäten zurückgeben. read Verwenden Sie Abfrage-Cursors um große Lesevorgänge aufzuteilen.
Zu viele kürzliche Löschvorgänge. lesen
Das hat große Auswirkungen Vorgänge, die Arten in einer Datenbank auflisten.
Wenn die Latenz durch zu viele kürzliche Löschvorgänge verursacht wird, sollte sich das Problem nach einiger Zeit von selbst beheben. Tritt das Problem weiter auf, wenden Sie sich an den Support.
Index-Fanout, insbesondere bei Array-Properties. write Überprüfen <ph type="x-smartling-placeholder"></ph> explodierende Indexe und die Verwendung von Array-Attributen.

Fehlercodes

In diesem Abschnitt sind mögliche Probleme sowie Vorschläge zu deren Behebung aufgeführt.

DEADLINE_EXCEEDED

DEADLINE_EXCEEDED

A deadline was exceeded on the server.

Informationen zur Behebung dieses Problems finden Sie im Leitfaden zur Fehlerbehebung bei Latenzen.

ABORTED

Folgende Situationen können ABORTED-Fehler erhöhen:

  • Eine Entität, die zu viele Updates pro Sekunde erhält.
  • Konflikte bei sich überschneidenden Transaktionen.
  • Trafficanstiege, die die 500-50-5-Regel überschreiten oder auf Hotspots treffen.
ABORTED

Too much contention on these datastore entities. Please try again.

Oder

ABORTED

Aborted due to cross-transaction contention. This occurs when multiple
transactions attempt to access the same data, requiring Datastore mode
to abort at least one in order to enforce serializability.

So lösen Sie dieses Problem:

  • Für einen schnellen Anstieg des Traffics versucht der Datastore-Modus, automatisch um der erhöhten Nachfrage gerecht zu werden. Im Datastore-Modus nimmt die Latenz ab.
  • Hotspots schränken das Hochskalieren des Datastore-Modus ein. skaliertes Design zur Identifizierung von Hotspots.
  • Prüfen Sie auf Datenkonflikte bei Transaktionen und Ihre Nutzung von Transaktionen.
  • Reduzieren Sie die Schreibrate auf einzelne Entitäten.

RESOURCE_EXHAUSTED

Folgende Situationen können zu RESOURCE_EXHAUSTED-Fehlern führen:

Sie haben das kostenlose Kontingentkontingent überschritten und die Abrechnung für Ihr Projekt ist nicht aktiviert.

RESOURCE_EXHAUSTED

Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.

So lösen Sie dieses Problem:

INVALID_ARGUMENT

Die folgenden Situationen können zu INVALID_ARGUMENT-Fehlern führen:

  • Es wird versucht, einen Commit für eine Entität durchzuführen, deren Attributwert indexed größer ist als 1.500 Byte. Dieses Limit gilt für die UTF-8-Codierung des Eigenschaftswerts.
  • Versuch, einen Commit für eine Entität durchzuführen, deren Attributwerte vom Typ nicht indexiert größer sind als 1.048.487 Byte (1 MiB – 89 Byte). Dieses Limit gilt für die Summe der Eigenschaftswerte in einer Entität. Beispiel: Vier Eigenschaften von 256 KiB die jeweils das Limit überschreiten.

1.500 Byte (indexiert) und 1.048.487 Byte (nicht indexiert) sind Limits für Attributwerte Sie können nicht diese Limits überschreiten, und es handelt sich nicht um Kontingente, die angepasst werden können.

INVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes

oder

INVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes

So lösen Sie dieses Problem:

  • Teilen Sie bei indexierten Property-Werten in mehrere Properties unterteilen. Erstellen Sie nach Möglichkeit ein nicht indexiertes Attribut und verschieben Daten, die nicht indexiert werden müssen, in die nicht indexierte Property.
  • Teilen Sie das Attribut für nicht indexierte Attributwerte in mehrere Attribute auf. oder die Komprimierung für den Eigenschaftswert implementieren.