JPH10254748A - 分散共有メモリ一貫性最適制御方法 - Google Patents

分散共有メモリ一貫性最適制御方法

Info

Publication number
JPH10254748A
JPH10254748A JP9056040A JP5604097A JPH10254748A JP H10254748 A JPH10254748 A JP H10254748A JP 9056040 A JP9056040 A JP 9056040A JP 5604097 A JP5604097 A JP 5604097A JP H10254748 A JPH10254748 A JP H10254748A
Authority
JP
Japan
Prior art keywords
data
state
protocol
page
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9056040A
Other languages
English (en)
Inventor
Akifumi Makinouchi
顕文 牧之内
Taiyuu Kin
泰勇 金
Kunihiko Kaneko
邦彦 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP9056040A priority Critical patent/JPH10254748A/ja
Publication of JPH10254748A publication Critical patent/JPH10254748A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】分散データベース管理システム等における分散
共有メモリ一貫性最適制御方法に関し,読み出しにおけ
る通信コストと書き込みにおける通信コストとのバラン
スを保つことにより,メッセージ通信のオーバヘッドを
削減することを目的とする。 【解決手段】分散共有仮想メモリ3,3'について,書き込
みの少ないデータは,ライト・インバリデーション・プ
ロトコルによって,処理終了後もメモリ3,3'内にデータ
を残し,ライト時にデータ無効を通知する。書き込みの
多いデータは,イーブン・コスト・プロトコルによっ
て,処理終了後もメモリ3,3'内にデータを残すが,ライ
ト時にデータ無効のメッセージは送らないようにし,そ
のデータに対する再度の処理時にそのデータの有効性を
確認することを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は,計算機網上に実現
された分散データベース管理システム等において,各計
算機が持つ分散共有メモリのデータの一貫性を効率よく
保証することができるようにした分散共有メモリ一貫性
最適制御方法に関する。
【0002】
【従来の技術】図17は,一般的な従来の計算機網を示
す。例えば図17に示すように,複数の計算機101〜
104がネットワーク100で接続された計算機システ
ムが用いられている。各々の計算機はディスク記憶装置
111〜114を持ち,ディスク記憶装置111〜11
4にはデータベースが格納される。データベースは複数
のディスク記憶装置に分散されていてもよいし,1つの
ディスク記憶装置に集められていてもよい。データベー
スの利用者は,計算機網上の任意の計算機101〜10
4から,ネットワーク100を介して,任意のディスク
記憶装置111〜114に格納されたデータベースにア
クセスする。
【0003】分散データベース管理システムと分散共有
メモリとは密接な関係がある。分散共有メモリ(または
分散共有仮想メモリともいう)とは,計算機網を構成す
る複数の計算機によって共有されたメモリ空間のことで
ある。具体的には,計算機網上の各計算機に分散共有仮
想メモリの複製が作成され,互いの通信により各複製の
メモリイメージの同一性が維持される(このことをメモ
リコヒーレンスという)。
【0004】このシステムでは,オペレーティングシス
テム(OS)が提供するメモリマップドファイルの機能
を利用することで,ディスク記憶装置にファイルとして
格納されたデータベース(データベースファイル)を,
分散共有仮想メモリにマップすることが可能である。
【0005】図18は,図17に示すシステムでのデー
タベースへのアクセス説明図である。図18のように,
あるアプリケーションプログラム152が,ネットワー
ク100を介して遠隔のデータベース141にアクセス
する場合,両方の計算機101,102の仮想メモリ空
間131,132中に,分散共有仮想メモリ121,1
22が作成される。そして,一方の分散共有仮想メモリ
121はデータベースファイルにマップされ,もう一方
の分散共有仮想メモリ122はアプリケーションプログ
ラム152から利用される。
【0006】ここでは,データベースファイルが格納さ
れたディスク記憶装置111に接続された計算機101
をデータベースサイト,アプリケーションプログラム1
52が実行されるサイトをアプリケーションサイトと呼
ぶことにする。
【0007】データベースサイトおよびアプリケーショ
ンサイト上で,メモリコヒーレンスを行うための特別な
プロセスを常に実行し,このプロセスが実行されている
ことをアプリケーションプログラムから意識させないよ
うにすることが可能である。このようにすると,分散共
有仮想メモリ122へのアクセスは,ネットワーク10
0を意識せずに,通常のメモリアクセスと同様に行うこ
とができる。すなわち,分散共有仮想メモリ122を利
用することで,データベース141へのアクセスを通常
のメモリアクセスと同様に行うことができる。このこと
は,計算機網上に実現された分散データベースのアプリ
ケーションプログラム152の開発が容易に行えること
を意味する。
【0008】以上のようなシステムで用いられるメモリ
コヒーレンスは,計算機網上のあるアプリケーションプ
ログラムが書き込んだデータを,他の計算機に見掛け上
瞬時に配送するための技術である。メモリコヒーレンス
では,あるアプリケーションプログラムがデータを読み
込む場合には,そのデータについて,現時点に最も時間
的に近く書き込まれたデータが読み出されなければなら
ないという原則がある。
【0009】メモリコヒーレンスには,大きく分けて,
Weak ConsistencyとStrong Consistencyの2つの手法が
ある。Weak Consistencyの研究は,“B.N.Bershad and
M.J.Zekauskas.“Midway:shared memory parallel pro
graming casual distributed shared memory”, Procee
dings of the 11th International Conference on Dist
ributed Computing Systems, pp.152-164,1991. ”など
で行われてきた。
【0010】Weak Consistencyでは,ユーザがあるアプ
リケーションプログラムを開発するときに,ある程度メ
モリコヒーレンスを意識したプログラミングを書くこと
を義務づける(例えば,ユーザにロック命令を書かせ
る)ことで,メッセージ数を減らそうというものであ
る。従って,この方式は,ユーザに負担を強いるものだ
といえる。
【0011】一方,Strong Consistencyは,ユーザは,
アプリケーション開発において,メモリコヒーレンスを
意識する必要はなく,その意味でアプリケーションの開
発は容易である。しかし,Weak Consistencyよりも性能
は劣る。
【0012】
【発明が解決しようとする課題】本発明は,前述したSt
rong Consistencyをベースとして,性能面での改善,お
よびデータベースシステムの実現に必要となるトランザ
クション機能の導入を図ることにより,アプリケーショ
ンの開発が容易で,かつ性能のよいメモリコヒーレンス
を実現することを目的とする。特に,読み出しにおける
通信コストと書き込みにおける通信コストとのバランス
を保つことにより,メッセージ通信のオーバヘッドを削
減することを目的とする。
【0013】
【課題を解決するための手段】図1は本発明の概要説明
図である。図1(A)において,1,1’はプロセッサ
とメモリを持つ計算機,2,2’は各計算機で動作する
アプリケーションプログラム(単に,アプリケーション
ともいう)に対して共有メモリへのアクセス機能を提供
する分散共有仮想メモリ管理部,3,3’は計算機1,
1’が共有する分散共有仮想メモリを表す。
【0014】図1(B)は,分散共有仮想メモリ3,
3’内のページの状態遷移を示しており,5はページデ
ータが無効(空)であることを示すインバリッド(Inval
id) 状態,6はページデータが有効であることを示すバ
リッド(Valid) 状態,7は所定の時間内にライトされた
ことを示す更新ホットスポット状態を表す。
【0015】本発明では,各計算機1,1’の分散共有
仮想メモリ3,3’のメモリコヒーレンスを実現するた
めに,ライト・インバリデーション・プロトコル(Write
Invalidation Protocol) によってデータの一貫性を保
証する手段と,イーブン・コスト・プロトコル(Even Co
st Protocol)によってデータの一貫性を保証する手段と
を持ち,ライト・インバリデーション・プロトコルとイ
ーブン・コスト・プロトコルとを,データへのアクセス
状況によって動的に切り換えることを主要な特徴とす
る。
【0016】ライト・インバリデーション・プロトコル
は,各計算機1,1’が保持する分散共有仮想メモリ
3,3’のデータを,そのデータを利用したアプリケー
ションまたは一連のアクセス処理の終了後も残し,その
データの更新時に他の同じデータを持つ計算機に対して
そのデータの無効を通知する(このメッセージをインバ
リデート・メッセージという)ことによって,データの
矛盾が生じないようにする計算機間のプロトコルであ
る。ここでいうアプリケーションまたは一連のアクセス
処理の終了時点とは,アプリケーションプログラムの実
行終了,オンラインシステムにおけるトランザクション
の終了,またはリードロックやライトロックなどのロッ
ク解放等の時点をいう。
【0017】イーブン・コスト・プロトコルは,本発明
によって新たに導入されたプロトコルであり,各計算機
1,1’が保持する分散共有仮想メモリ3,3’のデー
タを,そのデータを利用したアプリケーションまたは一
連のアクセス処理の終了後も残すが,インバリデート・
メッセージの通知はせず,その代わりに再度のリードま
たはライト時にそれが矛盾のないものであるかどうかの
確認を行うことで,その後に他の計算機でデータがライ
トされても,ライト前のデータを読むことなく,新たな
ライト後のデータを読むようにした計算機間のプロトコ
ルである。
【0018】ライト・インバリデーション・プロトコル
とイーブン・コスト・プロトコルとの切り替えは,分散
共有仮想メモリ3,3’の全体に対して行っても,分散
共有仮想メモリ3,3’の例えばページごとに行っても
いずれでもよい。特に,ページ単位で行った場合には,
効果が大きい。
【0019】ページなどのある大きさのデータ単位で切
り替える場合には,例えば以下のようにプロトコルを選
択する。分散共有仮想メモリ3,3’内のデータに対し
て,イーブン・コスト・プロトコルを用いるか,ライト
・インバリデーション・プロトコルを用いるかを,アク
セス要求のあったデータが最後にライトされてから所定
の時間が経過したかどうかによって決める。最後にライ
トされてから所定の時間が経過するまではイーブン・コ
スト・プロトコルを選択し,所定の時間が経過した場合
には,ライト・インバリデーション・プロトコルを選択
する。
【0020】また,分散共有仮想メモリ3,3’の各デ
ータについて,ページごとにライトされた回数をカウン
トしておき,所定の期間内においてライトのアクセス頻
度の多いデータについてイーブン・コスト・プロトコル
を選択し,ライトのアクセス頻度の少ないデータについ
てライト・インバリデーション・プロトコルを選択する
ようにしてもよい。ライトのアクセス頻度が多いか少な
いかは,与えられた閾値との比較によって判断する。ま
たは,リードのアクセス回数との相対的な比較によって
判断するようにしてもよい。
【0021】イーブン・コスト・プロトコルは,データ
の更新時に他の同じデータを持つ計算機に対してそのデ
ータの無効を通知するインバリデート・メッセージを送
る必要がないので,ライトが多い場合には,ライト・イ
ンバリデーション・プロトコルよりもメッセージ通信の
回数が少なくて済み,有利である。
【0022】一方,イーブン・コスト・プロトコルで
は,アプリケーションまたは一連のアクセス処理の終了
後,次のアプリケーションが同じデータを利用する場合
であっても,最新のデータを持つ計算機への問い合わせ
と,必要に応じて再度のデータ転送を行う。したがっ
て,ライトが少なくリードが多いデータに対しては,ラ
イト・インバリデーション・プロトコルのほうが有利で
ある。
【0023】分散共有仮想メモリ3,3’の各ページに
ついて,ライト・インバリデーション・プロトコルを用
いるか,イーブン・コスト・プロトコルを用いるかの決
定のために,図1(B)に示すようなページの状態遷移
を管理する手法を用いることができる。この管理によれ
ば,比較的簡単なロジックによって決定できるので,プ
ロトコル決定のためのオーバヘッドが少ない。
【0024】従来の分散共有仮想メモリのページの状態
には,ページデータが無効である(空である)インバリ
ッド状態5と,ページデータが有効である(データの複
製が作成されている)バリッド状態6の二つの状態があ
った。本発明では,さらに現在から一定時間Tの過去の
間にライトされたという更新ホットスポット状態7を設
ける。
【0025】インバリッド状態5およびバリッド状態6
において,そのページにライトがあった場合には,その
ページの状態を更新ホットスポット状態7に遷移させ
る。インバリッド状態5におけるデータのリードにより
元のデータの複製を持つとき,および更新ホットスポッ
ト状態7において所定の時間Tが経過したときに,その
ページの状態をバリッド状態6に遷移させる。
【0026】バリッド状態6においてそのページデータ
が無効であることを通知するインバリデート・メッセー
ジが到着したとき,そのページの状態をインバリッド状
態5に遷移させる。
【0027】これにより,バリッド状態6のデータに対
しては,ページデータへのライト時に他の同じページデ
ータを持つ計算機に対してそのデータの無効を通知する
インバリデート・メッセージを送信することによってデ
ータの一貫性を保証し,更新ホットスポット状態7のデ
ータに対しては,ページデータのリードまたはライト時
に,そのページデータの有効性の確認を行うことによっ
て,分散共有仮想メモリ内のページデータの一貫性を保
証する。
【0028】本発明の作用は以下のとおりである。分散
共有仮想メモリを利用する分散データベース管理システ
ム等において,メモリコヒーレンスの実現には,データ
ベースサイトおよびアプリケーションサイト間でのメッ
セージ通信が必要である。CPU(プロセッサ)やディ
スク記憶装置の速さに比べて,ネットワークの速さは遅
いので,メモリコヒーレンスのためのメッセージ通信の
オーバヘッドが,性能面での大きなボトルネックとな
る。すなわち,ネットワークを介したデータ転送は遅い
ために,計算機網を構成する計算機の台数をある程度以
上に増やすと,もはや台数の追加による性能の向上を達
成できない。
【0029】そこで,本発明は,従来のメモリコヒーレ
ンス方式に,新しいメモリコヒーレンス方式であるイー
ブン・コスト(Even Cost) プロトコルを統合し,結果と
して,より高い性能を得ることを達成する。イーブン・
コスト・プロトコルは,ライト操作がある程度以上多い
アプリケーションに対して,より少ないメッセージ数で
メモリコヒーレンスを実現可能な方式である。
【0030】本発明は,例えば分散共有仮想メモリをペ
ージ単位に分割し,各ページごとのアクセス状況を監視
することで,各ページごとに最適なメモリコヒーレンス
を判断し,動的に切り替えるものである。
【0031】本発明は,Strong Consistencyをベースと
して,(1)性能面での改善,および(2)データベー
スシステムの実現に必要となるトランザクション機能の
導入を行ったものである。
【0032】
【発明の実施の形態】以下,本発明を分散データベース
管理システムに適用した場合の実施の形態を説明する。
【0033】本方式では,従来のメモリコヒーレンスに
おける一般的な手法であるライト・インバリデーション
(Write Invalidation)プロトコルをベースにしてい
る。ライト・インバリデーション・プロトコルとは,
「必要になったら通信を行う」という方針である。すな
わち,最初,アプリケーションサイトの分散共有仮想メ
モリの中身は空であり,必要に応じて必要な分だけのデ
ータ転送が,アプリケーションサイトに行われるという
方針である。
【0034】図2は,ライト・インバリデーション・プ
ロトコルにおけるリード時の処理を説明する図である。
例えば,図2のように計算機1B上のアプリケーション
プログラムが,分散共有仮想メモリ3B内のデータをリ
ードする時には,リードするデータを含むページのみが
データベースサイトである計算機1Aから計算機1Bに
送られる。このとき,アプリケーションサイトである計
算機1Bは,リードの前にデータ要求を発し,その返事
としてデータが,データベースサイトからアプリケーシ
ョンサイトに供給される。
【0035】ライト・インバリデーション・プロトコル
では,計算機網上の各計算機1A〜1Cに分散共有仮想
メモリの複製が作成され,データを利用したアプリケー
ションプログラム等が終了しても,一度作成された複製
は可能な限り残り続ける。
【0036】このライト・インバリデーション・プロト
コルでは,データ書き込みの場合に,複製が置かれてい
るすべての計算機に対して「当該データは更新されたの
で,今の複製は無効である」ことを知らせるメッセージ
(これをインバリデート・メッセージという)が通知さ
れることが特徴である。
【0037】図3は,ライト・インバリデーション・プ
ロトコルにおけるライト時の処理を説明する図である。
例えば,図3のように計算機1B上のアプリケーション
プログラムがリードした後で,同じデータを計算機1C
上のアプリケーションプログラムがライトする場合,デ
ータベースサイトである計算機1Aから計算機1Cへデ
ータが送られると同時に,計算機1B上の複製を無効化
するためのインバリデート・メッセージが計算機1Bへ
送られる。計算機1Bでは,これにより該当データを消
去するので,計算機1Cがライトを行っても,それより
古いデータを読むことはない。
【0038】一方,イーブン・コスト(Even Cost) プロ
トコルでは,計算機網上の各計算機に作成される分散共
有仮想メモリの複製への再度のリードまたはライト時
に,その有効性の確認を行う。
【0039】図4は,イーブン・コスト・プロトコルに
おけるライト時の処理を説明する図である。イーブン・
コスト・プロトコルにおいて,計算機1B上のアプリケ
ーションプログラムがデータベース8のデータをリード
する時には,リードするデータを含むページのみが,デ
ータベースサイトである計算機1Aの分散共有仮想メモ
リ3Aから計算機1Bの分散共有仮想メモリ3Bに送ら
れる。このことは,ライト・インバリデーション・プロ
トコルと同じである。
【0040】しかし,イーブン・コスト・プロトコルで
は,インバリデート・メッセージの通知を行わない。す
なわち,例えば図4のように計算機1B上のアプリケー
ションプログラムがリードした後で,同じデータを計算
機1C上のアプリケーションプログラムがライトする場
合,データベースサイトである計算機1Aから計算機1
Cへデータが送られるが,インバリデート・メッセージ
を送らない。その代わり,計算機1Bの他のアプリケー
ションが,分散共有仮想メモリ3Bに残っているページ
データをリードまたはライトするとき,計算機1Aとの
間で確認を行う。
【0041】以上を比較すると,イーブン・コスト・プ
ロトコルは,リード時のメッセージ数は多くなり,ライ
ト時のメッセージ数は少なくなる。ライト・インバリデ
ーション・プロトコルでは,計算機網を構成する計算機
の台数の増加につれてインバリデート・メッセージの数
が増加することが問題であったが,イーブン・コスト・
プロトコルではそのような問題はない。
【0042】一方,ライト・インバリデーション・プロ
トコルでは,一度アプリケーションサイトに作成された
複製は可能な限り残り続け,しかも,そのアプリケーシ
ョンサイトで他のアプリケーションプログラムがリード
を行う場合,直ちに利用可能で,データベースサイトか
らのデータ転送を行う必要がないので,その点が有利で
ある。
【0043】以上をまとめると,ライトが多い場合に
は,イーブン・コスト・プロトコルが有利であり,ライ
トが少なくリードが多い場合には,ライト・インバリデ
ーション・プロトコルが有利である。
【0044】本方式の特徴は,分散共有仮想メモリをペ
ージ単位に分割し,各ページごとのアクセス状況を監視
して,各ページごとに最適なプロトコル方式を刻々と判
断することにある。
【0045】各ページについてライトが多いか少ないか
を判断する一方法として,ライトされた回数をページご
とにカウントし,所定の閾値と比較する方法が考えられ
る。本実施の形態では,さらに効果的に判断できるよう
にするため,ページの状態として「更新ホットスポッ
ト」という新しい属性を導入し,次のようにページの状
態管理を行う。
【0046】従来の分散共有仮想メモリのページの状態
には,(1)複製が作成されている(Valid),(2)空
である(Invalid)の2つの状態があった。本方式では,
現在からある一定時間Tの過去の間にライトされたペー
ジは,「更新ホットスポット」であるものとする。すな
わち,ライトされたページは,「バリッド」状態または
「インバリッド」状態から「更新ホットスポット」状態
に変わり,一定時間Tの経過後に「バリッド」状態に変
わるものとする(図1(B)参照)。
【0047】本方式は,ページ状態がバリッド状態の場
合にはライト・インバリデーション・プロトコルを用
い,更新ホットスポット状態の場合には,イーブン・コ
スト・プロトコルを用いるものである。
【0048】更新ホットスポット状態のページにリード
またはライトを行う場合には,これらデータ操作の前
に,データの有効性の確認を行うという操作が必要であ
る。ライトを行ったアプリケーションプログラムについ
ては,その時刻を覚えておいて,更新ホットスポットで
あるべき時間を定める必要がある。
【0049】以上のことから,各ページごとに,アクセ
スしたアプリケーションプログラムのプロセスIDおよ
びその時刻を覚えることが必要である。以下,リードア
クセスした時刻をRRT,ライトアクセスした時刻をR
UTと呼ぶことにする。
【0050】以上の方式を実現するため,アプリケーシ
ョンサイトは,リード時には図5に示した処理を,ライ
ト時には図6に示した処理を行う。また,データベース
サイトでは,リード時には図7に示した処理を行う。
【0051】図5は,リード時におけるアプリケーショ
ンサイトでの処理を説明する図である。リード要求に対
して,ステップS10では,ページ状態が更新ホットス
ポット状態,すなわち現在からさかのぼって一定時間T
内にライトされたページであるかどうかを調べる。更新
ホットスポットの場合,ステップS12へ進む。
【0052】更新ホットスポットでない場合,次にステ
ップS11により,ページ状態はインバリッド状態であ
るかどうかを調べる。インバリッド状態の場合,ステッ
プS12へ進む。
【0053】ページ状態が更新ホットスポットでもイン
バリッドでもない場合,ページ状態はバリッド状態でリ
ードが可能であるので,そのままリード処理へ移る。ペ
ージ状態が更新ホットスポットまたはインバリッドの場
合,その状態でデータをリードすることはできないの
で,データベースサイトにリード要求を行い,データベ
ースサイトからの許可を待つ。
【0054】図6は,ライト時におけるアプリケーショ
ンサイトでの処理を説明する図である。ライト時の処理
もリード時の処理とほぼ同様である。ステップS20で
は,ページ状態が更新ホットスポット状態かどうかを調
べ,ステップS21では,インバリッド状態かどうかを
調べる。
【0055】どちらでもない場合,バリッド状態である
ので,実際のライト処理へ移る。ページ状態が更新ホッ
トスポットまたはインバリッドの場合,ステップS22
によってデータベースサイトにライト要求を行い,デー
タベースサイトからの許可を待つ。
【0056】図7は,リード時におけるデータベースサ
イトでの処理を説明する図である。リード要求に対して
以下の処理を行う。まず,ステップS30では,ホット
・リード・ユーザが存在するかどうかを判定する。すな
わち,現在リードしているユーザがいて,そのデータの
複製が作成されているかどうかを判定する。ホット・リ
ード・ユーザが存在する場合,ステップS31へ進み,
存在しない場合,ステップS32へ進む。
【0057】ステップS31では,そのページが最後に
リードアクセスされた時刻RRTと最後にライトアクセ
スされた時刻RUTとを比較し,リードアクセスのほう
が新しければ,ステップS33へ進み,リード後にライ
トされていれば,ステップS32へ進む。
【0058】ステップ32では,要求元のページは空で
あるか,または古いデータであるので,新しいページデ
ータを転送する。ステップS33では,現在の時刻から
最後にライトした時刻RUTを引いた時間が一定値より
小さいかどうか,すなわち最後にライトしてからまだ一
定時間が経過していないかどうかを判定する。一定値よ
り小さい場合,そのページは更新ホットスポット状態で
あり,ステップS34へ進む。一定値以上の場合,その
ページはバリッド状態であり,ステップS35へ進む。
【0059】ステップS34では,ライト・インバリデ
ーション・プロトコルを採用し,データ要求元のアプリ
ケーションが終了(リードロックを解放)したときは,
ページ状態をバリッドに変更するものとする。一方,ス
テップS35では,イーブン・コスト・プロトコルを採
用し,そのアプリケーションが終了したとき,ページ状
態は更新ホットスポットのままとする。
【0060】
【実施例】図8は,本発明の実施例に係るシステム構成
の例を示す。図中,1A〜1Dは各々プロセッサとメモ
リとを有する計算機,20A〜20Dはアプリケーショ
ンプログラム,11A〜11Dはアプリケーションプロ
グラム20A〜20Dに対してデータベースへのアクセ
ス機能を提供するデータベースサーバ,4は各計算機1
A〜1Dを接続するネットワーク,8A〜8Dはデータ
ベース,9A〜9Dはデータベース8A〜8Dを格納す
るディスク記憶装置を表す。
【0061】計算機網を構成する各計算機1A〜1Dに
は,データベースサーバ11A〜11Dが一つずつ配置
される。各データベースサーバ11A〜11Dは,互い
に通信を行い,本発明の機能を実現する。アプリケーシ
ョンプログラム20A〜20Dは,同一計算機内のデー
タベースサーバ11A〜11Dとのみ通信を行う。すな
わち,アプリケーションプログラム20A〜20Dは,
同一計算機内のデータベースサーバ11A〜11Dによ
って供給されるデータベース8A〜8Dにアクセスを行
うが,データベースサーバ間で通信や各種処理が行われ
ていることは意識しない。
【0062】図9は,計算機の詳細ブロック図であり,
図8に示す計算機1A〜1Dのうちの2台を計算機1
A,計算機1Bとして示している。データベースサーバ
11A(データベースサーバ11Bも同様)は,アプリ
ケーションプログラム20Aとデータベースサーバ11
A間の通信のためのアプリケーションインタフェース1
2A,データベースへのアクセスを制御し,データベー
ス領域16Aを管理するデータベース制御部13A,ロ
ック制御を行うロック制御部14A,他のデータベース
サーバとの通信を行う通信制御部15A,データベース
のデータを展開するための分散共有仮想メモリによるデ
ータベース領域16A,ページ単位のロック情報を管理
するページロックテーブル17Aを持つ。
【0063】図10ないし図16は,図8に示すシステ
ムの動作説明図である。以下,図10ないし図16に従
って,以下の場合について順に説明する。 1.計算機1A上のデータベース8Aに,計算機1Bか
ら書き込みを行う。
【0064】2.その後,計算機1Cからそのデータベ
ース8Aの読み込みを行う。 3.その後,計算機1Bから書き込みを行う。 4.その後,計算機1Cから再度読み込みを行う。
【0065】ページの書き込みが行われた後,一定時間
(Tとする)の間は,ページの状態は「ホット」であ
る。以下の説明では,ページ状態が「ホット」である場
合の動作を示すために,上記一連の操作を行う間,ペー
ジの状態は「ホット」のままであるものとする(すなわ
ちTの長さは十分に長いものとする)。
【0066】ただし,この例では,簡単のためデータベ
ースのページ数は4ページであり,操作するページはペ
ージ1のみとする。実際では,これらの数はもっと多
い。図10は,計算機1A上のデータベースに対し,計
算機1Bから書き込みを行うときの状態を示している。
【0067】本システムでは,データベースアクセス時
に,アプリケーションによるロック獲得を義務づけてい
る。計算機1A上のデータベースを,計算機1Bから書
き込む場合においては,ロック管理のために,データベ
ースサイトである計算機1Aのページロックテーブル1
7Aと,アプリケーションサイトである計算機1Bのペ
ージロックテーブル17Bが使用される。各ページロッ
クテーブル17A,17Bの欄の数は,データベースの
ページ数と同じ4である。
【0068】ここでは,計算機1B上のあるアプリケー
ションプログラム(プロセス番号=100とする)が,
ページ1に書き込みを行ったものとする(このときの時
刻をT1とする)。
【0069】アプリケーションプログラムがページ1に
書き込みを行うと,計算機1Aのページロックテーブル
17A中のページ1の欄に,「アプリケーションサイト
Bのプロセス100が時刻T1に書き込みを行った」こ
とが記録される。計算機1Bのページロックテーブル1
7Bでは,時刻T1が記録されるのみである。
【0070】図11は,計算機1Bからの書き込みが終
了した状態を示している。本システムでは,アプリケー
ションプログラムは,トランザクションの終了時(いわ
ゆるコミット時)にデータベースサイト(計算機1A)
へ「終了したこと」を通知することになっている。この
場合,「計算機1Bから書き込み」を行っていたアプリ
ケーションのトランザクションが終了すると,その通知
は計算機1Aと1Bのそれぞれのロック制御部14A,
14B(図9)へ送られる。
【0071】その結果,計算機1Aと1Bのページロッ
クテーブル17A,17Bにおけるページ1の欄には,
ページの状態が「ホット(Hot)」であること,およ
び書き込み時刻が「T1」であることが記録され,他の
情報(サイト名=B,プロセス番号=100など)は消
える。同時にデータベース領域16Bのページ1の内容
がデータベース領域16Aに送られる。
【0072】図12は,計算機1Cから読み込みがあっ
たときの状態を示している。次に,計算機1C上のある
アプリケーションプログラム(プロセス番号=200)
が,ページ1から読み出しを行ったものとする(このと
きの時刻をT2とする)。そうすると,計算機1Aのペ
ージロックテーブル17Aのページ1の欄に,「アプリ
ケーションサイトCのプロセス200が時刻T2に読み
出しを行った」ことが記録される。計算機1Cのページ
ロックテーブル17Cには,時刻T2が記録される。
【0073】図13は,計算機1Cからの読み込みが終
了した状態を示している。「計算機1Cから読み込み」
を行っていたアプリケーションのトランザクションが終
了すると,その通知は計算機1Aと計算機1Cのそれぞ
れのロック制御部14A,14Cに送られる。その結
果,計算機1Aのページロックテーブル17Aのページ
1の欄には,以前の情報,すなわちページの状態が「ホ
ット」であること,および書き込み時刻「T1」の情報
が残り続ける。
【0074】計算機1Cのページロックテーブル17C
では,計算機1Cにおける最後の操作時刻,すなわちT
2が記録される。図14は,計算機1Bから再度書き込
みを行ったときの状態を示している。
【0075】次に,計算機1B上のあるアプリケーショ
ンプログラム(プロセス番号=300)が,ページ1に
対して書き込みを行ったものとする(このときの時刻を
T3とする)。このときにも,最初の書き込みと同様の
処理が行われる。すなわち,計算機1Aのページロック
テーブル17Aのページ1の欄に,「アプリケーション
サイトBのプロセス300が時刻T3に書き込みを行っ
た」ことが記録される。計算機1Bのページロックテー
ブル17Bでは,時刻T3が記録される。
【0076】ページ状態が「ホット」である(すなわち
最後の書き込み時刻T1から,まだ制限時間Tが経って
いない)から,インバリデート・メッセージは通知され
ない。すなわち,この時点では計算機1A,1B,1C
上にページ1の複製が作成されているため,従来のライ
ト・インバリデーション・プロトコルによれば,インバ
リデート・メッセージの通知によるページ1の無効化が
必要となるが,本方式では,このインバリデート・メッ
セージを省き,メッセージ数を削減することができる。
このことが,本発明の特徴となる点である。
【0077】図15は,計算機1Bからの書き込みが終
了した状態を示している。「計算機Bから書き込み」を
行っていたアプリケーションのトランザクションが終了
すると,その通知は計算機1Aと1Bのそれぞれのロッ
ク制御部14A,14Bに送られる。その結果,計算機
1A,1Bのページロックテーブル17A,17Bのペ
ージ1の欄には,ページの状態が「ホット」のままであ
ること,および書き込み時刻「T3」が記録される。同
時にデータベース領域16Bのページ1の内容がデータ
ベース領域16Aに送られる。
【0078】以上の処理は,最初の書き込みと同様の処
理である。図16は,図15の状態に続いて,計算機1
Cから読み込みがあったときの状態を示している。
【0079】最後に,計算機1C上のあるアプリケーシ
ョンプログラム(プロセス番号=400)が,ページ1
から読み出しを行ったものとする(このときの時刻をT
4とする)。そうすると,計算機1Aのページロックテ
ーブル17Aのページ1の欄に,「アプリケーションサ
イトCのプロセス400が時刻T4に読み出しを行っ
た」ことが記録される。計算機1Cのページロックテー
ブル17Cには,時刻T4が記録される。このとき,ペ
ージロックテーブル17Cの以前の内容「T2」とペー
ジロックテーブル17Aの「T3」の比較が行われ,こ
の場合,T2<T3であるから,データベース領域16
Cのページ1に残っているページ1の複製は有効ではな
いことが分かる。そこで,データベース領域16Aのペ
ージ1の内容が新たにデータベース領域16Cに送られ
る。
【0080】以上の処理は,最初の読み出しの場合と同
様である。以上,ページの状態が「ホット」のままであ
る例について説明したが,書き込みが行われてから一定
時間Tが経過すると,そのページ状態は通常のバリッド
状態となり,次の書き込みでは,ライト・インバリデー
ション・プロトコルにより,インバリデート・メッセー
ジの通知が行われる。
【0081】
【発明の効果】以上説明したように,本発明によれば,
計算機網をあたかも一つの並列計算機であるかのように
見立てて分散データベース管理システムを構築するよう
な場合に,Strong Consistencyの利点であるユーザにと
ってのアプリケーション開発のしやすさをそのままに,
より高い性能を発揮することができるようになる。
【0082】本発明の方式は,読み出しにおけるメッセ
ージ通信コストと,書き込みにおけるメッセージ通信コ
ストのバランスを保つことで,書き込みの多いアプリケ
ーションが多く存在する場合にも,効率よく動作する。
【図面の簡単な説明】
【図1】本発明の概要説明図である。
【図2】ライト・インバリデーション・プロトコルにお
けるリード時の処理を説明する図である。
【図3】ライト・インバリデーション・プロトコルにお
けるライト時の処理を説明する図である。
【図4】イーブン・コスト・プロトコルにおけるライト
時の処理を説明する図である。
【図5】リード時におけるアプリケーションサイトでの
処理を説明する図である。
【図6】ライト時におけるアプリケーションサイトでの
処理を説明する図である。
【図7】リード時におけるデータベースサイトでの処理
を説明する図である。
【図8】本発明の実施例に係るシステム構成の例を示す
図である。
【図9】本発明の実施例に係る計算機の詳細ブロック図
である。
【図10】図8に示すシステムの動作説明図である。
【図11】図8に示すシステムの動作説明図である。
【図12】図8に示すシステムの動作説明図である。
【図13】図8に示すシステムの動作説明図である。
【図14】図8に示すシステムの動作説明図である。
【図15】図8に示すシステムの動作説明図である。
【図16】図8に示すシステムの動作説明図である。
【図17】一般的な従来の計算機網を示す図である。
【図18】図17に示すシステムでのデータベースへの
アクセス説明図である。
【符号の説明】
1,1’ 計算機 2,2’ 分散共有仮想メモリ管理部 3,3’ 分散共有仮想メモリ 4 ネットワーク 5 インバリッド状態 6 バリッド状態 7 更新ホットスポット状態

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数の計算機がネットワークを介して仮
    想的にメモリを共有するシステムにおける分散共有メモ
    リ一貫性最適制御方法であって,各計算機が保持する分
    散共有メモリのデータを,そのデータを利用したアプリ
    ケーションまたは一連のアクセス処理の終了後も残し,
    そのデータに対するライト時に他の同じデータを持つ計
    算機に対してそのデータの無効を通知するライト・イン
    バリデーション・プロトコルによって,データの一貫性
    を保証する過程と,各計算機が保持する分散共有メモリ
    のデータを,そのデータを利用したアプリケーションま
    たは一連のアクセス処理の終了後も残し,そのデータに
    対する再度の処理時にそのデータの有効性を確認するイ
    ーブン・コスト・プロトコルによって,データの一貫性
    を保証する過程と,前記ライト・インバリデーション・
    プロトコルおよび前記イーブン・コスト・プロトコル
    を,データへのアクセス状況によって動的に切り換える
    過程とを有することを特徴とする分散共有メモリ一貫性
    最適制御方法。
  2. 【請求項2】 請求項1記載の分散共有メモリ一貫性最
    適制御方法において,前記プロトコルを切り換える過程
    では,アクセス要求のあったデータが最後にライトされ
    てから所定の時間が経過するまでのアクセスに対しては
    前記イーブン・コスト・プロトコルを選択し,所定の時
    間が経過した後のアクセスに対しては前記ライト・イン
    バリデーション・プロトコルを選択することを特徴とす
    る分散共有メモリ一貫性最適制御方法。
  3. 【請求項3】 請求項1記載の分散共有メモリ一貫性最
    適制御方法において,前記プロトコルを切り換える過程
    では,所定の期間内においてライトのアクセス頻度の多
    いデータについて前記イーブン・コスト・プロトコルを
    選択し,ライトのアクセス頻度の少ないデータについて
    前記ライト・インバリデーション・プロトコルを選択す
    ることを特徴とする分散共有メモリ一貫性最適制御方
    法。
  4. 【請求項4】 複数の計算機がネットワークを介して仮
    想的にメモリを共有するシステムにおける分散共有メモ
    リ一貫性最適制御方法であって,分散共有メモリのデー
    タが無効であることを示すインバリッド状態と,有効で
    あることを示すバリッド状態と,所定の時間内にライト
    されたことを示す更新ホットスポット状態間の状態遷移
    を管理する手段を持ち,前記インバリッド状態および前
    記バリッド状態において,データにライトがあったとき
    に,そのデータを前記更新ホットスポット状態に遷移さ
    せ,前記インバリッド状態におけるデータのリードによ
    り元のデータの複製を持つとき,および前記更新ホット
    スポット状態において所定の時間が経過したときに,そ
    のデータをバリッド状態に遷移させ,前記バリッド状態
    においてそのデータが無効であることを通知するインバ
    リデート・メッセージが到着したとき,および前記更新
    ホットスポット状態においてアプリケーションまたは一
    連のアクセス処理が終了したときに,そのデータをイン
    バリッド状態に遷移させ,前記バリッド状態のデータに
    対しては,データへのライト時に他の同じデータを持つ
    計算機に対してそのデータの無効を通知するライト・イ
    ンバリデーション・プロトコルによってデータの一貫性
    を保証し,前記更新ホットスポット状態のデータに対し
    ては,データへのリードまたはライト時に,そのデータ
    を管理する計算機に対して,データの複製の有効性を確
    認するイーブン・コスト・プロトコルによってデータの
    一貫性を保証することを特徴とする分散共有メモリ一貫
    性最適制御方法。
