質問が1つあります。Javaプログラムを使用してHBaseにデータを書き込みます。そこにHTableオブジェクトがあり、次のメソッド(擬似コード)を呼び出します。
// creates a Put object with new data
Put put = createNewPutObject();
htable.put(put);
htable.flushCommits();
clearBufferOnFailはtrueに設定されています。
this.htable.setAutoFlush(false, true);
コードの最初の部分は何度も何度も呼び出されます。何かをしたり、Putオブジェクトを作成したり、htableをフラッシュしたり、さらに何かをしたり、Putオブジェクトを作成したりします...など。
HTableオブジェクトがHBaseへの接続を失った場合はどうなりますか?これは内部で処理されますか?または、HTableオブジェクトを閉じてから、新しいHTableオブジェクトを開く必要がありますか?これまで、接続はHTableオブジェクトから接続プールを使用して内部的に処理されると考えていたため、何もする必要がありませんでした。例外をキャッチして再試行するだけで十分だと思いました。clearBufferOnFailがtrueに設定されているため、重複データは書き込まれません。
しかし、どういうわけか、あまりにも多くの接続が開いている可能性がありますか?それともこれはすべて処理されますか?