2012-10-10 3 views
7

クラスタ上のレプリケーションファクタが増加すると、読み取り速度も向上しますか?カサンドラ:より大きな複製係数=より速い読み取り?

私は、レプリケーションファクタが1で、6つのノードがあり、トークンが均等に分散されていることを理解しています - 与えられたノードにデータがある確率は16,66%責任があり、余分な時間がかかります。

私は6に設定複製因子で、各ノードは完全なデータセットを持っており、(私たちは一貫性= 1を読んで使用している)他のノードを求めることなく、すぐにデータを取り込むことができることを推測します。レプリケーションファクタを増やすと読み込み速度が向上するはずです。これは正しいです?

私たちのアプリは、比較的少数の書き込みが、毎秒以上の10Kのget()事業を展開しています。クラスターには6つのノードがあり、すべての読み取り操作が非常に高速である必要があります。そのため、我々はcassandraの読み取りパフォーマンスを向上させる方法を探しています。あなたがConsistencyLevel.ONEを使用している限り、正しいです

答えて

4

+0

あなたはこのためにいくつかのリファレンスを提供することができます。私の直感と矛盾するようです。私が知る限り、どの整合性レベルが使用されていても、すべてのレプリカに読み取りが送られます。 – user1202136

+0

@ user1202136これは古い投稿であることを認識していますが、これを読んだ人が混乱するのを避けるために...カッセンドラでは、一貫性をつけることができます。読み取りの一貫性についての全セクションがここにありますhttp://www.datastax.com/documentation/cassandra/2.0/cassandra/dml/dmlClientRequestsRead.html –

4

私は実際にこれをテストするために、100%の書き込みと100%の読み取りbenchmarks- ycsbを実行します。 整合性レベルが1に保たれている間に、複製ファクタを増やすと読み込みが遅くなっているようです。

1600万読み出し動作-ycsbワークロードC

rep.factor _ readtime(分)

1 _ 10.8840833333333

:8ノードクラスタで

ここで私が取得しています数であります

2 _ 11.1243666666667

4 _ 17.4050333333333

サイズを大きくすると、ジャンプがさらに大きくなります。

誰もが理由を説明することはできますか?

+0

私がCassandraを正しく理解していれば、読み書きは何に関係なくすべての*レプリカになります整合性レベルはです。したがって、レプリケーションファクタを増やすと、ノードの負荷が増加するはずです。実際、レプリケーションファクタを倍増させてもリードタイムは倍にならないことに私は驚いています。 – user1202136

+0

@ user1202136読み取りと書き込みは、それぞれの整合性が複製の数、すなわち複製係数に設定されている場合にのみ、すべての複製に移動します。デフォルトでは、単一のレプリカからのみ読み込みます。 –

+0

@adarshhegdeそうです。私はドキュメンテーションを再読み込みし、他のレプリカはデフォルトで0.1と低い確率でリード修復の一部としてのみ接触します。したがって、平均では、一貫性レベルよりも多くの複製が読み込みの一部ですが、平均してそれらのすべてに接触するわけではありません。 http://docs.datastax.com/en/cassandra/1.2/cassandra/architecture/architectureClientRequestsRead_c.html – user1202136

関連する問題