学位論文要旨



No 113179
著者(漢字) 上原,敬太郎
著者(英字)
著者(カナ) ウエハラ,ケイタロウ
標題(和) 分散協調トランザクション記述システム
標題(洋) A System for Describing Distributed Cooperative Transactions
報告番号 113179
報告番号 甲13179
学位授与日 1998.03.30
学位種別 課程博士
学位種類 博士(理学)
学位記番号 博理第3325号
研究科 理学系研究科
専攻 情報科学専攻
論文審査委員 主査: 東京大学 助教授 清水,謙多郎
 東京大学 教授 金田,康正
 東京大学 教授 坂村,健
 東京大学 教授 平木,敬
 東京大学 教授 米澤,明憲
内容要旨

 コンピュータシステムの発展に伴いユーザの層が広がるにつれ、コンピュータの利用形態はより多様化し、コンピュータ上の情報(データ)の利用形態も変化している。ネットワーク速度の向上や計算機の処理速度の高速化によって、複数のユーザ間でのより効率的な情報の共有を行うための基盤が整いつつある。しかし現状では、情報の共有はネットワークファイルシステム上のファイル等、ユーザが情報を参照するだけの一方通行で受動的なものに限られてしまっている。受動的な情報の共有では、情報の利用における利用者間での互いの関連性は非常に低いため、例えばネットワークファイルシステムのような単純なセマンティクスを持った並行性制御の機構さえあれば十分であった。その一方でより能動的な情報の共有、すなわちコンピュータ上の情報を通じて複数のユーザがより積極的・対話的な処理を行う形態への要求は高まっている。グループCADやグループソフトウェア開発環境に代表される分散協調アプリケーションと呼ばれるアプリケーションでは、同じ目的を持った集団(グループ)が情報を能動的に共有することで、互いに協調しながら作業を進めていく。このような分散協調アプリケーションを効率良く実現するためには、能動的な情報の共有を効率的に行うためのソフトウェア技術が必要となるが、これは従来の多くのアプリケーションが行ってきた受動的な情報の共有に比べて本質的な困難を伴っている。なぜならば能動的な情報の共有では、複数の実行主体(ユーザやプロセス)が同時並行に情報を通して協調するため、単なる排他や単なる共有ではない、より柔軟な並行性制御のための機構が必要となるからである。

 従来より用いられてきた並行性制御の機構としてはデータベースなどの分野で広く使われているトランザクションがある。しかし従来の古典的なトランザクションでは(1)長いトランザクションに対するサポートがない、(2)動的で非決定的な振舞いに対応できない、(3)ユーザ間の協調を実現できない、などの理由から分散協調アプリケーションに対しては対応できないという問題点があった。このために分散協調アプリケーションの性質にあわせたさまざまな種類の分散協調トランザクションというものが提案されている。しかし分散協調トランザクションはアプリケーションの求めるセマンティクスや効率によって適切なものを選ぶ必要があり、ただ一つの分散協調トランザクションで全ての分散協調アプリケーションに対応することは困難である。また提案されている協調トランザクションモデルもほとんどが提案に留まり実用化されているものはほとんどないのが現状である。より多様な分散協調アプリケーションに対応するためには、柔軟な分散協調トランザクションを備えたシステムが不可欠である。

 本論文では分散協調トランザクションを記述するためのシステムを提案し、実装を行った。記述システムにおいて重要な点は記述し易さと実行時の効率という2つの要求をどのように満たすかという点にある。本システムではまず分散協調トランザクションが提供する抽象化に着目した記述し易いモデルを構築し、その上で効率の良い実装を行うというアプローチを採った。分散協調トランザクションが提供する抽象化には、空間的な広がり(分散性)に関する抽象化と時間的な広がり(処理の長さ)に関する抽象化があり、要求された問題に応じてこの2つの抽象化を区別して記述することで記述のし易いモデルを提供することができる。本システムでは従来の意味でのトランザクションの中に、空間的に分散した複数の実行主体(スレッドやプロセス)を含むことができる分散共有トランザクションという枠組みを提供している。この枠組の上では、空間的な広がりに関する抽象化はトランザクション内部のプロセス間の関係として記述され、時間的な広がりに関する抽象化はトランザクション同士の関係として記述される。これらをそれぞれトランザクション内プロトコル、トランザクション間プロトコルと呼び、これらの2つのプロトコルの記述を必要に応じて組み合わせることで、柔軟な分散協調トランザクションの記述を実現する。記述システムの評価については記述性と効率という2つの側面からそれぞれのプロトコルについて問題点を検証し、解決を行った。

 トランザクション間プロトコルの記述に関しては、ACTAフレームワークをモデルとして採用している。ACTAフレームワークはトランザクションの性質を解析するための理論的な枠組みで、この枠組みによって多くの提案されている協調トランザクションモデルの性質が記述されることが知られている。一方、ACTAフレームワークの実装については、そのままでは(1)分散化に対応していない、(2)効率の良いキャッシュの共有ができない、(3)数学的な集合を効率良く分散管理する必要がある、など効率面でいくつかの問題点が存在する。本システムではそれらの問題点に対して(1)オブジェクトのバージョン化と楽観的並行性制御の併用、(2)オブジェクトイベントのフィルタリング、(3)アクセス制御集合の最適化、などの解決策を示し、効率的な実装を行った。トランザクション間プロトコルの記述にはC++のクラスライブラリを提供し、継承によって既存のトランザクションモデルのカスタマイズが簡単に行えるようにしている。実験では本システム上で実際に階層トランザクション、分割併合トランザクション、その両者を組み合わせたトランザクション、と言った協調トランザクションモデルを記述し、アプリケーションの求めるアクセスパターンに合わせて適切なトランザクションモデルを提供することによって効率が改善することを検証した。

 トランザクション内プロトコルの記述については、分散共有メモリをモデルとして採用している。分散共有メモリは空間的に分散したオブジェクトの共有を効率良く実現できる枠組みであるが、そのプロトコルを記述する際には抽象化のレベルが低いと記述者があまりに多くの状態数を管理しなくてはならないという問題がある。本システムでは(1)メッセージ到着順序の自動的な並べ換え(メッセージの抽象化)、(2)サーバ内部の不必要な通信の隠蔽(サーバの抽象化)、(3)プロトコルの直線的な記述を可能にするためのメッセージ待ち状態の除去(スレッドの抽象化)、という3つの抽象化を導入したプロトコル記述言語を導入することで、この問題点を解決した。実装したプロトタイプを用いた実験では、write-invalidateプロトコルを記述するための状態数が抽象化によって18状態から3状態へと減少した。また数十行の記述を付け加えただけで約1/3のページフォールトと約10%の遠隔メッセージが削減されることが確認された。

 さらに本論文ではトランザクション内とトランザクション間の両プロトコルを組み合わせて記述することで、より柔軟な並行性制御が可能になることを示している。共有階層トランザクションでは、親子のトランザクション間で一部のオブジェクトの共有を可能にすることによって、楽観的並行性制御における競合を削減した。また動的分割トランザクションでは、オブジェクトのアクセスによってアクセス集合を動的に再構成することによって、分割トランザクション間の競合を回避することができる。

 本研究の貢献は以下の3点である。(1)分散協調トランザクション記述のためのモデルとして従来のトランザクションの概念を拡張した2レベルからなるプロトコルのモデルを構築した点、(2)それぞれのプロトコルを実現する上での記述のし易さと効率という要求を両立するための問題点を明らかにし、それに対する解決策を提案・実装した点、そして(3)実現した分散協調トランザクション記述システムにより、柔軟な分散協調トランザクションシステムの記述が可能であることを記述と実験によって示した点である。

