2017-10-31 14 views
2

JDBCの手法を使用すると、サードパーティライブラリ(Apache Dbcp)を使用して接続プーリングを実現できます。VoltDBの接続プーリング

私はクライアントベースのアプローチを使用していますが、VoltDBは接続オブジェクトを公開していません。接続プールを実装する方法は?

クライアントベースのアプローチのメカニズムはありますか?

答えて

2

クライアントベースのアプローチは、JDBCよりも軽量で強力なAPIです。

Clientオブジェクトは、クラスタ内の各サーバーに接続するか、ClientConfigオブジェクトで "TopologyChangeAware"プロパティをtrueに設定してから、Clientオブジェクトを作成してから、そのクライアントをクラスタに接続され、自動的に他のすべての接続が作成されます。

このアプリケーションは、JDBC Connectionオブジェクトを使用するのではなく、接続を持つこのClientオブジェクトを使用して、データベースと対話します。 Clientオブジェクトはスレッドセーフであり、複数のスレッドで複数のcallProcedure()を同時に呼び出すことができるため、クライアントのプールを作成する必要はありません。

クライアントインターフェイスの詳細については、Using VoltDB Chapter 6. Designing VoltDB Client Applications

+0

クイック返信ありがとうございます。 シナリオ1:1クライアントが1つのサーバーに接続し、ストアドプロシージャへの複数の呼び出しを実行します。 シナリオ2:2クライアントは1つのサーバーに接続し、ストアドプロシージャへの複数の呼び出しを実行します。上記の2つのシナリオでパフォーマンスの変更はありますか? – ChetanSankhala

+1

単一のClientオブジェクトが非常に高いスループットでボトルネックになることがあります。たとえば、voterサンプルアプリケーションを毎秒800,000トランザクション実行できるVoltDBクラスタをテストする場合、おそらく2つまたは3つのクライアントインスタンスを使用する必要があります。また、アプリケーションが100KBや1MBなどの大きなペイロードを含む場合にも役立ちます。しかし、ほとんどのアプリケーションでは、単一のClientオブジェクトで十分です。 – BenjaminBallard

関連する問題