問題タブ [datastax-java-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
27074 参照

timeout - Cassandra の頻繁な読み取り/書き込みタイムアウト

コードベース全体を使用ThriftからCQL使用datastax java driver 1.0.1に変更しましたcassandra 1.2.6..

倹約では、最初から頻繁にタイムアウトが発生し、先に進むことができませんでした... CQLを採用し、それに従って設計されたテーブルが成功し、タイムアウトが少なくなりました....

それで、倹約では機能しなかった巨大なデータを挿入することができました...しかし、ステージの後、約3.5GBのデータフォルダー。書き込みタイムアウト例外が頻繁に発生します。以前と同じユースケースを繰り返しても、タイムアウト例外がスローされます。一度機能したそのランダムは、新しいセットアップの後でも再び機能しません。

CASSADNRA サーバー ログ

これはcassandraサーバーの部分ログDEBUGモードで、エラーが発生しました:

http://pastebin.com/rW0B4MD0

クライアントの例外:

インフラストラクチャ: cassandra、i7 プロセッサに与えられた 8GB ヒープを備えた 16GB マシン..タイムアウト用に調整されたこの yaml で SINGLE ノード cassandra を使用しています。他のすべてはデフォルトです:

  • read_request_timeout_in_ms: 30000
  • range_request_timeout_in_ms: 30000
  • write_request_timeout_in_ms: 30000
  • truncate_request_timeout_in_ms: 60000
  • request_timeout_in_ms: 30000

USE CASE : 組み合わせ (私のプロジェクト用語) を cassandra に保存するユースケースを実行しています....現在、100 の並列スレッドで 250 000 の組み合わせを保存することをテストしています..各スレッドは 1 つの組み合わせを保存しています...実際のケースでは数十をサポートする必要があります数百万ですが、それには別のハードウェアとマルチノード クラスタが必要です...

1 つのコンビネーションの保存には約 2 秒かかり、以下が含まれます。

  • 527 INSERT INTO クエリ
  • 506 個の UPDATE クエリ
  • 954 の SELECT クエリ

100個の並列スレッドが100個の組み合わせを並列に格納します。

WRITE TIMEOUTS のランダムな動作が 200,000 まで動作し、その後タイムアウトをスローし、時には 10k の組み合わせでも動作しないことがわかりました。ランダムな動作。

0 投票する
2 に答える
670 参照

java - Datastax Cassandra Native Java Driver - Query Builder を使用するとパフォーマンス上の利点はありますか?

新しいネイティブ ドライバーを使用すると、文字列またはクラスを使用して CQL クエリを作成できますQueryBuilder

を使用して構築されたステートメントをドライバーがどのように処理するかを知りたいQueryBuilderです。解析されたクエリの表現をコーディネーター ノードに送信しますか、それとも構築されたクエリを単に文字列として送信しますか?

私が尋ねる理由は、構造化された形式でクエリを指定するためです。QueryBuilder を使用するよりも、この形式をテキストベースの CQL に変換する方が簡単ですが、その価値がある場合はそうします。

本質的に、私の質問は次のように要約されます: CQL は、ドライバーまたはノードのどこで解析されますか?

0 投票する
3 に答える
9157 参照

cassandra - DataStaxドライバーによるCassandraの行レベルのロックのサポート

同時ユーザーによる同じ行へのアクセス中の Cassandra 行レベル ロックのサポート

私たちは、Cassandra を在庫データベースとして考慮した、ショッピング カート アプリケーションの設計段階にあります。現在の要件は、複数のユーザーが在庫 DB の同じ商品行に同時にアクセスする場合です。例:- 製品テーブル: productID productQuantitiy 1000 1 最初のユーザーが製品「1000」を選択し、製品数量を「1」としてショッピング カートに追加した場合、同じ製品にアクセスする他のユーザーは、最初のユーザー (製品数量を 0 として更新)。カサンドラは、この種のシナリオに対して行レベルのロックをサポートしていますか

0 投票する
1 に答える
3316 参照

cassandra - populate_io_cache_on_flush は、こ​​のメタデータで定義された列ではありません

Data-stax Java ドライバー バージョン 1.0.2 を使用して Cassandra 1.2.1 に接続しているときに、次のエラーが発生します。

以下の行で:

削除したフォルダー \var\lib\cassandra を試してから、cassandra サーバーも再起動しました。これは、以前のデータがないことを意味します。サーバーはエラーなしで起動しますが、接続しようとすると上記のエラーが引き続き発生します。

0 投票する
4 に答える
6036 参照

cassandra - Cassandra と CQL3 を使用して、幅の広い行全体を単一のリクエストに挿入するにはどうすればよいですか?

Cassandra 1.2.8 に 50,000 列の単一行を挿入したいと考えています。挿入する前に、行全体のすべてのデータを (メモリ内で) 使用する準備ができています。

列名は整数で、ページネーションのスライスが可能です。列の値は、その特定のインデックスの値です。

CQL3 テーブル定義:

row_id と 50,000 個の名前/値のペアがすべてメモリにあるので、1 回の要求/操作で 1 行を Cassandra に挿入して、できるだけ高速に処理したいと考えています。

私が見つけたように見える唯一のことは、次の50,000回実行することです:

1 つ目?はインデックス カウンター ( i) で、2 つ目?は location に格納するテキスト値ですi

これには多くの時間がかかります。上記の INSERT をバッチに入れても、かなりの時間がかかります。

必要なすべてのデータ (完全な行) がそろっています。たとえば、「Cassandra、このデータを 1 つの要求で 1 つの行として保存してください」と言うのは非常に簡単だと思います。たとえば、次のようになります。

この例は、現在の CQL3 構文では実現できませんが、目的の効果が示されることを願っています。つまり、すべてが 1 つのクエリとして挿入されるということです。

CQL3およびDataStax Java Driverでこれを行うことは可能ですか? そうでない場合、代わりに Hector または Astyanax ドライバーと Thriftbatch_insert操作を使用することを余儀なくされると思いますか?

0 投票する
2 に答える
2288 参照

session - Cassandra Datastax Java ドライバーでセッションを確認する

クラスタ/セッションが接続されている/有効/OKかどうかを直接確認する方法はありますか?

つまり、終わりのないスレッドに作成された com.datastax.driver.core.Session があり、必要なたびにセッションが正常であることを保証したいと考えています。次のクラスター初期化を使用しますが、これで十分かどうかはわかりません...

0 投票する
1 に答える
4778 参照

timeout - カサンドラの read_request_timeout_in_ms

cassandra.yaml で指定できる読み取り要求のタイムアウトがあります。

このタイムアウトに関する説明が必要です。

クライアント リクエスト ドキュメントによると、読み取りリクエストには、外部リクエストまたはバックグラウンド修復リクエストの 2 つのタイプがあります。

Q1: このタイムアウトは両方のタイプのリクエストに適用されますか? また、それぞれの場合はどうなりますか?

ここで、外部読み取りのみに注目します。繰り返しになりますが、上記のリンク先のドキュメントでは、読み取り中に一貫性を維持するためにバックグラウンド プロセスが開始されると記載されています。

Q2: 外部読み取り要求の場合、バックグラウンド プロセスにかかる時間はタイムアウトに含まれますか?

各読み取りリクエストにタイムアウトを課したいので、これらの質問をしていますが、読み取りにリンクされている他のバックグラウンドプロセスに影響を与えたくないのです。