1.2.2 インメモリデータバッファの優位点
ここでは,グローバルバッファと比較したときのインメモリデータバッファの優位点について説明します。性能面ではインメモリデータバッファの方が優れていますが,障害発生時の対処方法がグローバルバッファに比べてやや複雑になります。
インメモリデータバッファとグローバルバッファのそれぞれの優位点を次に説明します。
- <この項の構成>
- (1) インメモリデータバッファが優位な点
- (2) グローバルバッファが優位な点
(1) インメモリデータバッファが優位な点
インメモリデータバッファが優位な点を次に示します。
- ディスク入出力回数が少ない
グローバルバッファを使用している場合はディスク入出力が定期的に発生しますが,インメモリデータバッファを使用している場合は,ディスク入出力が発生するのはインメモリ化した時点とディスクへのデータ書き込み時点の2回だけです。シンクポイント時にもディスクへの書き込みが発生しません。そのため,インメモリデータバッファを使用する方が,グローバルバッファを使用したときに比べてディスク入出力回数が少なくなります。
- バッファの管理処理が少ない
グローバルバッファを使用している場合は次に示すバッファ管理処理が発生しますが,インメモリデータバッファを使用している場合はこれらのバッファ管理処理が発生しません。
- キャッシュバッファチェーン(バッファへのポインタの集合)の管理処理
- LRUリストの管理処理
- 更新バッファの管理処理
インメモリデータバッファを使用した方が,これらの管理処理が不要になり,その分性能が向上します。また,トランザクションの同時実行性も向上します。
- チューニングが不要
グローバルバッファの場合はヒット率を意識してグローバルバッファのチューニングをする必要があります。一方,インメモリデータバッファの場合はヒット率を意識する必要がないため,チューニングが必要ありません。そのため,チューニングに掛かるコストを削減できます。
(2) グローバルバッファが優位な点
グローバルバッファが優位な点を次に示します。
- HiRDBが異常終了したときのデータの回復方法
グローバルバッファを使用している場合は,HiRDBが異常終了しても,再開始時に最新の状態にHiRDBが回復します。インメモリデータバッファを使用している場合は,HiRDBが異常終了して再開始しても,HiRDBは自動回復しません。この場合,HiRDB管理者がバックアップとログを使用して最新の状態に回復するか,またはインメモリ化時点以降の処理を再実行する必要があります。