2011-08-25 5 views
7

Je cherche si cassandra a des limites de spécification de matériel de noeud comme ce qui pourrait être le stockage maximum par noeud s'il y a une telle limitation.cassandra nœuds limitations

J'ai l'intention d'utiliser deux nœuds avec un stockage de 48 To (2 To X 24 disques durs 7200 tours par minute) par nœud avec un bon processeur double xeon.

J'ai recherché de telles limitations si elles existent mais je n'ai trouvé aucun matériel sur ce problème. Et les gars, pourquoi il ya tellement moins de rumeurs à propos de Cassandra récemment, alors que ça devient mature et sa version 0.8 alors que la plupart des articles/blogs sont liés à 0.6v seulement.

Répondre

7

Cassandra distribue ses données par ligne, de sorte que la seule limitation importante est qu'une ligne doit pouvoir s'adapter à un seul nœud.

Donc, la réponse courte est non. La réponse la plus longue est que vous voulez vous assurer que vous configurez une zone de stockage séparée pour vos données permanentes et vos journaux de validation.

Une autre chose à garder à l'esprit est que vous aurez toujours des problèmes de vitesse de recherche. L'une des bonnes choses à propos de Cassandra est que vous n'avez pas besoin d'avoir un seul nœud avec autant de données (et en fait ce n'est probablement pas bien conseillé, votre stockage dépassera votre puissance de traitement). Si vous utilisez des nœuds plus petits (espace disque dur), vos capacités de stockage et de traitement évolueront ensemble.

+0

Son bon point que la puissance de traitement peut dépasser le stockage.Avez-vous une bonne idée du taux de puissance de stockage et de traitement? J'avais l'intention d'utiliser un total de 16 (32 threads) coeurs dual xeon 7560 pour ce stockage. –

+0

L'endroit idéal que je ne pouvais pas commenter. Cependant, un autre point à considérer est votre facteur de réplication. Avez-vous l'intention d'avoir 3 ou plus de ces nœuds avec un RF> = 2? Si vous ne le faites pas, alors vous contournez beaucoup des avantages de Cassandra (le numéro un n'étant pas un seul point de défaillance). – dmcnelis

+0

Oui, il y aurait même plus de 3 nœuds de même taille et RF> = 2. btw Je voudrais également entendre parler de l'utilisation d'une option alternative comme RAID10 .. si elle réduit de manière significative le travail de réplication de Cassandra. –

5

Voir How much data per node in Cassandra cluster?

qui suggère qu'entre 1-10 To par nœud est sensible, en fonction de votre application. Cassandra fonctionnera probablement encore avec 48 To, mais pas de manière optimale.

Avez-vous l'intention d'utiliser un facteur de réplication de 1 ou 2 (si vous avez 2 nœuds comme indiqué ci-dessus)?

Certaines opérations (réparation, compactage) peuvent être extrêmement lentes avec autant de données sur un seul nœud.

+0

Si je casse chaque nœud pour dire 10TB quel CPU/RAM devrait être idéal pour que Cassandra gère tout bien? J'avais l'intention d'employer 640GB RAM avec le stockage de 48TB parce qu'il y aura seulement dans l'index de colonne pour maintenir. –

+2

Quelques commentaires sur RAM à http://wiki.apache.org/cassandra/CassandraHardware - mais cela dépend beaucoup des caches de clés ou des caches de lignes que vous utilisez, et de votre charge de travail en lecture-écriture. Vous obtiendrez probablement de meilleurs résultats avec plus de nœuds, chacun avec un matériel modeste, qu'avec quelques nœuds hautement spécifiés. – DNA

7

Il existe des remarques here sur les considérations relatives aux grands ensembles de données. 48 To de données par nœud est probablement beaucoup trop. Il vaudra beaucoup mieux avoir plus de nœuds avec de plus petites quantités de données. Périodiquement, vous devez exécuter nodetool repair, ce qui implique la lecture de toutes les données sur la machine. Si vous stockez plusieurs téraoctets de données sur une machine, cela sera très douloureux.

Je limiterais chaque noeud à environ 1 To de données.

5

Vous devez également faire attention en utilisant de grandes quantités de RAM avec Cassandra. La RAM est idéale pour mettre en cache les données dans SSTables, mais donner trop d'espace à la JVM est contre-productif. Ne donnez pas à la JVM plus de 12 Go d'espace mémoire, sinon la récupération de place prendra trop de temps et entravera les performances. C'est une autre raison pour laquelle avoir des nœuds plus petits est meilleur à Cassandra.