こんな具合で「磁気テープ装置」がないという状態にも関わらず、他社(トヨタ部品共販大阪)の約12万点のマスターを毎月コピーして頂き、最新の状態で処理できることになりました。が、ここで、ひと工夫が必要になりました。すなわち、小型のオフコンで約12万点のマスターをランダム処理するという無謀性であります。
本社では、「新車システム」が稼働しており、また、バッチ処理では、経理システムや販売総計システム、人事システムなどが稼働している状況でしたので、ディスクのシリンダー負荷を軽減しないと期待するレスポンスが出ないという危惧がありました。このシリンダー負荷の軽減は、「コア・インデックス」という定義で解決することになりました。
マスター・ファイルは、索引(インデックス)部とデータ部があり、索引部をシーケンシャルに読んで該当するデータの番地を探して、その番地で本データを読みに行く仕掛けで運用するのが普通の処理です。私は、この索引部を分割して、その分割したブロックの先頭索引の情報を「コア」(コンピュータのCPU)に記憶させる方式を採用したのでした。
難しい話ですが、カンタンに説明すると、12万点のマスターではあるが、索引部だけは、例えば、1000点のマスターとして管理し、CPUの中でどのマスターにあるかを判別して、目的のマスターを見つけ、その索引部をシーケンシャルにサーチして、ランダム処理をする方式、つまり、12万点であっても、1000件のマスターとほぼ同じ処理速度を実現する技法でした。
これは、本当に効果絶大です。例えば、12万点の場合、インデックスを平均6万件もシーケンシャルに読む必要があるのですが、「コア」で分割するとそれが一挙に平均500件で済むというのでは、単純には、120倍の処理時間差が出てくるのです。いくら高速処理が謳い文句のコンピュータであっても、120分の1という格差は顕著に現れました。
|