Topologie du cache de réplication
Dans un cluster, si tous les nœuds de serveur ont la même copie de données, cela nous donne une haute disponibilité. Cela signifie que le cluster peut survivre à quelques défaillances de nœuds sans perdre de données. Dans ce but, NCache fournit la topologie répliquée pour garantir que l'utilisation
Notes
Cette fonctionnalité est également disponible dans NCache Professional.
Synchroniser la réplication
Chaque fois qu'un client effectue une opération d'écriture (ajoute, mises à jourou supprime), cette opération est diffusée dans tout le cluster pour répliquer cette opération sur tous les serveurs de cache avant de rendre le contrôle au client. Le serveur qui reçoit les opérations du client se charge de diffuser ces opérations. Au cours de ce processus, un jeton de séquence est extrait du serveur coordinateur et associé à l'opération en cours pour garantir que cette opération est effectuée sur tous les serveurs dans la même séquence afin d'assurer la cohérence des données.
Si une opération d'écriture diffusée échoue sur un serveur de cache, son échec est également diffusé sur tous les serveurs de cache pour supprimer ces données. Ceci est fait pour assurer la cohérence des données dans tout le cluster, ce qui signifie que si des données existent dans le cache, tous les serveurs ont les mêmes données.
Étant donné que la réplication est effectuée de manière synchrone, cette topologie n'est pas adaptée aux opérations d'écriture, car un plus grand nombre de serveurs nécessitent plus de temps pour que les données soient répliquées sur tous les serveurs de cache avant de rendre le contrôle à l'application d'écriture. Il est recommandé de limiter la taille du cluster à 3 serveurs si vous ne souhaitez pas subir de dégradation des performances des opérations d'écriture.
Rôle du serveur coordinateur
Le serveur coordinateur (le nœud de serveur le plus ancien) effectue plusieurs tâches telles que le transfert d'état, opérations d'écriture différée, les invalidations de données comme expirations ainsi que dépendances, etc. Après avoir décidé de supprimer l'un des éléments du cache, il demande à tous les autres nœuds de supprimer également ces éléments de leur cache. Lorsque le serveur coordinateur quitte le cluster, le serveur immédiatement supérieur devient le serveur coordinateur et reprend ses responsabilités.
Opérations de lecture entièrement évolutives
Comme tous les serveurs ont les mêmes données, les clients sont répartis entre tous les serveurs de cache. Ainsi, chaque serveur fournit les mêmes données aux clients. Plus de serveurs dans le cluster signifient que plus de demandes de lecture de données sont traitées simultanément.
Équilibrage de charge de connexion
La topologie répliquée a une fonctionnalité spéciale pour connexions client à équilibrage automatique entre les serveurs pour partager la charge de données entre les serveurs de cache. Lorsqu'un client se connecte à un serveur, ce serveur vérifie que tous les autres nœuds du serveur ont également le même nombre de clients. Si d'autres serveurs ont moins de clients, il rejette gracieusement la demande de connexion client et la redirige vers les autres serveurs. De cette façon, tous les serveurs ont le même nombre de clients et aucun serveur n'est surchargé de clients par rapport aux autres serveurs de cache.
Connectivité client
Dans la topologie répliquée, un client n'est connecté qu'à un seul serveur d'un cluster à la fois. Si le serveur connecté tombe en panne, le client se connecte automatiquement à un autre serveur du cluster sans aucune intervention humaine.
Transfert d'État
Un transfert d'état est déclenché lors de l'adhésion et de la sortie du nœud dans la topologie répliquée. Le transfert d'état déclenché lorsqu'un nœud quitte le cluster ne fait pas grand-chose, car tous les nœuds ont les mêmes données. Mais lors de la jointure d'un nœud, un nœud nouvellement rejoint demande au serveur coordinateur de fournir toutes les données mises en cache pour se synchroniser avec le reste du cluster.
Voir aussi
Topologies partitionnées
Topologie en miroir
Cluster de cache
Cache local