Pour augmenter le trafic rapidement, le mode Datastore tente d'effectuer un scaling automatique afin de répondre à l'accroissement de la demande. Lorsque le mode Datastore effectue un scaling, la latence diminue.
Les hotspots (taux de lecture, d'écriture et de suppression élevés pour une plage d'entités restreinte) limitent la capacité de scaling du mode Datastore. Consultez la page Concevoir des solutions évolutives et identifiez les hotspots dans votre application.
Contention imputable à la mise à jour trop fréquente d'une seule entité ou à des transactions
lecture, écriture (read, write)
Réduisez le taux d'écriture sur des entités individuelles.
Par exemple, les requêtes comportant plusieurs filtres d'égalité (==) mais ne s'appuyant pas sur des index composites peuvent ralentir les requêtes de jointure par fusion.
Pour améliorer les performances, ajoutez des index composites pour ces requêtes. Consultez la section Optimiser les index.
Lectures volumineuses renvoyant de nombreuses entités
read
Utilisez des curseurs de requête pour scinder les lectures de grande taille.
Trop de suppressions récentes
read Cela a un impact considérable sur les opérations qui répertorient les types d'une base de données.
Si la latence est causée par un nombre trop élevé de suppressions récentes, le problème devrait se résoudre automatiquement après un certain temps. Si le problème persiste, contactez l'assistance.
Distribution ramifiée d'index, en particulier pour les propriétés de tableau
write
Consultez les
index explosifs et votre utilisation des propriétés de tableau.
Codes d'erreur
Cette section répertorie les problèmes que vous pouvez rencontrer et fournit des suggestions pour les résoudre.
DEADLINE_EXCEEDED
DEADLINE_EXCEEDED
A deadline was exceeded on the server.
Les situations suivantes peuvent provoquer un nombre plus important d'erreurs ABORTED :
Une entité reçoit trop de mises à jour par seconde.
Contention imputable aux transactions qui se chevauchent
Augmentation du trafic dépassant la règle des 500-50-5 ou présence de hotspots
ABORTED
Too much contention on these datastore entities. Please try again.
Ou
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.
Pour remédier à ce problème :
Pour augmenter le trafic rapidement, le mode Datastore tente d'effectuer un scaling automatique afin de répondre à l'accroissement de la demande. Lorsque le mode Datastore effectue un scaling, la latence diminue.
Les hotspots limitent la capacité du mode Datastore à évoluer à la hausse. Consultez la page Concevoir des solutions évolutives pour identifier les hotspots.
Les situations suivantes peuvent provoquer des erreurs INVALID_ARGUMENT:
Tentative d'enregistrement d'une entité avec une valeur de propriété indexée supérieure à 1 500 octets. Cette limite s'applique au codage UTF-8 de la valeur de la propriété.
Tentative de validation d'une entité avec des valeurs de propriété non indexées supérieures à 1 048 487 octets (1 Mio – 89 octets). Cette limite s'applique à la somme des valeurs de propriété d'une entité. Par exemple, quatre propriétés de 256 ko chacune dépassent la limite.
1 500 octets (indexés) et 1 048 487 octets (non indexés) sont des limites pour les valeurs de propriété. Vous ne pouvez pas dépasser ces limites, et ce ne sont pas des quotas que vous pouvez ajuster.
INVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes
ou
INVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes
Pour remédier à ce problème :
Pour les valeurs de propriété indexées, divisez la propriété en plusieurs propriétés. Si possible, créez une propriété non indexée et déplacez les données qui n'ont pas besoin d'être indexées vers cette propriété.
Pour les valeurs de propriété non indexées, divisez la propriété en plusieurs propriétés ou implémentez une compression pour la valeur de la propriété.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/05 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/05 (UTC)."],[[["\u003cp\u003eThis guide helps resolve issues with Firestore in Datastore mode, focusing on latency and error codes.\u003c/p\u003e\n"],["\u003cp\u003eIncreased latency can be caused by high traffic, contention, slow queries, large reads, recent deletes, or index fanout, each with specific resolutions.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eABORTED\u003c/code\u003e errors often result from too many updates to a single entity, contention from overlapping transactions, or traffic exceeding the 500-50-5 rule, with solutions that involve scaling and reducing write rates.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eRESOURCE_EXHAUSTED\u003c/code\u003e errors are triggered by exceeding the free tier quota without billing enabled, which can be resolved by waiting for the daily reset or enabling billing.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eINVALID_ARGUMENT\u003c/code\u003e errors arise from exceeding property value limits for indexed or un-indexed values, and require splitting the property into multiple properties or implementing compression.\u003c/p\u003e\n"]]],[],null,["# Troubleshooting\n\nThis page shows you how to resolve issues with Firestore in Datastore mode.\n\nLatency\n-------\n\nThe table below describes possible causes of increased latency:\n\nError Codes\n-----------\n\nThis section lists issues that you might encounter and provides suggestions for\nhow to fix each of them.\n\n### DEADLINE_EXCEEDED\n\n```\nDEADLINE_EXCEEDED\n\nA deadline was exceeded on the server.\n```\n\nTo resolve this issue, see the [guide to troubleshooting latency](#latency).\n\n### ABORTED\n\nThe following situations can increase `ABORTED` errors:\n\n- An entity receiving too many updates per second.\n- Contention from overlapping transactions.\n- Traffic increases that exceed the 500-50-5 rule or encounter hot-spots.\n\n```\nABORTED\n\nToo much contention on these datastore entities. Please try again.\n```\n\nOr \n\n```\nABORTED\n\nAborted due to cross-transaction contention. This occurs when multiple\ntransactions attempt to access the same data, requiring Datastore mode\nto abort at least one in order to enforce serializability.\n```\n\nTo resolve this issue:\n\n- For rapid traffic increases, Datastore mode attempts to automatically scale to meet the increased demand. When Datastore mode scales, latency begins to decrease.\n- Hot-spots limit the ability of Datastore mode to scale up, review [designing for scale](./best-practices#designing_for_scale) to identify hot-spots.\n- Review [data contention in transactions](/datastore/docs/concepts/transactions#isolation_and_consistency) and your usage of transactions.\n- Reduce the write rate to individual entities.\n\n### RESOURCE_EXHAUSTED\n\nThe following situations can lead to `RESOURCE_EXHAUSTED` errors:\n\nYou exceeded the [free tier quota](/datastore/pricing#free_quota) and billing is not enabled\nfor your project. \n\n```\nRESOURCE_EXHAUSTED\n\nSome resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.\n```\n\nTo resolve this issue:\n\n- Wait for the daily reset of your free tier quota or [enable billing for\n your project](/billing/docs/how-to/modify-project#enable_billing_for_a_project).\n\n### INVALID_ARGUMENT\n\nThe following situations can cause `INVALID_ARGUMENT` errors:\n\n- Attempting to commit an entity with an **indexed** property value greater than 1500 bytes. This limit applies to the UTF-8 encoding of the property value.\n- Attempting to commit an entity with **un-indexed** property values greater than 1,048,487 bytes (1 MiB - 89 bytes). This limit applies to the sum of the property values in an entity. For example, four properties of 256 KiB each exceed the limit.\n\n1,500 bytes (indexed) and 1,048,487 bytes (un-indexed) are\n[limits](/datastore/docs/concepts/limits) for property values. You cannot\nexceed these limits and they are not quotas that can be adjusted. \n\n```\nINVALID_ARGUMENT: The value of property property-name is longer than 1500 bytes\n```\n\nor \n\n```\nINVALID_ARGUMENT: The value of property property_name is longer than 1048487 bytes\n```\n\nTo resolve this issue:\n\n- For indexed property values, split the property into multiple properties. If possible, create an un-indexed property and move data that doesn't need to be indexed into the un-indexed property.\n- For un-indexed property values, split the property into multiple properties or implement compression for the property value."]]