問題タブ [astyanax]

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 投票する
1 に答える
663 参照

java - 4 つのノードすべてを使用して cassandra データベースに接続する方法

最近、Cassandra データベースの使用を開始しました。Netflix クライアントを使用して、Cassandra データベースからデータを取り込み、読み取ります。

4 つのノードを持つ単一のクラスターがあります。このようなキースペースを作成しました-

そして、私の列ファミリー名は-profile_columnfamily

これらは私の 4 つのノードです。

現在、上記のノードを 1 つだけ使用して、Cassandra データベースに接続し、データを入力しています。しかし、私の DBA によると、接続するには 4 つのノードすべてを使用する必要があります。

Netflixクライアントを使用して接続を確立するために4つのノードすべてを使用する方法がわかりませんか? 誰でもそれで私を助けることができますか?

助けてくれてありがとう。

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

java - Astyanax クライアントの setMaxConns および setMaxConnsPerHost

Astyanax clientからデータを読み取るために使用していますCassandra database。私は を持ってsingle clusterfour nodesます。私は持っていreplication factor of 2ます。私は違いが何であるかを理解しようとしています

Astyanax クライアントのメソッド? これに関する適切なドキュメントが見つかりません。

複数のスレッドを生成し、Cassandra データベースへの接続を 1 回だけ作成して (シングルトンであるため)、他の要求のために再利用し続けるマルチスレッド コードがあります。

上記の2つの方法が読み取りパフォーマンスにどのように影響するかを理解しようとしていますか? そして、それらの値はどのように設定する必要がありますか?

そして、上記の2つの方法を次のように設定している場合-

それではどういう意味ですか?どんな説明でも大いに役立ちます。

更新されたコード:-

以下はコードです。接続を確立するために使用しています-

このコードをデバッグしている場合、BagOfConnectionsConnectionPoolImplクラスにヒットしていません。接続やその他のデフォルト パラメータがどのように使用されているかを確認するために、同じクラスに多くのブレークポイントを配置しました。しかし、なぜそのクラスにヒットしないのかわかりません。

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

scala - astyanax クライアントを使用して scala コードをコンパイルする際の問題

上記は、Cassandra でカウンターとして使用するための列ファミリーを作成しています。なんらかの理由で、コンパイルは次のように失敗します。

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

java - Astyanax クライアントの TOKEN_AWARE としての NodeDiscoveryType の意味は何ですか?

com.netflix.astyanax.connectionpool.NodeDiscoveryTypeTOKEN_AWAREで Cassandra の Astyanax クライアントの列挙値を見つけましたが、それが何をするのか理解しようとしていますか?

cross colo clusterPHXcolo/datacenterに 12 ノード、 SLC に 12ノードの24 ノードがあるとしcolo/datacenterます。

そして、次のように Astyanax クライアントを使用して Cassandra に接続しています。

ofとTOKEN_AWAREofの違いを説明できる人NodeDiscoveryTypeはいますか?TOKEN_AWAREConnectionPoolType

助けてくれてありがとう。

更新されたコード

以下は、変更を加えた後、これまでに使用しているコードです-

あなたはあなたの例で、あなたが使用することを述べました-

この二つ一緒ですよね?しかし、私はTOKEN_AWARE ConnectionPoolTypeデフォルトで使用していると信じてRING_DESCRIBEいるので、再度追加しても意味がありません. 私は正しいですか?

私が間違っている場合は修正してください。

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

java - Astyanax クライアントでの Cassandra 読み取りパフォーマンス

を使用してCassandra database in production environmentいます。single cross colo cluster of 24 nodes意味が12 nodes in PHXあり12 nodes in SLC coloます。というreplication factor of 4意味があり2 copies will be there in each datacenterます。

以下は、keyspacecolumn familiesが作成された方法Production DBA'sです。

placement_strategy = 'org.apache.cassandra.locator.NetworkTopologyStrategy' および strategy_options = {slc:2,phx:2} でキースペース プロファイルを作成します。

私たちは実行Cassandra 1.2.2しておりorg.apache.cassandra.dht.Murmur3Partitioner、 、 with KeyCachingSizeTieredCompactionStrategyおよびVirtual Nodesenabled も持っています。Cassandra ノードはHDD instead ofSSD にデプロイされます。

を使用Astyanax clientしてデータを読み取るためにCassandra database使用していconsistency level as ONEます。50 Millions recordsを使用して実稼働クラスターに (24 ノードで合計約 285GB のデータ)を挿入Astyanax clientし、圧縮が完了した後、実行を開始しread against the Cassandra production databaseました。

以下は、次を使用して接続構成を作成するコードですAstyanax client-

ほとんどの場合、私は95th percentile read performance動き回ってい8/9/10 msます。

私は、私がより良くなる方法があるかどうかを見ようとしていread performanceますCassandra database. 私は 95 パーセンタイルを取得するという印象を受けました1 or 2 msが、実稼働クラスターでいくつかのテストを行った後、私の仮説はすべて間違っていました。クライアント プログラムを実行している場所から Cassandra 本番ノードへの ping 時間は です0.3ms average

以下は私が得ている結果です。

優れた読み取りレイテンシーパフォーマンスを達成するために他に試してみることができることについて、誰かが光を当てることができますか? 私と同じ状況で、Cassandra を本番環境で使用している同様の人がいる可能性があることはわかっています。どんな助けでも大歓迎です。

助けてくれてありがとう。

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

java - Astyanax の EntityPersister とコレクションの更新

バックグラウンド

Astyanax の Entity Persister は、エンティティのマップを複数の列に保存します。形式は mapVariable.key です。

問題:

astyanax の Entity Persister は、エンティティ内のマップが更新されたときに、削除されたキーと値のペアを cassandra から削除しません。

私が現在使用しているソリューション(悪いアプローチ)

行全体を削除してから再挿入します

追加情報

astyanax の Entity Persister (com.netflix.astyanax.entitystore) を使用して、cassandra で Java オブジェクトを永続化します。

私が気付いたのは、エンティティのマップがたとえば2つの値で永続化されている場合: testkey:testvalue & testkey2:testvalue2、および次回同じエンティティのマップが1つの値で永続化される(1つのキーと値のペアが削除された) : testkey:testvalue、testkey2:testvalue2 は列ファミリーから削除されません。

したがって、回避策として、行全体を削除してから再挿入する必要があります。

私の挿入コード:

私は何が欠けていますか?これは非常に非効率的であり、astyanax のエンティティ永続化機能がこれを独自に処理することになっていると思います。

何かご意見は?