2017-02-06 1 views
1

J'ai une question sur un scénario potentiel et je voulais savoir si notre hypothèse était correcte. (En utilisant 3.x avec cassandra 5.x DSE)Synchronisation des espaces de clés dans le nouveau centre de données de Cassandra

Nous avons appris du docs que pour ajouter une nouvelle (et frais) centre de données à un cluster, nous devons définir comme ReplicationFactor temporairement si:

Où DC1 est le centre de données en cours d'exécution et DC2 est celui que nous sommes en train d'ajouter.

{'class' : 'NetworkTopologyStrategy', 'DC1' : 3, 'DC2' : 0 }

Où DC1 est le centre de données en cours d'exécution. Ce test nous a aidé à comprendre l'impact de la diffusion en continu des données d'un anneau existant vers un tout nouveau.

Maintenant, à notre scénario hypothétique, qui est d'être en mesure de commencer à répliquer un espace de clés qui initialement était seulement répliqué sur un contrôleur de domaine, enregistrer maintenant à d'autres DC en cours d'exécution.

Lors de la création du keyspace:

CREATE KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 0}; 

Ensuite, lorsque les besoins d'affaires changent:

ALTER KEYSPACE Foo WITH REPLICATION = {'class' : 'NetworkTopologyStrategy', 'US' : 2, 'EU' : 2}; 

Est-il considéré comme plus sûr de définir tous les nouveaux keyspaces dans une application avec tous les contrôleurs de domaine à 0, de sorte que la valeur peut être modifiée à un moment donné. Et le fait de changer ce facteur de réplication suffirait-il à déclencher le streaming de l'espace de clés vers les autres centres de données - ou devons-nous également exécuter nodetool rebuild?

Répondre

2

La pratique acceptée consiste simplement à ne pas définir de facteur de réplication pour un contrôleur de domaine auquel vous ne souhaitez pas répliquer un espace de clé particulier. Je ne pense pas que quelque chose de mauvais se produirait si vous le faisiez à votre façon, mais je pense que cela ne serait pas la façon la plus sûre d'y aller. Si vous modifiez ce facteur de réplication, cela suffira pour déclencher le streaming de l'espace de clé vers les autres centres de données. Ou devons-nous également exécuter la reconstruction de nodetool? La modification du facteur de réplication sur l'espace de clés indiquera à toutes les écritures futures de cet espace de clés d'aller également au nouveau centre de données. Toutefois, pour que les données existantes puissent être répliquées dans le nouveau centre de données, doit exécuter nodetool repair ou nodetool rebuild.

+0

Merci, j'accepte votre réponse! Quick side-question, avez-vous des mesures sur combien de temps la réplication complète peut prendre pour un espace de clé de dire, ~ 1TB? –

+0

@FredericCharette tout dépend du nombre de nœuds dans votre cluster et la bande passante réseau disponible. Mais sur un grand cluster géographiquement dispersé, j'ai pu obtenir des nœuds dans un nouveau contrôleur de domaine pour amorcer 50 Go par nœud en 20 minutes environ chacun. J'espère que vous avez une connexion rapide entre vos contrôleurs de domaine et que vous pouvez faire mieux que cela. – Aaron

+0

Génial, merci pour l'info! –