2

私は、定期的な書き込みと大量の読み取りを一度に必要とするアプリケーションに取り組んできました。

アプリケーションは、サイズがそれほど大きくないいくつかのテキスト列と、テーブル内で最大の列であるマップを格納しています。

Scala (下にある Datastax Java ドライバー) で Phantom-DSL を使用すると、データ サイズが大きくなるとアプリケーションがクラッシュします。

ここに私のアプリケーションからのログがあります。

[error] - com.websudos.phantom - All host(s) tried for query failed (tried: /127.0.0.1:9042 (com.datastax.driver.core.OperationTimedOutException: [/127.0.0.1:9042] Operation timed out))

そして、ここにcassandra のログがあります。

Cassandra のログは、回答に埋め込むにはかなり大きいため、ペーストビンに投稿しました。

このクラッシュの理由を理解できないようです。タイムアウトを増やし、行キャッシュをオフにしようとしました。

私の理解では、これは基本的な問題であり、この特別なケースに合わせて Cassandra を調整することで解決できます。

カサンドラの使用状況は、さまざまなデータ ソースからのものです。したがって、書き込みはそれほど頻繁ではありません。ただし、一度に 300K を超える行が必要になる可能性があるため、読み取りはサイズが大きく、HTTP 経由で転送する必要があります。

4

2 に答える 2

0

マップ (およびコレクション全般) は、Cassandra ヒープスペースに対して非常に要求が厳しい場合があります。データ モデルを変更してマップを別のテーブルに置き換えると、gc の問題が解決する場合があります。しかし、Cassandra の使用状況に関する詳細が不足しているため、これは多くの憶測です。

于 2015-10-12T10:56:45.283 に答える