OrientDB - Mise en cache

Cachingest un concept qui créera une copie de la structure de table de la base de données offrant un environnement confortable pour les applications utilisateur. OrientDB a plusieurs mécanismes de mise en cache à différents niveaux.

L'illustration suivante donne une idée de ce qu'est la mise en cache.

Dans l'illustration ci-dessus DB1, DB2, DB3 sont les trois instances de base de données différentes utilisées dans une application.

Level-1 le cache est un Local cachequi stocke toutes les entités connues par une session spécifique. Si vous avez trois transactions dans cette session, elle contiendra toutes les entités utilisées par les trois transactions. Ce cache est effacé lorsque vous fermez la session ou lorsque vous exécutez la méthode «clear». Il réduit la charge des opérations d'E / S entre l'application et la base de données et augmente à son tour les performances.

Level-2 le cache est un Real cachequi fonctionne en utilisant un fournisseur tiers. Vous pouvez avoir un contrôle total sur le contenu du cache, c'est-à-dire que vous serez en mesure de spécifier quelles entrées doivent être supprimées, lesquelles doivent être stockées plus longtemps et ainsi de suite. Il s'agit d'un cache partagé complet entre plusieurs threads.

Storage model n'est rien d'autre qu'un périphérique de stockage qui est un disque, une mémoire ou un serveur distant.

Comment fonctionne le cache dans OrientDB?

La mise en cache OrientDB fournit différentes méthodologies dans différents environnements. La mise en cache est principalement utilisée pour des transactions de base de données plus rapides, réduisant le temps de traitement d'une transaction et augmentant les performances. Les diagrammes de flux suivants montrent comment la mise en cache fonctionne en mode local et en mode client-serveur.

Mode local (base de données intégrée)

L'organigramme suivant vous indique comment l'enregistrement se situe entre le stockage et l'application utilisée en mode local, c'est-à-dire lorsque votre serveur de base de données est dans votre hôte local.

Lorsque l'application cliente demande un enregistrement, OrientDB vérifie les éléments suivants -

  • Si une transaction a commencé, il recherche à l'intérieur de la transaction les enregistrements modifiés et les renvoie si elle est trouvée.

  • Si le cache local est activé et contient l'enregistrement demandé, le renvoie.

  • Si à ce stade, l'enregistrement n'est pas dans le cache, il le demande au stockage (disque, mémoire).

Mode client-serveur (base de données distante)

L'organigramme suivant vous indique comment l'enregistrement se situe entre le stockage et l'application utilisée en mode client-serveur, c'est-à-dire lorsque votre serveur de base de données est à distance.

Lorsque l'application cliente demande un enregistrement, OrientDB vérifie les éléments suivants -

  • Si une transaction a commencé, il recherche à l'intérieur de la transaction les enregistrements modifiés et les renvoie si elle est trouvée.

  • Si le cache local est activé et contient l'enregistrement demandé, le renvoie.

  • À ce stade, si l'enregistrement n'est pas dans le cache, le demande au serveur via un appel TCP / IP.

  • Dans le serveur, si le cache local est activé et contient l'enregistrement demandé, il le renvoie.

  • À ce stade, l'enregistrement n'est toujours pas mis en cache dans le serveur, puis le demande au stockage (disque, mémoire).