HADB では、データの挿入、削除、更新、読み取りなど、データベースを変更するすべての操作が、実行前にログに記録されます。それらの操作が記述されたログレコードは、(タプル) ログバッファーと呼ばれる共有メモリー部分に配置されます。HADB では、これらのログを使用して、トランザクションが中止されたときの取り消し操作、ノードクラッシュ時の復元、およびミラーノード間のレプリケーションが行われます。
ログレコードは、ローカルで処理されてミラーノードに送られるまでは、バッファー内に残っています。ログレコードは、トランザクションの結果 (コミットまたは中止) が確定するまで保持されます。HADB ノードでタプルログの残りが少なくなると、ユーザートランザクションが遅延し、場合によってはタイムアウトになります。
デフォルト値から開始します。履歴ファイルで HIGH LOAD 情報メッセージを探します。関連するメッセージには必ず、tuple log または log と、発生した内部リソース競合の説明が含まれます。
通常の操作では、ログ領域の使用率は 70 〜 80% と報告されます。領域再生が「低速」と言われるのはこのためです。HADB では、ノードクラッシュが発生時した場合、復旧するためにできるだけ多くのログデータを必要とします。
ログバッファーのサイズと使用状況に関する情報を表示するには、次のコマンドを使用します。
hadbm resourceinfo --logbuf
たとえば、次のような出力が表示されます。
Node No. Avail Free Size 0 44 42 1 44 42
出力の各列の表記の意味は次のとおりです。
Node No.: ノード番号。
Avail: バッファーのサイズ (M バイト単位)。
Free Size: 空きサイズ (M バイト単位)。データのボリュームがバッファーよりも大きい場合は、常にバッファー全体が使用されます。
ログバッファーのサイズを変更するには、次のコマンドを使用します。
hadbm set LogbufferSize
このコマンドを実行すると、変更を有効にするためにすべてのノードが 1 つずつ再起動されます。このコマンドの使用の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の「HADB の設定」を参照してください。