Travailler avec des collections Plafonnées MongoDB à partir de Java

Introduction

Dans MongoDB, il n’y a normalement aucune limite à la taille d’une collection. Plus vous indexez de documents, plus la collection s’agrandit. Cependant, pour le stockage de journaux ou les applications à haut débit, une collection de taille illimitée n’est pas toujours une structure idéale. Dans ces cas, il est souvent préférable d’utiliser un autre type de collection appelé collection plafonnée. Dans cet article, nous en apprendrons plus sur ce type de collection spécial et discuterons des avantages et des inconvénients de travailler avec des collections plafonnées MongoDB en Java.

Prérequis

Avant d’examiner de plus près les collections plafonnées et leur fonctionnement, il est important de revoir la configuration système requise. Pour cette tâche, il n’y a qu’une seule condition préalable : vous devez vous assurer que MongoDB et le pilote Java MongoDB ont été correctement configurés au préalable.

Que sont les collections plafonnées MongoDB ?

Comme nous l’avons dit dans l’introduction, la plupart des collections MongoDB ne sont pas limitées en taille. Les collections plafonnées, d’autre part, sont des collections circulaires de taille fixe qui suivent l’ordre d’insertion. Le terme « circulaire » fait référence au fait que lorsque la taille fixe allouée à une collection plafonnée a été atteinte, elle commencera automatiquement à supprimer les documents les plus anciens de la collection et à les écraser pour accueillir les nouveaux documents – un peu comme un tampon circulaire. Une autre caractéristique clé des collections plafonnées est la préservation de l’ordre d’insertion; cela élimine le besoin d’un index pour renvoyer les documents par ordre d’insertion. Dans l’ensemble, la structure et les fonctionnalités d’une collection plafonnée prennent en charge des performances élevées pour les opérations de création, de lecture et de suppression.

Cas d’utilisation pour une collection MongoDB Plafonnée

Bien qu’une collection MongoDB standard fonctionne bien dans la plupart des circonstances, il existe certains cas d’utilisation où les performances peuvent être optimisées en utilisant une collection plafonnée à la place. Quelques cas d’utilisation courants incluent:

  1. Informations de journalisation
  2. Données de cache
  3. Informations d’audit

Dans tous ces cas d’utilisation, les performances sont optimisées par l’élimination d’un index ainsi que par la nature circulaire (premier entré, premier sorti) de la collection, qui maintient l’ordre et contrôle l’utilisation du stockage.

Comment créer une collection Plafonnée MongoDB à l’aide de Java

Maintenant que nous comprenons le fonctionnement des collections plafonnées, examinons un code qui les utilise. Le code ci-dessous montre un exemple de création d’une collection plafonnée MongoDB:

Il se passe beaucoup de choses dans ces quelques lignes de code, alors regardons de plus près et examinons ce qui se passe, ligne par ligne:

  1. Tout d’abord, nous nous connectons à un déploiement MongoDB qui s’exécute localement.
  2. Une fois l’instance client MongoDB connectée au déploiement MongoDB, nous utilisons la méthode getDatabase() pour accéder à la base de données.
  3. Enfin, nous utilisons la méthode createCollection() pour créer explicitement une collection. Cette méthode permet à l’utilisateur de fournir diverses options à l’aide du CreateCollectionOptions(). Dans cet exemple, nous avons indiqué que la collection serait plafonnée et que sa taille en octets serait de 256.

Une fois le code exécuté, nous aurons une nouvelle collection heroColl dans la base de données heroDB d’une taille limitée à 256 octets.

REMARQUE: MongoDB créera automatiquement un index sur le champ _id, mais cet index automatique peut être désactivé pour améliorer les performances des insertions.

Si vous choisissez de désactiver l’index automatique, le code ressemblera à ceci:

1
2
3
4
db.createCollection(« heroColl », nouveau CreateCollectionOptions()
.plafonné (vrai)
.Auto-index (false)
.sizeInBytes(256));

Comment insérer un document MongoDB dans une collection Plafonnée MongoDB en utilisant Java

Ensuite, nous allons regarder un exemple où nous insérons un document dans notre collection plafonnée:

Après avoir exécuté ce code, nous pouvons vérifier l’opération d’insertion en utilisant le shell MongoDB.

  • Tout d’abord, accédez à la base de données « héroDE »:
1
2
utilisez heroDB
commuté en db heroDB
  • Retrouvez ensuite les documents dans la collection  » heroCall « :
1
db.heroColl.trouver().jolie()
  • Les résultats renvoyés doivent ressembler à ce qui suit:
1
2
3
4
5
6
7
{
 » _id » : Il n’y a pas de lien entre le nom du héros et le nom du héros, mais plutôt entre le nom du héros et le nom du héros, mais entre le nom du héros et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, et le nom du héros, ainsi que le nom du héros, et le nom du héros, ainsi que le nom du héros, et le nom du héros, ainsi que le nom du héros, et le nom du héros, ainsi que le nom du héros, ainsi que le nom du héros, ainsi que le nom du héros, ainsi que le nom du héros, ainsi que le nom du héros. »
}

Avantages d’une collection MongoDB Plafonnée

Il y a quelques avantages clés à travailler avec des collections MongoDB plafonnées:

  1. Les collections plafonnées MongoDB offrent un débit plus élevé car les requêtes n’ont pas besoin d’index pour renvoyer les documents dans l’ordre d’insertion.

  2. Une collection plafonnée n’effectuera une mise à jour que si le document mis à jour correspond à la taille du document d’origine. Cela garantit que les documents ne changent pas d’emplacement sur le disque.

  3. La taille fixe et la nature circulaire d’une collection plafonnée en font un choix idéal pour stocker des fichiers journaux.

Inconvénients d’une collection plafonnée MongoDB

Bien qu’il y ait plusieurs avantages à utiliser une collection plafonnée, il y a quelques inconvénients à garder à l’esprit:

  1. Une opération de mise à jour échouera si la mise à jour augmente la taille d’origine d’une collection plafonnée MongoDB.

  2. Vous ne pouvez pas supprimer de documents dans une collection plafonnée. La suppression se produit automatiquement lorsque la taille fixe a été atteinte et que le document le plus ancien est supprimé pour laisser la place à un nouveau document. Vous pouvez cependant utiliser le {emptycapped: theCollection} pour supprimer tous les documents d’une collection plafonnée.

  3. Vous ne pouvez pas partager une collection plafonnée MongoDB.

Conclusion

Si vous venez de vous familiariser avec les collections plafonnées dans MongoDB, vous pouvez voir qu’elles sont très différentes des collections standard. Les collections plafonnées offrent de nombreux avantages pour le stockage de journaux à volume élevé et les applications à haut débit, il est donc important de comprendre comment elles fonctionnent et de savoir comment les utiliser. Avec les instructions fournies dans ce tutoriel, vous n’aurez aucun mal à travailler avec les collections plafonnées MongoDB dans vos propres applications.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.