web-dev-qa-db-fra.com

Pourquoi ne commencez-vous pas avec un serveur "simple et petit" Cassandra comme vous le faites habituellement avec MySQL?

Pour tout site Web qui commence à peine, la charge est initialement minimale et croît lentement au début. Les gens commencent généralement par leurs sites basés sur MySQL avec un seul serveur (*** également un VPS, pas un serveur dédié) fonctionnant à la fois en tant que serveur d'applications et serveur de base de données. Ils vont généralement trop loin avec cette configuration ils séparent la base de données du serveur d'applications en lui donnant un serveur VPS séparé. C’est ce à quoi une entreprise en démarrage s'attend à ce qu’elle soit lors de la planification de l’approvisionnement en ressources.

Mais jusqu'ici, ce que j'ai vu est très différent de Cassandra. Les gens recommandent généralement de commencer avec au moins un cluster à 3 nœuds (sur des serveurs dédiés) avec beaucoup et beaucoup de RAM. 4 Go ou 8 Go RAM est ce qu'ils suggèrent de commencer par. Ainsi, Cassandra nécessite davantage de ressources matérielles que MySQL. Pour un site Web offrant des performances similaires, une charge/trafic et une quantité de données similaires. Je comprends les exigences de stockage élevées de Cassandra en raison de la réplication, mais qu'en est-il des autres ressources matérielles?

Ne pouvons-nous pas commencer avec des applications basées sur Cassandra, tout comme MySQL. En commençant avec 1 ou 2 VPS et en ajoutant plus chaque fois que vous en avez besoin?

Modifier:

Je ne veux pas comparer des pommes avec des oranges. Je veux juste savoir à quel point la situation peut être encore plus dangereuse lorsque je commence avec une installation de Cassandra à nœud unique basée sur VPS et une installation MySQL à nœud unique. Différence entre ces deux situations. Les serveurs de cassandra sont-ils plus susceptibles d’être indisponibles que les serveurs de MySQL? Ce qui est mauvais si je mets trop Tomcat avec Cassandra, car les gens utilisent la pile LAMP sur un seul serveur.

25
Rajat Gupta

TL; DR;
Vous pouvez même commencer avec un seul nœud, mais vous perdez le facteur hautement disponible de c *.

Cassandra est conçu pour les systèmes qui traitent d’énormes volumes de données, téraoctets et dans certains cas, pétaoctets s. De nombreux utilisateurs passent généralement de MySQL (et de nombreux autres SGBDR) à Cassandra lorsqu'ils constatent que leur système de base de données actuel ne peut pas gérer efficacement la charge de données (l'interrogation devient lente, la gestion du stockage devient difficile, etc.). 


Pourquoi 4-8 Go ​​de RAM?

Les 4 à 8 Go de mémoire vive sont liés à la machine virtuelle Java et à la taille de la mémoire vive pour une récupération de place efficace. Le conseil ne dit pas que vous devriez commencer sur 8 Go, mais que vous ne devriez pas avoir plus de 8 Go

Cela ne veut pas dire que vous ne pouvez pas utiliser Cassandra pour démarrer un seul nœud sur une machine très basique (certaines personnes ont en fait Cassandra fonctionnant sur un Raspberry Pi ).


Pourquoi les gens recommandent 3 nœuds?

Disponibilité est l'un des principaux arguments de vente de Cassandra. Si vous avez 2 nœuds avec RF = 2, vous ne pouvez pas effectuer d'écriture si un seul nœud tombe en panne. Si vous avez 3 nœuds, vous pouvez toujours effectuer des lectures et des écritures.

18
Lyuben Todorov

La réponse courte est absolument can commencez avec un seul petit nœud.

Ce que je pense que d’autres personnes veulent vous suggérer de ne pas faire, c’est que vous apprenez différentes choses en fonction de la configuration de votre système.

