13.11.1 ハッシュ分割表のリバランス機能とは
ハッシュ分割表のデータ量が増加したためRDエリアを追加すると(表の横分割数を増やすと),既存のRDエリアと新規追加したRDエリアとの間でデータ量の偏りが生じます。ハッシュ分割表のリバランス機能を使用すると,表の横分割数を増やすときにデータ量の偏りを修正できます。ハッシュ分割表のリバランス機能を次の図に示します。
なお,ハッシュ分割表のリバランス機能は,FIXハッシュ及びフレキシブルハッシュのどちらにも適用できます。
- 〔説明〕
-
-
ハッシュ分割表のデータが一杯になったため,ハッシュ分割表を格納するRDエリアを追加しました(表の横分割数を増やしました)。追加したRDエリアにはデータが配置されず,データ量の偏りが生じます。
-
リバランスユティリティ(pdrbalコマンド)を実行してデータ量の偏りを修正します。リバランスユティリティを実行すると,ハッシュグループ単位にデータが移動して再配置されます。これを表のリバランスといいます。
ハッシュ分割表のリバランス機能を使用すると,分割キーをハッシュした結果を基にしてHiRDBがデータを1024のグループ(これをハッシュグループといいます)に分けます。このグループごとにRDエリアのセグメントを割り当ててデータを格納します。データの再配置もこのハッシュグループ単位に行います。
-
(1) 適用基準
-
データの増加が見込まれていて,将来RDエリアを追加する可能性がある場合※
-
データ容量が大きいため,表を再作成するのが難しい場合
- 注※
-
データが格納されているFIXハッシュ分割表(ハッシュ関数HASH1〜HASH6を使用したFIXハッシュ分割表)にはRDエリアを追加できませんが,リバランス機能を持つハッシュ関数HASHA〜HASHFを使用したFIXハッシュ分割表にはRDエリアを追加できるようになります。
(2) 注意事項
各ハッシュグループのデータ量はハッシュ関数のハッシング結果に依存します。したがって,分割キー値が偏っていると,ハッシュグループのデータ量も偏ってしまい,データを均等に分割できないことがあります。
(3) 運用方法
ハッシュ分割表のリバランス機能の運用手順の概略を次に示します。
- 〈手順〉
-
-
ハッシュ分割表を定義するときに,その表をリバランス表として定義します。
-
表の横分割数を増やすため,表格納RDエリアを追加します。
-
リバランスユティリティ※を実行して表のリバランスを行います。
注※ リバランスユティリティには次の表に示す実行モードがあります。
表13‒2 リバランスユティリティの実行モード 実行モードの種類
説明
表のリバランス処理中に表をアクセスできます。
大規模データベースの場合,表のリバランス処理に数日掛かることがあります。その間,リバランス表へのアクセスを実行しながらリバランス処理を実行できます。ただし,表へのアクセス処理と表のリバランス処理を同時に実行するため,両方の処理性能が低下します。なお,処理性能の低下をなるべく防ぐためにトラフィックの少ない時間帯にリバランス処理を行うように処理を複数回に分けられます。
表のリバランス処理中に表をアクセスできません。
リバランス処理に専念できるため,性能的に共有モードより優れています。表へのアクセスを中断できるならば,占有モードでリバランスユティリティを実行することをお勧めします。
なお,占有モードの場合も,リバランス処理を複数回に分けられます。
-