MUMPSによる分散・統合化システム Intergrated Distribution System Using MUMPS

野口 弘*, 古林 榮次郎, 寺村 昌文 Hiroshi Noguchi,Eijirou Kobayashi,Masafumi Teramura

大阪府立羽曳野病院 情報企画室 Osaka Prefectural Habikino Hospital


[はじめに]
 メインフレームからクライアント・サーバ(C/S)システムへの再構築を、 全社的に踏み切るユーザも増えてきたが、一貫したシステムデザインを無視し たシステムでは、予想に反して効率が上がらない事例も報告されている。これ は、無条件にホストの業務をC/Sシステムに切り出したり、全体構成を熟考せず、とにかくシステム化で きる部分からシステム化した個別システムを統合化しようとした結果である。
 我々は、C/Sシステムに潜む問題を検討しつつ、下記の点に注意してC/ Sシステムとは異なった、分散統合化システムをMUMPSを用いて構築したので報告する。
 1.1台のプロセッサのダウンでも使用できなくなるシステムはシステムとはいえない。
 2.レスポンスの遅いコンピュータはコンピュータとはいえない。
 3.CPU Power等の資源を有効利用しないシステムは良いシステムとはいえない。

[概要]
 大阪府立羽曳野病院では、1994年1月1日よりDEC7610 2台を 中核とし、Dos/V パソコン238台を端末とする第4期システムを構築した。
 本院のシステムでは、24時間運転を基本としており、いかなる場合にもシ ステムを長時間停止することは不可能である。したがって、DEC7610の システムはクラスター構成をとり、ディスクのシャドウイングはもとより日時 のバックアップ中にもディスクを二重化する構成をとっている。中核システム の他には、単独でも業務のMUMPS環境を実行可能なAXP3600システ ム(データベースは本体と同一容量で冗長なし)及び容量は少ないがほぼ同一 環境を再現できるテスト用システムAXP3400がある。
[C/Sシステムと負荷分散]
 C/Sシステムではデータベースへのアクセスはサーバに一極集中化し、た とえSMP(Symmetrical multiprocessor)のプ ロセッサ数を増加したとしても、コストパフォーマンスは低下してしまう。ま たプロセッサ数を増加しても処理能力はリニアに増加せず、極端な場合には処 理能力が変化しない例もみられる。SMPのプロセッサ数は、効率を考えると 4つが限度という報告もみられる。
 最近はOracleでも複数台のサーバを、クラスタ構成で使用する場合に 対応したParallel Queryを発表し、ネットワーク接続による多重化した サーバで、並列DBMSで効率化を計ろうとしている。しかしC/Sシステム のサーバの多重化は、一般的にSMPのプロセッサの数を増加させるよりも効 率が悪くなる結果が出ている。これはC/Sシステムのネットワークが通常1 0Mb/Sのイーサネット使用していることに起因している。
 当院のシステムではクラスタ結合された2台のDEC7610がサーバとし て機能し、4台のプロセッサは、100Mb/sのFDDIで直接CPU接続 されている。
 通常はデータベースもアプリケーションも、2台のDEC7610システム ですべて実行され、AXP3600などは中核システムのバージョン・アップ 時などは代替システムとして機能し、平常時は中核システムのウォーム・スタ ンバイのシステムとして待機しつつ、オンライン業務に影響を与えるバッチ処 理の負荷分散システムとして機能するように設計されている。
 一般に複数のプロセッサで構築されたシステムは、CPUの負荷がどうして もオンライン系中心となる1台に集中しがちであり、各プロセッサに接続され る端末数も拡張・追加に伴ってアンバランスになりがちである。さらに代替シ ステムはウォーム・スタンバイで、通常はCPU負荷0の状態で有効利用がな されていない例が多くみられる。
 今回我々が開発した分散・統合化システムは、CPUのLoad Ball anceを無駄なく有効に活用し、各アプリケーションに最適なMigrat ion SYSTEM実現するものである。さらにこれらのコントロールはす べてMUMPSで行い、ユーザは自分が今どのプロセッサで実行し、どのシス テムのデータベースを使用しているか意識することなく業務を実行できる。  MUMPSのDDPは、一般のDBMSで使用されているシェアド・ナッシ ング方式のようにデータベースを、プロセスを実行しているシステムにコピー する必要がない。そして並列DBMSのシェアド・ディスク方式に必要なDL M(Distributed Lock Manager)等を、各プロセッ サに搭載する必要はなく各プロセッサがデータベースの排他制限やコヒーレン ス制御を行うので、ネットワークに負荷をかけない。

[システムのMigrationの方法]
 システムの切り替えの方法は、メニューより業務が選択された時点でその業 務が実行されるべきプロセッサがメニューテーブルより決定される。指定のプ ロセッサが立ち上がっていることを事前にDDP管理テーブルによってチェッ クし現在のプロセスをスリープ状態にして、指定プロセッサにリモート・ログ インする。相手プロセスで起動されたプロセスは、自動的に指定された業務ア プリケーションを実行する。業務が終了するとリモート・ログインによって起 動されたプロセスは終了し、もとのスリープ状態のプロセスに戻って業務を再 開する。もしリモート・ログインされるべきプロセッサが立ち上がっていない ときは、自動的に現在のプロセッサで業務を実行する。
 以上のように各アプリケーションは、渡り鳥のようにプロセッサ間を移動し、 最適の環境で業務を実行する。例えばデータベースへのアクセスが主となる業 務はそのデータベースを擁しているプロセッサに、データベースへのアクセス は少ないがCPU資源を大幅に使用するバッチ処理はオンライン業務に影響を 与えないウォーム・スタンバイのプロセッサへMigrateする。これらの コントロール情報はMUMPSグローバルのメニューテーブルに登録されてお り、プロセッサの指定は瞬時に変更可能である。これらの処理は、ユーザの手 を全く煩わせず、通常通りメニューの番号選択するだけでよく、たとえリモー ト・ログインするプロセッサがダウンしていても、ユーザには全く気づかれず に業務を続行することが可能である。
 しかしアプリケーションを状況に応じてどのプロセッサでも稼働できるよう にするには、グローバルのジャーナリングのように、日々変更されたアプリケ ーションプログラムを管理・記録し、自動的に全プロセッサに配送するトゥー ルが必要である。したがって我々は、ルーチンの自動デリバリィ・ユーティリ ティも同時に開発した。

[まとめ]
 MUMPSによる分散・統合化システムを使用することにより、
 1.各プロセッサの負荷分散を簡単にコントロールできる。
 2.3台の主要プロセッサのうち、どの2台がダウンしてもシステム全体の稼働に支障は
 3.ない(レスポンスは当然低下するが)。
 4.このシステムを利用することにより、従来ウォーム・スタンバイのシステムも有効に利用でき無駄がなくなった。
今後は、CPUの負荷を自動モニターし、自動的に起動プロセッサを選択す る管理システムも検討したい。


[参考文献]
(1)中村 正弘 UNIXサーバのクラスタ接続がシステム性能の向上策に浮上
  日経エレクトロニクス No.637 P.130 1995

(2)川上 潤司 破綻なきC/S開発
  日経コンピュータ   No.370 P.116 1995