Un seul nœud n'a pas la haute disponibilité, mais si vous commencez juste à expérimenter avec Cassandra, c'est probablement un problème. Vous ne vous exposerez pas beaucoup à la façon de faire des sauvegardes, à la mise au point et évidemment au basculement… mais dans votre cas, vous ne vous en souciez probablement pas.

Vous pourrez serez en mesure d’en apprendre davantage sur le codage avec et pour Cassandra et si vous venez d’un SGBDR traditionnel, c’est un obstacle beaucoup plus grand et plus important.

Voyez si vous aimez le modèle de données. Voyez si vous aimez la conception sans schéma. Si vous dépassez tout cela, vous pourrez alors vous demander comment passer à la vitesse supérieure.

WRT votre autre question: un cluster à un seul nœud Cassandra, même s’exécutant sur une petite machine, même si le partage de cette machine avec d’autres services ne devrait pas être plus "dangereux" que d’exécuter MySQL dans une configuration similaire.

13
Brian Tarbox

Les gens recommandent généralement de commencer avec au moins un cluster à 3 nœuds (sur des serveurs dédiés) avec beaucoup et beaucoup de RAM. Ils suggèrent de commencer par 4 ou 8 Go RAM.

Les recommandations relatives au matériel Cassandra sont généralement destinées aux personnes disposant de 100 Go de données. Vous pouvez vous en tirer avec moins si vous n'avez pas beaucoup de données. Vous pouvez accorder la JVM de manière à n’utiliser qu’un segment de mémoire de 512 Mo ou 1 Go dans le fichier cassandra-env.sh.

Ne pouvons-nous pas commencer avec des applications basées sur Cassandra, tout comme MySQL. En commençant avec 1 ou 2 VPS et en ajoutant plus chaque fois que vous en avez besoin?

Oui, vous pouvez. Toutefois, si vous souhaitez tirer le meilleur parti de Cassandra, vous devez absolument commencer par au moins deux serveurs, trois si vous devez pouvoir utiliser QUORUM pour des raisons de cohérence et continuer à gérer un nœud en panne.

Bien que je n’ai jamais exécuté de système de production sur des serveurs aussi petits, j’ai exécuté un cluster d’assurance qualité ouvert en permanence sur des ordinateurs virtuels dotés de 4 Go RAM et de 2 cœurs. Et pour les petites tailles de données, j'ai vu d'autres groupes exécuter des grappes avec aussi peu que 2 Go de RAM.

L’avantage de Cassandra, c’est que lorsque vous avez besoin de plus, il est très facile d’ajouter de nouveaux nœuds au cluster. Et si vous souhaitez déplacer votre cluster vers un matériel plus puissant, au lieu d'en rajouter, vous pouvez facilement ajouter les nouvelles boîtes les plus grandes, puis supprimer les plus petites.

Mise à jour:
Voici un article de blog récent sur la façon de faire fonctionner Cassandra avec un tas de 64 Mo: 

10
Zanson

En réponse à la dernière partie de votre question 

"Ne pouvons-nous pas commencer avec des applications basées sur Cassandra, tout comme MySQL. Commencer avec 1 ou 2 VPS et en ajouter davantage chaque fois que nous en avons besoin?"

Vous pouvez certainement commencer par écrire des applications sur Cassandra. J'ai construit une application bancaire sur cassandra et cela a bien fonctionné. J'avais un cluster à 6 nœuds et j'utilisais Cassandra 1.1. Cassandra a une cohérence de données ajustable qui varie entre une cohérence très forte (prise en charge des transactions) et une cohérence éventuelle.

Vous pouvez certainement commencer avec un VPS et évoluer selon vos besoins. Cassandra est évolutive et l'ajout de nouveaux nœuds se traduit par une augmentation linéaire des performances.

Pour plus d'informations, vous pouvez regarder cette vidéo:

http://www.youtube.com/watch?v=5qEoEAfAer8

Liens utiles : 

http://www.datastax.com/docs/1.1/initialize/cluster_init

http://www.datastax.com/2012/01/how-to-set-up-and-monitor-a-multi-node-cassandra-cluster-on-linux

0
navin