2011-12-14 5 views
2

Comme nous le savons tous, nous avons ConsistencyLevel de ReplicationFactor dans cassandra. Et nous voulons simplement l'utiliser pour conserver la cohérence des données. Parce qu'il est censé garder l'information sur les prix.Utilisation de cassandra et maintien de la cohérence des données

Alors quelle stratégie est la meilleure?

Ecriture TOUT Assurez-vous que l'écriture est écrite dans tous les N réplicas avant de répondre au client. Toute réplique qui ne répondra pas échouera à l'opération

Read ALL Interrogera toutes les répliques et retournera l'enregistrement avec l'horodatage le plus récent une fois que toutes les répliques auront répondu. Toute réplique qui ne répond pas échoue l'opération.

Il semble écrire tout est à coup sûr le plus sûr. Mais vous ne savez pas si tout lire est mieux? Une opinion à ce sujet des avantages et des inconvénients? Tout autre choix de nosql que vous pensez est mieux?

+0

Je dois ajouter un commentaire si vous pensez que certains autres nosql db sont meilleurs que Cassandra dans ce cas d'utilisation. Dites-moi la raison. En fait, je suppose que HBase peut faire mieux en gardant la cohérence. Je ne connais tout simplement pas les détails à ce sujet. –

+0

http://wiki.apache.org/cassandra/API –

Répondre

2

"Meilleur" dépend de ce que vous essayez d'atteindre. Utiliser write ou read au niveau de cohérence ALL signifie que votre cluster sera indisponible pour l'écriture (ou la lecture) si même un nœud ne répond pas. En règle générale, l'écriture et la lecture au niveau de cohérence QUORUM est une approche équilibrée efficace car elle fournit une cohérence totale (vous ne liriez jamais une valeur obsolète) mais peut également tolérer l'échec d'une minorité de nœuds. Mais la «meilleure» approche dépend de votre application et de la consistance dont vous avez réellement besoin. En particulier, vous pouvez obtenir de meilleures performances de lecture et d'écriture (et une meilleure disponibilité) si vous pouvez tolérer une cohérence inférieure.

+0

Tks.DNA. Oui, je peux comprendre de cette façon, il va équilibrer la charge de l'écriture et de la lecture, assurer également la cohérence. Addition, quand est-ce que EACH_QUORUM est utile? Je suis juste curieux à ce sujet. –

+1

Voir http://www.datastax.com/docs/0.7/consistency/index, par exemple. EACH_QUORUM s'assurera que l'écriture a été écrite dans un quorum de réplicas dans chaque centre de données du cluster avant de répondre au client. Il est conçu pour être utilisé dans des clusters avec des stratégies de positionnement de répliques compatibles avec le rack telles que NetworkTopologyStrategy. – DNA

Questions connexes