JP9056040A 1997-03-11 1997-03-11 分散共有メモリ一貫性最適制御方法 Pending JPH10254748A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9056040A JPH10254748A (ja) 1997-03-11 1997-03-11 分散共有メモリ一貫性最適制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9056040A JPH10254748A (ja) 1997-03-11 1997-03-11 分散共有メモリ一貫性最適制御方法

Publications (1)

Publication Number Publication Date
JPH10254748A true JPH10254748A (ja) 1998-09-25

Family

ID=13015981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9056040A Pending JPH10254748A (ja) 1997-03-11 1997-03-11 分散共有メモリ一貫性最適制御方法

Country Status (1)

Country Link
JP (1) JPH10254748A (ja)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844852B2 (en) 2004-03-31 2010-11-30 Nec Corporation Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system
JP2016519379A (ja) * 2013-05-13 2016-06-30 アマゾン・テクノロジーズ・インコーポレーテッド トランザクションの順序付け
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US9817710B2 (en) 2013-05-28 2017-11-14 Amazon Technologies, Inc. Self-describing data blocks stored with atomic write
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US9946735B2 (en) 2013-09-20 2018-04-17 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US10031813B2 (en) 2013-03-15 2018-07-24 Amazon Technologies, Inc. Log record management
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US10437721B2 (en) 2013-09-20 2019-10-08 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US10474547B2 (en) 2013-05-15 2019-11-12 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10534768B2 (en) 2013-12-02 2020-01-14 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US10698881B2 (en) 2013-03-15 2020-06-30 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844852B2 (en) 2004-03-31 2010-11-30 Nec Corporation Data mirror cluster system, method and computer program for synchronizing data in data mirror cluster system
US11500852B2 (en) 2013-03-15 2022-11-15 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US11030055B2 (en) 2013-03-15 2021-06-08 Amazon Technologies, Inc. Fast crash recovery for distributed database systems
US10031813B2 (en) 2013-03-15 2018-07-24 Amazon Technologies, Inc. Log record management
US10180951B2 (en) 2013-03-15 2019-01-15 Amazon Technologies, Inc. Place snapshots
US10698881B2 (en) 2013-03-15 2020-06-30 Amazon Technologies, Inc. Database system with database engine and separate distributed storage service
US10747746B2 (en) 2013-04-30 2020-08-18 Amazon Technologies, Inc. Efficient read replicas
JP2016519379A (ja) * 2013-05-13 2016-06-30 アマゾン・テクノロジーズ・インコーポレーテッド トランザクションの順序付け
US9760596B2 (en) 2013-05-13 2017-09-12 Amazon Technologies, Inc. Transaction ordering
US10872076B2 (en) 2013-05-13 2020-12-22 Amazon Technologies, Inc. Transaction ordering
US10474547B2 (en) 2013-05-15 2019-11-12 Amazon Technologies, Inc. Managing contingency capacity of pooled resources in multiple availability zones
US10303564B1 (en) 2013-05-23 2019-05-28 Amazon Technologies, Inc. Reduced transaction I/O for log-structured storage systems
US9817710B2 (en) 2013-05-28 2017-11-14 Amazon Technologies, Inc. Self-describing data blocks stored with atomic write
US10437721B2 (en) 2013-09-20 2019-10-08 Amazon Technologies, Inc. Efficient garbage collection for a log-structured data store
US10216949B1 (en) 2013-09-20 2019-02-26 Amazon Technologies, Inc. Dynamic quorum membership changes
US9946735B2 (en) 2013-09-20 2018-04-17 Amazon Technologies, Inc. Index structure navigation using page versions for read-only nodes
US11120152B2 (en) 2013-09-20 2021-09-14 Amazon Technologies, Inc. Dynamic quorum membership changes
US10223184B1 (en) 2013-09-25 2019-03-05 Amazon Technologies, Inc. Individual write quorums for a log-structured distributed storage system
US9699017B1 (en) 2013-09-25 2017-07-04 Amazon Technologies, Inc. Dynamic utilization of bandwidth for a quorum-based distributed storage system
US10198356B2 (en) 2013-11-20 2019-02-05 Amazon Technologies, Inc. Distributed cache nodes to send redo log records and receive acknowledgments to satisfy a write quorum requirement
US9880933B1 (en) 2013-11-20 2018-01-30 Amazon Technologies, Inc. Distributed in-memory buffer cache system using buffer cache nodes
US10534768B2 (en) 2013-12-02 2020-01-14 Amazon Technologies, Inc. Optimized log storage for asynchronous log updates
US11914571B1 (en) 2017-11-22 2024-02-27 Amazon Technologies, Inc. Optimistic concurrency for a multi-writer database
US11341163B1 (en) 2020-03-30 2022-05-24 Amazon Technologies, Inc. Multi-level replication filtering for a distributed database

