Quelles sont les différences entre un noeud, un cluster et un datacenter dans une base de données cassandra nosql?
j'essaie de dupliquer des données dans une base de données cassandra nosql pour un projet scolaire en utilisant datastax ops center. D'après ce que j'ai lu, il y a trois mots clés: cluster, node, et datacenter, et d'après ce que j'ai compris, les données d'un noeud peuvent être dupliquées dans un autre noeud, qui existe dans un autre cluster. Et tous les noeuds qui contiennent les mêmes données (dupliquées) composent un datacenter. Est ce que le droit?
si ce n'est pas le cas, quelle est la différence?
3 réponses
La hiérarchie des éléments de Cassandra est:
- Cluster
- Centre de données (s)
- Rack (s)
- serveur(s)
- Node (plus précisément, une vnode)
- serveur(s)
- Rack (s)
- Centre de données (s)
un Cluster est Un ensemble de Centres de Données.
un centre de données est une collection de Racks.
un Rack est une collection de serveurs.
Un Serveur contient 256 noeuds virtuels (ou vnodes) par défaut.
une vnode est la couche de stockage de données d'un serveur.
Note: un serveur est le logiciel Cassandra. Un serveur est installé sur une machine, d'où une machine est un serveur physique, une instance EC2, ou similaire.
maintenant de répondre spécifiquement à vos questions.
une unité individuelle de données est appelée une partition. Et oui, les partitions sont répliquées à travers plusieurs noeuds. Chaque copie de la la partition est appelée réplique.
dans un cluster multi-centres de données, la réplication est par centre de données. Par exemple, si vous avez un centre de données à San Francisco nommé dc-sf et un autre à New York nommé dc-ny, alors vous pouvez contrôler le nombre de répliques par centre de données.
Comme un exemple, vous pouvez définir dc-sf 3 répliques et dc-ny avoir 2 répliques.
ces nombres sont appelés le facteur de réplication. Vous diriez que dc-sf a le facteur de réplication est de 3, et le dc-ny a un facteur de réplication de 2. En termes simples, dc-sf aurait 3 copies des données réparties sur trois vnodes, tandis que dc-SF aurait 2 copies des données réparties sur deux vnodes.
alors que chaque serveur a 256 vnodes par défaut, Cassandra est assez intelligent pour choisir les vnodes qui existent sur différents serveurs physiques.
Pour résumer:
- les données sont répliquées à travers plusieurs nœuds virtuels (chaque serveur contient 256 vnodes par défaut)
- Chaque copie des données est appelée une réplique
- L'unité de données est appelé une partition
- la réplication est contrôlée par centre de données
un noeud est une machine simple qui exécute Cassandra. Un ensemble de nœuds contenant des données similaires sont regroupés dans ce qu'on appelle un "anneau" ou un cluster.
parfois, si vous avez beaucoup de données, ou si vous servez des données dans différentes zones géographiques, il est logique de grouper les noeuds de votre cluster en différents centres de données. Un bon exemple de ce type de site est un site Web de commerce électronique, qui peut avoir de nombreux clients fréquents sur la côte Est et la côte ouest. De cette façon, votre les clients de la côte Est se connectent à votre DC de la côte est (pour une performance plus rapide), mais ont finalement accès au même ensemble de données (les deux DCs sont dans le même groupe) que les clients de la côte ouest.
vous trouverez plus d'informations à ce sujet ici: à propos D'Apache Cassandra - Comment fonctionne Cassandra?
et tous les noeuds qui contiennent les mêmes données (dupliquées) composent un datacenter. Est ce que le droit?
proche, mais pas nécessairement. Le niveau de duplication des données que vous avez est déterminé par votre facteur de réplication, qui est défini sur une base par espace de clé. Par exemple, disons que j'ai 3 noeuds dans mon seul DC, tous stockant 600 Go de données produit. Mon products
clés de la définition pourrait ressembler à ceci:
CREATE KEYSPACE products
WITH replication = {'class': 'NetworkTopologyStrategy', 'MyDC': '3'};
ceci assurera que les données de mon produit sont répliquées de façon égale aux 3 noeuds. La taille de mon ensemble de données est de 600 Go, dupliqué sur les 3 noeuds.
Mais disons que nous sommes déploiement d'une nouvelle gamme de produits assez importante, et j'estime que nous allons avoir 300 Go de plus de données à venir, ce qui pourrait commencer à pousser la capacité maximale de nos disques durs. Si nous ne pouvons pas nous permettre de mettre à jour tous nos disques durs en ce moment, je peux modifier le facteur de réplication comme ceci:
CREATE KEYSPACE products
WITH replication = {'class': 'NetworkTopologyStrategy', 'MyDC': '2'};
cela créera 2 copies de toutes nos données, et les stockera dans notre cluster actuel de 3 noeuds. La taille de notre base de données est maintenant 900 GO, mais il n'y a que deux copies (chaque le nœud est essentiellement responsable des 2/3 des données) notre taille sur le disque est encore 600 GO. L'inconvénient ici, c'est que (en supposant que je lis et écris à un niveau de cohérence de ONE
) je ne peut se permettre de subir une perte de 1 nœud. Alors qu'avec 3 noeuds et un RF de 3 (encore une fois la lecture et l'écriture à la cohérence ONE
), je pourrais perdre 2 noeuds et toujours servir des requêtes.
Noeud:
une machine qui stocke une partie de votre base de données. Cela pourrait inclure des données répliquées à partir d'un autre nœud ainsi que ses propres données. Les données dont il est responsable sont déterminées par ses gammes de tokens, et la stratégie de réplication de l'espace de clé contenant les données.
centre de données:
un groupement logique de noeuds pouvant être séparé d'autres noeuds. Un cas d'usage courant est AWS-EAST vs AWS-WEST. La réplication NetworkTopologyStrategy
est utilisé pour préciser le nombre de répliques de l'ensemble de l'espace-clé dans un datacenter donné. C'est ainsi que les utilisateurs de Cassandra parviennent à la réplication Cross-dc. En outre, il existe des politiques de cohérence qui ne requièrent qu'une reconnaissance au sein du Datacenter du coordinateur (LOCAL_*
)
Cluster
la somme de toutes les machines de votre base de données incluant tous les datacenters. Il n'y a pas de contre-cluster de réplication.