審査要旨

 本論文は6つの章からなる。第1章は序論であり、本論文の研究の動機となった背景について論じている。コンピュータによる協調作業の支援を考えた時に、ネットワークを介して複数の人間が協調作業を行う分散協調アプリケーションは、近年ますますその重要さを増してきている。この分散協調アプリケーションを効率良く実現するためには、競合するアクセスの間での排他制御や分散したオブジェクト間の一貫性制御などの適切な並行性制御のための機構が必要となる。並行性制御の機構としては、データベースの分野で従来から広く用いられているトランザクションが代表的であるが、分散協調アプリケーションに適用するには、対話的で長い作業に向かない、途中結果の公開ができない、グループ内での協調ができない、などの問題点があった。そのためにさまざまな拡張されたトランザクションモデル(分散協調トランザクションモデル)が提案されてきた。しかし、アプリケーションごとに異なるモデルが必要になるために、現状ではアプリケーションごとに異なる並行性制御の機構を用いている。本研究ではこの点をふまえ、多様な分散協調アプリケーションを効率よく支援するためのシステムとして、分散協調トランザクションを記述・カスタマイズ可能なシステムを設計し実装することを目標としている。この主題の設定は、学位論文の主題として十分、かつ妥当であると認められる。

 第2章は本研究が記述・カスタマイズする対象となる、分散協調トランザクションの性質について詳しく分析を行っている。複雑な分散協調トランザクションの性質を記述するために、トランザクション間の時間的な順序関係とオブジェクトの空間的な分散性の2つの軸に従って抽象化を与えることで、ユーザに記述し易いモデルを与えることができる。本研究ではこのモデルに従って従来のトランザクションの概念を拡張し、1つのトランザクションの中で分散した複数のプロセスを実行させることを可能にしている。この抽象モデルの上ではトランザクションとトランザクションの間の時間的関係、および1つのトランザクションの中での空間的分散性の2つを分けて記述することが可能になる。この研究では前者をトランザクション間プロトコルと呼び、後者をトランザクション内プロトコルと呼んでいる。

 第3章ではトランザクション間の時間的順序関係を記述する、トランザクション間プロトコルのカスタマイズについて述べている。トランザクションの性質を記述するためのACTAという数学的枠組を基に、これを分散環境において効率的に実装するための方法について考察している。オブジェクトに関するイベントの抽象化や大規模な集合の最適化などの技術を用いて効率的なトランザクション記述システムの実装を行い、実際にそのシステム上で分散協調トランザクションを記述することで、その記述性と効率の2点について検証を行っている。

 第4章はトランザクション内プロトコルのカスタマイズについて述べている。分散したオブジェクト間の一貫性制御のために分散共有メモリを実装技術として用い、分散共有メモリの一貫性プロトコルを記述する際の問題点について考察を行っている。分散共有メモリプロトコルの記述性が低くなってしまう原因は、プロトコルを表現する状態遷移の状態が非常に多くなってしまうことにあるとし、状態数を減らすための抽象化を行った記述言語を導入することでこの問題を解決している。実際に開発したシステム上でプロトコルの記述を行い、記述性と効率の2点について検証を行っている。

 第5章は3章と4章で述べたトランザクション間プロトコルとトランザクション内プロトコルを組み合わせることによって、より柔軟で効率的なプロトコルのカスタマイズが可能になるということについて議論している。2つのプロトコルが互いの情報を交換し合うことで、プロトコルのカスタマイズを行った具体的な例を示し、実験によってこのことを検証している。

 第6章は、論文全体の内容をまとめ、今後の研究課題について論じている。特に本論文の成果が、多様な分散協調アプリケーションに対して広く適用可能であることを述べている。さらに記述性と効率をより高めるための方針、および実際の分散協調アプリケーションへの適用と既存のシステムとの統合について議論されている。

 本学位論文は、多様な分散協調アプリケーションを支援するためのカスタマイズ可能な分散協調トランザクションシステムの設計と実装方法について提案したものであり、カスタマイズシステムの有用性を記述性と効率という2点において検証を行っている。時間と空間の2つの軸に従って問題を分離したことによって複雑な分散協調トランザクションのカスタマイズを可能にした点で、特に今後の関連分野の研究に寄与するところ大であると認められる。この点において、本論文は高く評価され、審査委員全員で、博士(理学)の学位を授与するにふさわしいと判断した。

 なお本論文の内容の一部は、共著論文として印刷公表済みであるが、論文提出者が主体となって研究および開発を行なったもので、論文提出者の寄与は十分であると判断する。

UTokyo Repositoryリンク