Similar Documents

Publication Publication Date Title
JPH10254748A (ja) 分散共有メモリ一貫性最適制御方法
JP3199718B2 (ja) キャッシュ整合性維持方法
US7849054B2 (en) Method and system for creating and maintaining version-specific properties in a file
US6058400A (en) Highly available cluster coherent filesystem
JP2575543B2 (ja) 同時アクセス管理方法
US6032228A (en) Flexible cache-coherency mechanism
JPH08161215A (ja) ファイル管理システム
JP2005504369A (ja) マルチノード環境の中でジャーナル処理を実現するためのシステムおよび方法
KR20060044631A (ko) 지속성 메모리 액세스 시스템, 지속성 메모리의 직접액세스 방법 및 지속성 메모리 시스템을 액세스하는 시스템
JP2005148868A (ja) ストレージ装置におけるデータのプリフェッチ
KR100745878B1 (ko) 저장 제어 장치 및 방법, 컴퓨터 프로그램 제품
EP0723230B1 (en) A distributed data cache for cached multiprocessor system
JP2829115B2 (ja) ファイル共用方法
US7752232B2 (en) Data processing apparatus, data processing system, data processing method, and recording medium
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
JP3819517B2 (ja) 分散共有メモリのデータ転送制御方法および計算機システム
US8028130B1 (en) Pipeline structure for a shared memory protocol
JPH05128070A (ja) リモートキヤツシユ制御装置および方法
KR100630213B1 (ko) 데이터 저장시스템에서 데이터 버퍼 제어 블록을 이용한로그 우선 출력 프로토콜 수행 방법
US7702634B1 (en) Method and apparatus to support multi-node direct write access to a file managed by a single node file system
JP2005234919A (ja) クラスタメモリファイルシステム
JPH11353220A (ja) キャッシュ制御方法およびリモートファイルロックの獲得制御方法およびファイル書込み制御方法
JPH09171480A (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに自動運用システム、および該ネットワークシステムの自動運用方法
JP2000293434A (ja) メモリ管理方法及びコンピュータ
JP2000010838A (ja) リモートディスク装置アクセスシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070115

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070424