2016-12-22 3 views
1

をタイムアウト私Cassndraテーブルはカサンドラはここ

CREATE TABLE ipaddresss (
    ipAddress text, 
    time timestamp, 
    clientId inet, 
    .. 
    .. 
    .. 
    PRIMARY KEY (ipAddress, time, clientId) 
) WITH CLUSTERING ORDER BY (time DESC, clientId ASC) 

であると私は、Javaのドライバを使用して、以下のREADクエリを取得しようとしていたとき、私は6ノードカサンドラクラスタ

を持っていると、

select * from ipaddresss where ipAddress = '12.45.67.89' AND time > '2016-11-21' 

私は非常に頻繁にcom.datastax.driver.core.exceptions.ReadTimeoutExceptionを取得しています:整合性1での読み取りクエリ中のCassandraタイムアウト(1回の応答が必要でしたが、0回のレプリカのみが応答しました)。私はほとんどの時間の答えを得るが、システムが負荷をかけていなくてもまだ多くのタイムアウトがある。

ResultSetがその設定のFetchSizeのdidntが

+0

明確にするために、「Javaドライバ」について言及していますが、Spring-Data-Cassandraでタグ付けされた質問があります。 Spring-Data-Cassandraを使用していますか? – Aaron

+0

テーブル 'ipaddress'にはいくつのカラムがありますか? – DineMartine

答えて

0

は興味があるだけ助け、最大1000行を持っていますが、どのように多くのCQLの行が各ipAddressパーティションに格納されていますか?各行の列数も結果セットのサイズを増やします。 cqlshからクエリを試して、まだタイムアウトが発生していないかどうかを確認してください。それ以外の場合は、そのパーティション内の有限時間範囲を照会して結果セットを制限してみてください。

例:

select * from ipaddresss where ipAddress = '12.45.67.89' 
    AND time >= '2016-11-21 00:00' and time < '2016-11-21 04:00'; 

それ以外の場合は、春データカサンドラ自体はあなたの問題を引き起こしている可能性がありますいる可能性があります。大きな結果セットをページングするとき、Spring Data Cassandraは(非常に非効率な)SELECT COUNT(*)をバックグラウンドで実行します。このクエリをSpring-Data-Cassandraの外部で動作させることができれば、それがあなたの問題かもしれません。ご存知の方であれば、Spring-Data-Cassandraは常にDataStax認定のドライバを使用してください。

+0

お返事ありがとうございます。 –

+0

お返事ありがとうございます。 ipAddress = '12 .45.67.89 'の場合、私は700以上の行しか持っていません。そしてclolumnsはそれほど大きくはありません。 cqlshは正常に動作します。しかし、Java Driverの問題にぶつかる。ほとんどの場合は動作していますが、時にはタイムアウトに戻ることがあります。 –