Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Index de résolution des problèmes
Les rubriques suivantes expliquent la procédure à suivre en cas d'échec de la génération de votre index ou de votre index d'arrière-plan.
Rubriques
La création de l'index échoue
Amazon DocumentDB utilise le stockage local sur une instance dans le cadre du processus de création d'index. Vous pouvez surveiller cette utilisation du disque à l'aide de la FreeLocalStorage CloudWatch métrique (CloudWatch -> Metrics -> DocDB -> Instance Metrics). Lorsque la génération d'un index utilise l'ensemble du disque local et échoue, vous recevez une erreur. Lorsque vous migrez des données vers Amazon DocumentDB, nous vous encourageons à créer d'abord des index, puis à insérer les données. Pour plus d'informations sur les stratégies de migration et la création d'index, consultez Migration et mise à niveau d'Amazon DocumentDB la documentation Amazon DocumentDB et le blog : Migrer de MongoDB vers Amazon DocumentDB à l'aide de la méthode hors ligne.
Lorsque vous créez des index sur un cluster existant, si la création de l'index prend plus de temps que prévu ou échoue, augmentez la taille de l'instance pour créer l'index, puis réduisez-la une fois l'index créé. Amazon DocumentDB vous permet de redimensionner rapidement la taille des instances en quelques minutes à l'aide du Console de gestion AWS ou du AWS CLI. Pour de plus amples informations, veuillez consulter Gestion des classes d'instances. Avec la tarification des instances à la seconde, vous payez seulement pour les ressources que vous utilisez à la seconde près.
L'index d'arrière-plan génère des problèmes de latence et échoue
Les compilations d'index en arrière-plan dans Amazon DocumentDB ne démarrent que lorsque toutes les requêtes de l'instance principale démarrées avant le lancement de la création de l'index ont terminé leur exécution. En cas de requête de longue durée, les constructions d'index en arrière-plan seront bloquées jusqu'à la fin de la requête, ce qui peut prendre plus de temps que prévu. Cela est vrai même si les collections sont vides.
Les constructions d'index de premier plan ne présentent pas le même comportement de blocage. Au lieu de cela, les constructions d'index de premier plan bloquent de manière exclusive la collection jusqu'à ce que la construction de l'index soit terminée. Pour créer des index sur une collection vide et éviter de bloquer les requêtes de longue durée, utilisez des builds d'index au premier plan.
Note
Amazon DocumentDB n'autorise qu'une seule création d'index d'arrière-plan sur une collection à la fois. Si les opérations DDL (langage de définition de données) telles que createIndex() ou dropIndex() se produisent pendant la génération d'un index d'arrière-plan, celle-ci échoue.
Indexation de la base de données
Amazon DocumentDB utilise le contrôle de Multi-Version la concurrence (MVCC) pour gérer les transactions simultanées. Lorsque des documents sont supprimés ou mis à jour, leurs versions précédentes restent dans les collections et sont indexées en tant que versions « mortes ». Le processus de collecte des déchets récupère automatiquement de l'espace à partir de ces versions mortes pour les opérations futures.
Le gonflement des index se produit lorsque les index d'une collection s'agrandissent en raison de l'accumulation d'entrées d'index mortes ou obsolètes ou de la fragmentation des pages. Le pourcentage indiqué représente la quantité d'espace d'index qui peut être utilisée par les futures entrées de l'indice. Cette surcharge consomme de l'espace à la fois dans le cache de la mémoire tampon et dans le stockage. Si vous souhaitez supprimer le gonflement, vous devrez reconstruire les index.
Exemple Exemple
Exécutez la commande suivante pour déterminer l'espace de stockage inutilisé pour votre index :
db.coll.aggregate({$indexStats:{}});
Le résultat ressemble à ceci :
{ "name" : "_id_", "key" : { "_id" : 1 }, "host" : "devbox-test.localhost.a2z.com:27317", "size" : NumberLong(827392), "accesses" : { "ops" : NumberLong(40000), "docsRead" : NumberLong(46049), "since" : ISODate("2025-04-03T21:44:51.251Z") }, "cacheStats" : { "blksRead" : NumberLong(264), "blksHit" : NumberLong(140190), "hitRatio" : 99.8121 }, "unusedStorageSize" : { "unusedSizeBytes" :409600, "unusedSizePercent" :49.51} }
Vous pouvez reconstruire les index sans interruption à l'aide de la reIndex commande, qui nécessite une analyse de l'ensemble de la collection. Consultez Maintenance de l'index à l'aide de ReIndex.