JDBCの手法を使用すると、サードパーティライブラリ(Apache Dbcp)を使用して接続プーリングを実現できます。VoltDBの接続プーリング
私はクライアントベースのアプローチを使用していますが、VoltDBは接続オブジェクトを公開していません。接続プールを実装する方法は?
クライアントベースのアプローチのメカニズムはありますか?
JDBCの手法を使用すると、サードパーティライブラリ(Apache Dbcp)を使用して接続プーリングを実現できます。VoltDBの接続プーリング
私はクライアントベースのアプローチを使用していますが、VoltDBは接続オブジェクトを公開していません。接続プールを実装する方法は?
クライアントベースのアプローチのメカニズムはありますか?
クライアントベースのアプローチは、JDBCよりも軽量で強力なAPIです。
Clientオブジェクトは、クラスタ内の各サーバーに接続するか、ClientConfigオブジェクトで "TopologyChangeAware"プロパティをtrueに設定してから、Clientオブジェクトを作成してから、そのクライアントをクラスタに接続され、自動的に他のすべての接続が作成されます。
このアプリケーションは、JDBC Connectionオブジェクトを使用するのではなく、接続を持つこのClientオブジェクトを使用して、データベースと対話します。 Clientオブジェクトはスレッドセーフであり、複数のスレッドで複数のcallProcedure()を同時に呼び出すことができるため、クライアントのプールを作成する必要はありません。
クライアントインターフェイスの詳細については、Using VoltDB Chapter 6. Designing VoltDB Client Applications
クイック返信ありがとうございます。 シナリオ1:1クライアントが1つのサーバーに接続し、ストアドプロシージャへの複数の呼び出しを実行します。 シナリオ2:2クライアントは1つのサーバーに接続し、ストアドプロシージャへの複数の呼び出しを実行します。上記の2つのシナリオでパフォーマンスの変更はありますか? – ChetanSankhala
単一のClientオブジェクトが非常に高いスループットでボトルネックになることがあります。たとえば、voterサンプルアプリケーションを毎秒800,000トランザクション実行できるVoltDBクラスタをテストする場合、おそらく2つまたは3つのクライアントインスタンスを使用する必要があります。また、アプリケーションが100KBや1MBなどの大きなペイロードを含む場合にも役立ちます。しかし、ほとんどのアプリケーションでは、単一のClientオブジェクトで十分です。 – BenjaminBallard