0

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

setMaxConns and setMaxConnsPerHost 

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

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

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

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

setMaxConns(-1) and setMaxConnsPerHost(20) 

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

更新されたコード:-

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

private CassandraAstyanaxConnection() {

    context = new AstyanaxContext.Builder()
    .forCluster(ModelConstants.CLUSTER)
    .forKeyspace(ModelConstants.KEYSPACE)
    .withAstyanaxConfiguration(new AstyanaxConfigurationImpl()      
        .setDiscoveryType(NodeDiscoveryType.RING_DESCRIBE)
    )
    .withConnectionPoolConfiguration(new ConnectionPoolConfigurationImpl("MyConnectionPool")
        .setPort(9160)
        .setMaxConnsPerHost(20)
        .setMaxConns(-1)
        .setSeeds("host1:9160,host2:9160,host3:9160,host4:9160")
    )
    .withAstyanaxConfiguration(new AstyanaxConfigurationImpl()      
        .setCqlVersion("3.0.0")
        .setTargetCassandraVersion("1.2"))
    .withConnectionPoolMonitor(new CountingConnectionPoolMonitor())
    .buildKeyspace(ThriftFamilyFactory.getInstance());

    context.start();
    keyspace = context.getEntity();

    emp_cf = ColumnFamily.newColumnFamily(
        ModelConstants.COLUMN_FAMILY, 
        StringSerializer.get(), 
        StringSerializer.get());
}

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

4

1 に答える 1