問題タブ [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.
cassandra - カサンドラのメモリ不足
3 ノード クラスター (Cassandra 1.2.1) とレプリケーション ファクター 3 の列ファミリーをセットアップしました。
列ファミリーは metric_hour と呼ばれ、列名で 1 時間の 15 秒平均値を保持します。
- アカウント名
- メトリック名
- 値の型 (文字列)
- ユニットタイプ(文字列)
- m0
- m1 ...
- m239
私は 6 つのクライアントを並行して実行しており、それぞれが合計 210 万のメトリック値 (1 つのメトリックに対して 1 年全体で 15 秒の値) を持つデータをクラスターにプッシュしています。各メトリック値のデータを読み書きしたくないので、前もって保存する metric_hours の完全なリストを計算し、最後にそれらをクラスターに送信します。挿入は、BEGIN BATCH ... END BATCH を使用して 50 のグループでバッチ処理されます。
約 5 ~ 6 分後、Cassandra クラスターは圧倒され、ヒープがいっぱいになり、ノードに障害が発生し始めます (応答しなくなるか、完全に停止します)。このセットアップを何度も実行しましたが、同じ結果が得られました。
各 cassandra ノードは、独自の専用ハードウェア、クアッド コア 2.3 GHz Intel i7 CPU、および 16 GB の物理 RAM (これらは Mac Mini Server マシンです。データは内部 SSD に永続化されます) で実行されます。cassandra-env を介して -Xmx および -Xmn を 2 ~ 8 GB の範囲で設定してみました。8GB で実行すると、クラスターの実行時間が長くなりますが、しばらくすると失敗します。
また、一貫性レベルを QUORUM に設定しました。これにより、クラスターが少し長く存続します。分かそこら。
すべての CQL クエリは、Datastax java-driver と CQL3 を使用して Cassandra クラスターに送信されます。row_cache のオンとオフを試しました。
Riak クラスターでまったく同じセットアップを実行すると、比較的長期間問題なく動作します。したがって、Cassandra のセットアップで何が改善できるのか、または何が間違っている可能性があるのか 疑問に思っています。
java - Datastax API を使用した Cassandra データベースへの Upsert/Cassandra データベースからの読み取り (新しい Binary プロトコルを使用)
で働き始めましたCassandra database
。Datastax APIを使用してupsert/read
into/fromする予定ですCassandra database
。私はこれDatastax API
(新しいバイナリプロトコルを使用する)にまったく慣れておらず、いくつかの適切な例を含む多くのドキュメントも見つけることができません。
以下は、新しいバイナリ プロトコルを使用Singleton class
する Cassandra データベースに接続するために作成したものです。Datastax API
最初の質問singleton class
- 新しい Binary プロトコルを使用する Datastax API を使用して Cassandra データベースに接続しているときに、上記で不足しているものがあれば教えてください。
2 番目の質問upsert and read data
- Cassandra データベースに出入りしようとしています -
これらは、上記のシングルトン クラスを使用する DAO のメソッドです。
誰でもこれで私を助けることができますか?私は、新しいバイナリ プロトコルを使用しているこの Datastax API にまったく慣れていないため、これには多くの問題があります。
助けてくれてありがとう。
java - Datastax Java ドライバーを使用した com.datastax.driver.core.exceptions.InvalidQueryException
CLI からこのような列ファミリーを作成しました。
今、Datastax Java ドライバーを使用して、この列ファミリーに挿入しようとしていました-
私はいつもこの例外を受けています -
com.datastax.driver.core.exceptions.InvalidQueryException: 構成されていない columnfamily プロファイル
そして、この方法で、Datastax Java ドライバーを使用して Cassandra への接続/セッションの初期化を作成しようとしています。
Cassandra 1.2.3 を実行しています。そして、上記のコードを使用して Cassandra に接続できます。私が直面している唯一の問題は、挿入中です。
私が知りたかったのは、Datastax Java ドライバーを使用して (CLI モードで作成した) 列ファミリーに挿入できるかどうかです。CLI モードで作成した列ファミリーに挿入しようとすると、常に上記の例外が発生します。
しかし、 で作成した別のテーブルに挿入しようとすると、そのテーブルにCQLsh mode
挿入できます。
どんな助けでも大歓迎です。
cassandra - 倹約、CQL3 か何か?
最近、Cassandra と DataStax が CQL3 をさらに推進していることに気付きました。新しい Java ドライバーもリリースされましたが、これは Thrift をまったく使用していません。また、「コンパクト ストレージ」を使用しない場合、アプリケーションで Thrift を使用することはできません。したがって、Thrift は Cassandra からフェードアウトしていると思います。
私の質問は、新しいアプリケーションの場合、CQL3 を使用する必要がありますか? しかし、私は今でも倹約を好みます。なぜなら、その下で何が起こっているのかを知りたいからです。一方で、衰退して遺産になりつつあるものを使いたくないからです。おすすめは何ですか?
cassandra - Datastax - PreparedStatement はスレッドセーフですか?
com.datastax.driver.core.PreparedStatement インスタンスはアプリケーションでシングルトンにする必要がありますか?
もしそうなら、接続が失われた場合はどうなりますか? PreparedStatement が無効になり、手動で「再準備」する必要がありますか?
PreparedStatement の使用法 (準備と同じメソッドでの実行以外) の簡単な例は素晴らしいでしょう!
cassandra - Datastax Cassandra CQL ドライバーの IN 句にコレクションを含むプリペアド ステートメント
次のクエリを実行しようとしています
Long の Java リストをパラメーターとしてバインドすると、例外が発生します。
(?) を使用しようとすると、単一の Long アイテムがバインドされることが期待されますが、コレクションが必要です
構文にエラーはありますか?