Sun Java System Application Server Enterprise Edition 8.2 パフォーマンスチューニングガイド

HADB データデバイスのサイズの計算

HADB データベースを作成するときに、データデバイスの数と、各データデバイスのサイズを指定します。これらのデバイスは、すべてのユーザーデータを格納できる十分な容量にします。さらに、あとの節で説明されている、内部オーバーヘッドに対応するための追加スペースも確保します。

データベースがデバイス空間を使い果たすと、HADB から Application Server にエラーコード 4593 または 4592 が返されます。


注 –

これらのエラーメッセージの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Error Message Reference』を参照してください。


また、HADBによってこれらのメッセージは履歴ファイルにも書き込まれます。この場合、HADB では、データを挿入または更新するクライアント要求はすべてブロックされます。ただし、削除操作は受け付けられます。

HADB では、セッション状態がバイナリデータとして保存されます。セッション状態は直列化され、BLOB (バイナリラージオブジェクト) として保存されます。各 BLOB は、約 7K バイトのチャンクに分割され、各チャンクは、16K バイトのページにデータベース行 (コンテキスト行はタプルまたはレコードと同義) として保存されます。

各行で小さなメモリーオーバーヘッド (約 30 バイト) が生じます。もっともコンパクトな行割り当て (BLOB チャンク) では、1 ページに 2 行が保存されます。内部断片化により、各ページに1 行しか格納されないこともあります。平均では、各ページの 50% にユーザーデータが格納されます。

ノード障害が発生した場合でも利用できるように、HADB では常に、ユーザーデータがレプリケートされます。HADB ノードには、そのノード自体のデータと、ミラーノードからのコピーデータが保存されます。このように、すべてのデータは 2 回保存されます。平均ではノード容量の 50% がユーザーデータで、各ノードはミラーリングされるので、データデバイスの容量は、ユーザーデータの量の 4 倍以上にしてください。

データの再断片化については、HADB では、再断片化操作の実行中に古いバージョンのテーブルと新しいバージョンのテーブルの両方が保持されます。すべてのアプリケーション要求は古いテーブルで実行されますが、同時に新しいテーブルが作成されています。このため、データベースが主に、セッション状態の BLOB データを格納する 1 つの大きなテーブルとして使用される場合は、デバイス空間に必要な容量をさらに 2 倍にします。したがって、稼働中のデータベースにノードを追加し、すべてのノードを使用するためにデータを再断片化する場合は、利用可能なユーザーデータの量の 8 倍の容量が必要になります。

さらに、HADB の内部使用のために予約されているデバイス空間 (LogBufferSize の値の 4 倍) も考慮に入れます。HADB では、このディスク領域は高負荷時のログバッファーの一時的な記憶域として使用されます。