2014-09-03 3 views
0

Les charges de travail à insertion élevée sont liées à la CPU dans Cassandra avant de devenir liées à la mémoire. (Toutes les écritures aller au journal de livraison, mais Cassandra est si efficace par écrit que le CPU est le facteur limitant.Les charges de travail à insertion élevée sont liées au processeur ou aux E/S

peut un corps me expliquer cette déclaration pour laquelle I/O est pas un facteur limitant ici? I dire que je comprends premières têtes d'E/S et à la CPU.

Je pris un coup d'œil à This StackOverflow question ou Cassndra Incubator ou Apache chaîne de courrier électronique, mais encore son pas clair pour moi.

Répondre

1

Cassandra conserve un journal des articles , oui cette partie est I/O. Mais ce journal est annexé continuellement, donc Cassandra n'a pas besoin attendre la recherche du disque dur. En regardant HDD Burst vitesses d'écriture - qui sont au-dessus de 100 Mo/s cela ne semble vraiment pas un facteur limitant pour moi. En fait, le réseau serait limitant. . Mais parce que vous ne serez probablement pas atteindre des vitesses d'écriture au cours de laquelle le réseau devient limitant, les coups de pied de limitation du processeur dans

J'espère que maintenant cette partie de la réponse est logique:

Pour traiter un insert, Cassandra doit désérialiser les messages des clients, trouver quels sont les nœuds qui devraient stocker les données et envoyer des messages à ces nœuds. Ces nœuds stockent ensuite les données dans une structure de données en mémoire appelée Memtable.

Il s'agit presque toujours de la limite liée au processeur. Cependant, plus de données sont insérées, les memtables deviennent volumineuses et sont vidées sur le disque et de nouvelles memtables (vides) sont créées. Les memtables vidés sont stockés dans des fichiers appelés SSTables. Il existe un processus d'arrière-plan appelé compactage qui fusionne SSTables en fichiers de plus en plus grands et de plus en plus grands.

par Richard de Explanation required for a statement in Cassandra documentation

+0

Impressionnant !! logique; beaucoup plus clair maintenant. deux questions. 1.Pourriez-vous plus d'informations sur la corrélation entre la recherche HDD et l'écriture séquentielle? Et 2. voudriez-vous en savoir plus sur la base de l'hypothèse "parce que vous n'atteindrez probablement pas les vitesses d'écriture auxquelles le réseau devient limitatif"? Merci encore –

+0

écriture séquentielle peut théoriquement atteindre la vitesse d'écriture en rafale qui est pour le disque dur grand public entre 100 Mo/s et 300 Mo/s. Le disque dur du serveur devrait être encore plus rapide que cela. 100 Mo/s se traduit par environ 800 Mbits/s. Le serveur sur lequel s'exécute Cassandra a généralement une connexion réseau de 1 Gbit/s. Donc, pour atteindre 100 Mo/s, la bande passante du réseau serait déjà très limitée. Cependant, ce sont des chiffres vraiment approximatifs et ne tiennent pas compte de beaucoup de choses, juste pour vous fournir une image. En fin de compte, considérez la quantité d'insertion de données lorsque vous le faites à une vitesse de 50 Mo/s. – peter

Questions connexes