成蹊大学理工学研究報告
J. Fac. Sci. Tech., Seikei Univ.
Vol.42 No.1 (2005) pp.19-26

ソフトウェア DSM のトランザクションシステムへの適用
長尾知幸*1，緑川 博子*2，飯塚 肇*2

An Application of a Software DSM to Transaction SystemTomoyuki NAGAO*1, Hiroko MIDORIKAWA*2 and Hajime IIZUKA*2{nagao,midori,jim}@sirius.is.seikei.ac.jp

ABSTRACT： This paper proposes a new model to implement a transaction processing system on acluster with software distributed systems (SDSM). The model was used to experimentally implement anauction system and the usefulness of SDSM’s to transaction processing systems was evaluated.

Theresult showed that SDSM’s have possibility to be effectively used for these applications. However, it
became clear that current SDSM’s should be augmented with several features to be effectively used forthe implementations of transaction systems.
Keywords：Cluster, Software DSM, Transaction system(Received March 25, 2005)

１．はじめに理への適用が主体で，商用分野に属する問題への適用は報告例が殆どない。今後，いっそうクラスタが普及して高性能マイクロプロセッサの低価格化と高バンド幅いくであろうことを考えると，上記のような利点を持つネットワークの普及に伴い，安価に構築できる PC クラ

ソフトウェア分散共有メモリを商用分野でも利用するこスタが一般化している。こうしたクラスタを用いた並列とは，価値があると考えられる。

処理の API としては，メッセージパッシングモデルによ

本稿では，特に負荷分散に焦点を当て，代表的商用分

る MPI が普及しているが，共有メモリモデルプログラム野の応用であるトランザクション処理を対象に，SDSM ををクラスタ上で利用したいという要望も強い。

有効に利用するためのシステムモデルを提案し，そのモ

その理由は，共有メモリモデルはメッセージパッシン

デルに基づいたオークションシステムの実装について報

グモデルで必要な煩雑なメッセージ送受信記述を用いず告する。現状の，限られた条件での SDSM をそのまま用いにプロセス間通信を記述できるため，可読性の高いプロて，トランザクション処理を行うための初期実験ではあグラムを書きやすいからである。しかし，クラスタでは，るが，有効なデータが得られた。

他ノードのメモリに直接アクセスすることができないの

２．クラスタと SDSMで，そのまま共有メモリモデルによってプログラムすることはできない。そこで，クラスタ上で共有メモリモデ

2. 1

ルを利用できるようにするために，仮想的に共有メモリを構築する ソフトウェア分散共有メモリ(SDSM)と呼ば並列コンピュータ

複数の計算資源を 1 つの処理に用いる場合，ハードウれる機構について研究が行われている。

ェア構成としては，対称型マルチプロセッサ(SMP)や現在のところ，SDSM は，科学技術計算問題の並列処

NUMA 型分散共有メモリマシンのような共有メモリ型と，クラスタを代表とする分散メモリ型がある。

*1

工学研究科情報処理専攻学生[現:三菱電機(株)]*2

工学研究科情報処理専攻

共有メモリ型は，図 1(a)のように，複数のプロセッサが 1 つのメモリを共有しているアーキテクチャである。

−19−

どのプロセッサからもメモリに高速にアクセスできるが，当然ながら，クラスタは，そのハードウェア構成から，ハードウェアが高価になってしまう上，メモリバスがボメッセージパッシングモデルを用いるのが自然で，共有トルネックとなりプロセッサ数を多くできないという弱メモリモデルは単純に適用することができない。

点がある。
2. 3

一方，分散メモリ環境は，図 1(b)のようにプロセッサSDSMとメモリで構成される計算ノードをネットワーク接続しクラスタのような分散メモリ環境において，共有メモて構築できるため，ノードに通常の PC，接続に通常のリモデルを適用できるようにするために，ソフトウェアLAN を用いれば安価に構築することができ（この場合は，によって仮想的に共有メモリ環境を提供するためのシス通常クラスタと呼ばれる），拡張性もよい。しかし，各プテムがソフトウェア分散共有メモリ（SDSM）である。

ロセッサは自ノードのメモリにしか直接アクセスできな

SDSM は，図 2 のように，各ノードのメモリの一部をどいので，そのままではメッセージパッシングモデルしかのプロセスからも同じ内容に見える（常に全く同じ内容使用できない。

が記憶されているわけではないが）ようにして，実効的にプロセス間で共有するメモリ空間を提供する。代表的な SDSM としては，SMS[1]，TreadMarks[2]，JIAJIA[3]Pro

ProPro等がある。

Pro

この SDSM 環境では，プログラミングの際にデータがノード内にあるか，外にあるかによって，アクセスするための記述を使い分ける必要がなく，可読性が高いプロmemoryグラムが書きやすくなる。しかし，SDSM は物理的には分散メモリ環境であるため，ノード外メモリにアクセス(a) 共有メモリマシンする場合はネットワークを経由する。そのためノードの内外によってメモリのアクセス速度が異なり，本来の共有メモリモデルをそのまま適用してしまうと，共有する必要のない変数でさえも共有されることが発生する。そProProProの通信によるオーバーヘッドが速度低下の要因となる可Pro能性がある。

memorymemorymemorymemoryNetwork(b) 分散メモリマシン
図１
2. 2

並列マシンのメモリ構成

ProProProPromemorymemorymemorymemoryNetwork
Shared Memory

並列プログラミングモデル
図２

並列処理用のプログラミングモデルには，メッセージSDSM の構成パッシングモデルと共有メモリモデルがある。

３．クラスタを用いたトランザクション処理

メッセージパッシングモデルでは，プログラマがメッセージの送受信を明示的に記述することで通信を行うためプログラマの負担が大きい。

ファイルアクセスを伴うデータベースを実現するサー

一方，共有メモリモデルは，すべてのプロセスがメモ

バシステムのクラスタでの実装は，ディスクへのアクセリ空間を共有しているので，メッセージではなく，共有ス方法によって以下に示す 2 種類に分類される。

変数への Read/Write を用いてプロセス間の通信を行う。
そのため，通常，コードは記述がより容易で可読性も高い。

−20−3. 1

シェアド･ナッシング方式

シェアドナッシング(SN)方式は，クラスタ内のノードABCDごとに処理するファイルを固定し，そのファイルへのアクセスが必要なときにはリクエストは担当ノードへ必ず送られる方式である。図 3 では，ノード 0 はファイル Aにのみアクセスができ，ノード 1 はファイル B のみに，ノード 2 はファイル C のみに，ノード 3 はファイル D の

Node0

Node1

Node2

Node3

みに，それぞれアクセスできる。この方式では，ファイルをアクセスするノードが限定されるのでノード内にそのデータをキャッシュに保持することができ，処理効率
図４が良くなるという利点がある。しかし，適切なファイルシェアドオール方式

分割を行わないと一部のノードに負荷が集中し，一方でその他のノードは遊休状態になっている可能性が生じる。

４．シェアド･キャッシュ･モデル

また，適切なノードを決定するためにはその分割状態を本稿で提案するトランザクション処理モデルである,把握していなければならない。更に，あるノードが故障シェアドキャッシュ(SC)モデルについて説明する。

した場合，システムが完全には動かなくなってしまうこ

SC モデルは，図 5 に示すように,プロセスとディスクともあり，新しいノードを加えたときには改めて分割をの間に，プロセス間で共有するデータキャッシュを備え行わなければならない，という欠点もある。ていて，ノード内キャッシュを持つことで性能を上げるという SN モデルの利点と，全てのノードからアクセスABCDできるという SA モデルの利点を兼ね備えたモデルになっている。
ハードウェア構成としては，SA 型のように全ノードが共通のディスクを持つ形でも SN 型のように各ノードNode0

Node1

Node2

Node3が個別に持つ形でも，どちらでも良い。ここでは，SA型の一番の利点である， 全ノードからのアクセス は共有キャッシュで実現させるため，SN 型のような構成を図３取ることとする。

シェアドナッシング方式

共有キャッシュへは全てのノードからアクセスができ
3. 2

るが，キャッシュへのファイル読み込みやキャッシュかシェアド･オール方式

シェアドオール(SA)方式は，複数のノードに対して，らファイルへの書き込みは，そのファイルの入出力担当

物理的もしくは論理的に 1 つのディスクを共有する方式

ノードのみが行える。ファイルへアクセスするノードをである。図 4 では，システムが保持しているファイル限定することでノード内にデータをキャッシュでき，性A,B,C,D を全ノードが共有している。

能向上が期待できるし，ディスクではなくメモリの段階

この方式ではすべてのノードがすべてのファイルにでノード間共有をすることができる。ただし, 前述の通アクセスできるためにノードごとの負荷の偏りは起こり，SDSM はノード内外によって共有メモリへのアクセりにくい。更に，新しいノードを加えた場合も特別な処

ス速度が異なるので，リクエストの処理に必要なファイ理は必要なく，ファイルの分割状態を把握する必要はな

ルを管理しているノードがその処理を行うことが望ましい。しかし，その一方，全てのノードが 1 つのディスクい。そのため，リクエストをクライアントから受け取り，にアクセスするので，ディスクアクセスがボトルネック

その処理に適切なノードを決定し，そこへ送信するフロになる。また，ノード間でファイルの相互排他処理を行ントエンド(FE)マシンを置き，そのマシンがリクエストわなければならないため，SN 型に比べて処理効率やスを分配する。図 5 において，FE マシンがクライアントとケーラビリティに劣る可能性が高い。更に，ノード間での通信やリクエストの送信を行い，バックエンド(BE)マ最新の情報を共有するためには，アクセスごとにディスシンがキャッシュの管理とリクエストの処理を行う。

クに書き戻さねばならないという欠点もある。

−21−

5. 3

キャッシュ管理SDSM ではノード内外でメモリアクセス速度が異なるFEことを考慮して，図 6 のように，共有キャッシュを分割して各ノードごとに管理する。また，図 6 下部はノード内部でのキャッシュ構造である。このようにキャッシュにはスロットが複数用意され，そこへファイルを入れる。

BEBEBE

ファイルサイズは固定で，スロットサイズと等しく，必BEずスロットに入りきるものとした。
キャッシュはテーブル部とデータ部に分かれ，テーブ
ル部にはスロットに含まれるファイル名を，データ部にshared data cacheはそのファイルの内容を，それぞれ保存する。この分割の結果，データ部に排他ロックをかけた状態でも，テーABCD

ブル部を用いてスロットに含まれるファイルを把握することができる。

図５

シェアドキャッシュモデル

キャッシュの管理手順は以下の通りに行う。
①

５．オークションシステムの実装

テーブルに対して共有ロックをかけ，各スロットに含まれているファイルを調べる。

②

ファイルが既にキャッシュされていることが分かっ

SC モデルの応用として，オークションシステムを扱うたらそのスロットのデータ部へ，実行する操作に適サーバを実装した。このシステムは，外部プロセスによしたロック，つまり，読み込み操作に対しては共有って生成されたリクエストを処理し，その結果を外部プロックを，書込み操作に対しては排他ロックを，かロセスへ返す。このシステムはオークションにおける基ける。
（処理終了）

本的な操作である，検索・入札・出品を実行できる。検③

索はキーワードと製品 ID による検索を実行できる。ユ

どのスロットにも含まれていなかった場合は，テーブルのロックを排他ロックに変更する。

ーザインターフェースは，オークションシステムとは別④

前回のキャッシュ読み込みからアクセス回数が最もに用意されている Web サーバが提供するとして，本シス低かったスロットを新しい読み込みスロットに決定

テムはそこからリクエストが送られてくることを前提とする。

している。

⑤

この読み込みスロットにファイルが入っていて，既に書き込みが行われていたときは，スロット内のデ

5. 1

リクエスト送信ータをファイルへ書き戻し，必要なファイルをそのFE は，送られてきたリクエストを解析して必要なファスロットへ読み込ませる。(処理終了)

イルの担当ノードを決定して，通常はそのファイルの入出力を担当しているノードへリクエストを送信する。しNode0

Node1

Node2

Node3

共有キャッシュかし，担当ノードが一定数以上のリクエストを保持していて高負荷状態の場合は，そのノードへの送信は失敗す

Lockる。その場合は，FE は全ノードに対してラウンドロビン型に成功するまで順次リクエストの送信を試みる。

テーブル部

A

B

C

Lock

Lock

Lock

A.dataB.data C.data

Lock
データ部

5. 2

リクエスト処理

BE は，リクエストを受け取ったら必要なファイルをキャッシュへ読み込み，そのリクエストに対応した処スロット

理を行って，結果をフロントエンドへ返す。
図６−22−

キャッシュ構造

5. 4

実装に用いる SDSM

はノード内だけで行なう。SA 型実行では，NFS を用い著者の手元にある，実行可能な SDSM は，SMS とてディスクへファイルを保存し，リクエスト送信は，全TreadMarks の 2 種であるが，両者はメモリの一貫性モデノードにラウンドロビン型に送る。また，排他制御は，ルが違い，提供している機能も異なる。両者を本システ

ファイルごとに，SDSM を利用したロックをかけるようムの実装の際に必要となった機能に関して比較すると以にした。

下のようになる。
l6. 2

ロックの多重化

リクエストパターン

本システムでは複数ノードに含まれるプロセスに対す

表 2 に示すような 4 種類のそれぞれ偏り方が異なるリるキャッシュの制御のために，ロックの多重化が必要でクエストパターンについて測定を行った。表 2 では，○あるが，SMS はこれをサポートしていない。また，効率が偏りがあることを示し，×が偏りがないことを示す。

的な動作のために排他ロックのみならず共有ロックもあ

ここで，ノード偏りとは，BE ノード間で処理を行うることが望ましいが，TreadMarks は排他ロックのみしかリクエスト数に偏りがあることを示し，ファイル偏りとない。

は，同一ノード内において特定のファイルにアクセスがl集中することを示す。

外部通信機構実装するオークションシステムは，外部プロセスによ

表２って生成されたリクエストを受け取り，処理結果を外部プロセスへ返す。従って，socket のような，外部通信機リクエストパターン

ノード偏り

ファイル偏り構が必要となる。socket は，そこへ入力があったことをBase××

シグナルによって知る。一方 SDSM でも，他ノードが共Node○×

有領域にアクセスしたことを知るために，シグナルを用

File×○いているので，それらのシグナルを区別できなくてはな

Both○○らない。
表 1 は，これらの機能について，両者の対応状況をま6. 3

測定環境とめたものである。いずれも望まれる機能全てを満足し測定は，表 3 の環境であるノードのクラスタを利用し，ていないので，ここでは，キャッシュ管理には多重ロッ

表 4 に示すパラメータを用いて行った。表 4 におけるスクが殆ど不可欠なことを考慮して TreadMarks を利用す

ロットサイズとは 1 スロット中に含まれる製品データのることにした。それに伴い，共有ロックや socket の利用個数を，キューサイズはキューの中に置くことができるはせずに排他ロックやファイルとのやり取りで代替したリクエストの個数を表す。

ので性能的には不利な状況になっている。
表３
表1

SDSM の機能対応

SDSM
バージョン
ロックの多重化
共有ロック
socketSMS
0.4.19a×○○

TreadMarks
1.0.3.3
○××

実行環境

CPU

Intel PentiumIII 1.13GHz *2

メモリ

1GB

OS

RedHat Linux 9.0

カーネル

2.4.20-6smp

SDSM

TreadMarks 1.0.3.3

ネットワークGigabit Ethernet

６．評価
表４
6. 1

比較対象

ノード数

比較対象として，SN 型と SA 型を擬似的に実行できるパラメータ設定
フロントエンド1

バックエンド2

オプションを実装したシステムに追加した。SN 型実行キャッシュスロット数

2では，各ノードのローカルディスクにファイルを保存し，スロットサイズ

1000 個リクエストキューサイズ

100 個

リクエスト数1000リクエスト送信は必ずファイル入出力の担当ノードへ送る。キャッシュ構造はそのまま利用するが，リクエストが担当ノード以外に送られることがないため，排他制御−23−

6. 4

実行結果

l

総実行時間

リクエスト(A)

リクエスト(B)
BにアクセスできないLock

全リクエストを処理するのに要した時間の平均値を表AB

C

Lock

Lock

Lock

AB

C

5 に示す。この表から SC 型と SN 型は，SA 型に比べて実行時間が長く，大きなばらつきがあることが分かる。

Lock

実行時間については，SA 型がファイル 1 つに対して 1つのロックを取っているのに対して，SC 型，SN 型はテーブル部とデータ部という 2 つのロックを取って処理を行うという違いが現れている。つまり，共有ロックがないという実装上の制約のために，同じノード内の異なるファイルに対して同時にアクセスすることができなくな
図６.１ってしまって，実際にはほぼ逐次に動作しているため SAテーブルの競合による逐次化型に比べて遅くなっていると考えられる。
l

具体例を図 6 に示す。図 6 では，異なるプロセスが同処理の分散時期にそれぞれファイル A とファイル B にアクセスしよ各バックエンドにおける保持リクエスト数の動きを図うとした場合である。ファイル A もファイル B もすでに7 に示す。この図は，バックエンドのプロセスが，リクキャッシュに含まれているため，本来ならばテーブルにエストを取り出した直後に保持しているリクエスト数をは共有ロックをかければよい。しかし，実装 SDSM の制示している。

約から排他ロックがかけられるため，本来ならば競合せリクエストパターンが Node の場合，SN 型では片方のずに並行処理できたはずだった二つのアクセスが逐次化ノードがほとんどの処理を行っているのに対して，SCされてしまう。

型では片方のノードのリクエストキューが埋まった直後また，実行時間が SA 型に比べて大きいのは，SA 型がにもう 1 つのノードへ送信が行われていることが分かる。

ファイルの一部だけを読み書きしているのに対し，SC同様に，Both の場合も 1 台に処理が集中したところでも型と SN 型は全体の読み書きをしていることも理由としう 1 台へ負荷を分散できている。て考えられる。すなわち，キャッシュにおいてファイル次に，表 6 に FE と BE 両方について再転送の回数を示を頻繁に変更する場合にはほとんど変更していないファした。表 6 は，FE において転送を行ったリクエストの個イルを書き戻すという無駄な動作によって余分な時間を数と BE において担当ノードへ再転送を行ったリクエスかけてしまっている可能性がある。

ト数を示している。ただし，SN 型は必ず担当ノードがリクエストの送信方法や結果の返し方はすべての型で処理するため，また，SA 型はどのノードも全てのファ同一の方法を用いていること，SC 型と SN 型がテーブルイルにアクセスできるため，どちらも BE 間での転送はを用いた多重ロックを使っていること，これらの理由か起こらない。

らこの結果も多重ロックによるものだと考えられる。総SC 型では読み込みが必要なファイルが別ノードにあ実行時間の比較によって，SA 型が SC 型と SN 型とは明る場合に BE 間でのリクエストの転送が有って，この BEらかに異なることが分かったので，今後は，主に SC 型

間の転送が多ければそれだけ無駄な処理が発生していると SN 型とを比較する。

ことになる。表 6 では，Base と Node といった，アクセスファイルに偏りがない場合には約 20%の割合で再転送

表５総所要時間が行われていることが分かる。しかし，ファイルに偏りがある File と Both では確率は約 5%と小さい。これらの

(秒)
SCSN

値が大きいか小さいかに関しては，BE で行われる処理

SA

平均偏差

平均偏差

平均偏差

によって評価が異なってくるため，詳細な評価は改めて

base

43

947202113

後述する。

node79308540131

file44298074100

both118

47107

41

12

1−24−

queue[0]Base̲SC生じている場合には安定して早い反応をしている事がわ

queue[0]Base̲SNqueue[1]queue[1]80806060

かる。
File，Both のように，ファイルに偏りがある場合は，numnum

10010040

担当ノード以外に送られた場合でもキャッシュ内に必要4020なファイルがある可能性が高いため，SN 型に比べて非20000200400600

800

10000req̲no(a) Base_SC200400req̲no600

800

常に速くなっている。Node の場合，キャッシュ内に必要1000

ファイルがあるかどうかが不確かな状態で送られてくる(b) Base_SNqu e u e [ 0 ]Node̲SCが，SN 型に比べて明らかに速くなっている。これらのqu e u e [ 0 ]Node̲SNqu e u e [ 1 ]qu e u e [ 1 ]100ことから，前述の再転送の効果は得られていると考えら

100

80

れる。

8060numnum60

404020200

表７

ターンアラウンド時間

00200

400600800

10000200

req̲no(c) Node_SC

400600req̲no800(秒)1000(d) Node_SN

File̲SCqu e u e [ 0 ]SCFile̲SNqu e u e [ 1 ]

80

80

60

60

40

40

20

20

00400

600

800

偏差

平均

偏差

平均

偏差

7.87

4.93

5.83

2.81

3.55

1.20

node 11.21

5.12

19.74

10.60

3.81

1.73

file

4.27

2.81

14.30

18.46

2.62

0.80

both

5.94

2.64

7.12

4.04

3.36

1.04

base

num

num

100

200

10000200

req̲no400

600

800

1000

req̲no(e) File_SC(f) File_SNqu e u e [ 0 ]Both̲SCqu e u e [ 0 ]Both̲SN

6. 5qu e u e [ 1 ]qu e u e [ 1 ]100

1006060num80num80

40402020000200

400 req̲no 600

800

1000

トランザクション処理のための SDSM 機能

6.4 の結果を受け，本システムのようなトランザクション処理に適用するために望まれる SDSM の機能について述べる。
(1)0(g) Both_SC
図６.２

SA

qu e u e [ 1 ]1000SN平均

qu e u e [ 0 ]200

400 req̲no 600

800

必要不可欠と思われる機能

外部通信機構と多重ロックが必要なことが分かった。

1000(h) Both_SNl

SC 型と SN 型における保持リクエスト数

外部通信機構外部と通信するためにはソケットのような機構が必要となるが，SDSM では，入力があったことを知らせるシ
表６

転送されたリクエスト数

SCSN

グナルを含めてユーザが取り扱うシグナルは全て SDSM

SA

システムによって感知される。これは共有メモリの管理

FEBEFEBEFE

BEにシグナルを利用しているためであるが，ソケットを用

Base61171801200

いた外部通信を行うには，SDSM のシステムが共有メモ

Node90161701230

リを管理するためのシグナルとユーザ側の応用へ渡すた

File420300114

0めのシグナルとを区別して，外部通信等の SDSM の制御

Both8062601340用ではないシグナルを応用へ適切に渡すことが，この種の応用のサーバに SDSM を用いるために不可欠となる。
ll

ターンアラウンド時間

多重ロック
多重ロックは，実装する応用によっては必要とは限ら

1 つのリクエストに対して，FE がそのリクエストを受ないが，多くのトランザクション系応用で必要になる可

け取ってから，BE へ送信し，BE での処理結果をクライ能性があり，その場合に SDSM がサポートていないとそアントへ返すまでの時間について表 7 に示した。の 応 用 の 実 装 が で き な く な っ て し ま う 。 SMS とSC 型は，Base では SN 型よりも時間がかかっているが，Node，File，Both のようにリクエストに何らかの偏りがTreadMarks では，SMS が未対応，TreadMarks が対応である。

−25−

また，SMS では，ロックを得たときに共有領域のコピ

また，SDSM を用いたトランザクションシステムの実ーを作り，次のプロセスがロックを得たときにそのコピ

装では，多様なロック機能やソケット機構などが重要にーと自身が変更した内容を比較して，変更内容だけを他なるものの，現状の SDSM のこれらの機能サポートは不プロセスに知らせる仕組みとなっている。これは，ロッ充分であり，機能拡張の余地があることが明らかになっクをかけた場合のコピーの取り方という，メモリの一貫た。

性モデルのポリシーの問題となるため，単純に対応させこのような応用を扱う場合，外部的には 1 つのシステることは難しいと考えられる。

ムのように見せながら内部に複数のディスクドライブと(2) 効率化のための機構

キャッシュメモリなどを備えたファイルサーバも開発さlれているため，単純にファイル入出力の高速化というだ

共有ロック
共有ロックの実現は効率的な実行のために最も重要なけでなく，付加的な処理を加えたシステムとしての特徴要素だと考えられる。特に読み込みの多いシステムを実を出す必要がある。

装することを考えたときに，この機能が使えないと，本また，本稿では既存の SDSM を全く手を加えずに用い研究で実装したオークションシステムのように効率が非たが，このようなファイルアクセスを主体とした処理に常に悪くなる。これについては，通常のロック機構が実は SDSM 内部で用いている，ファイルのメモリマップ機現できていれば簡単に実現できる機能であると思われる。

構を直接使ったほうが効率的であることが分かっており，l

今後このような，応用を意識したファイルのキャッシュ条件変数
SC モデルでは，1 ノードごとにリクエストを保存する機構を主軸に置いた SDSM の開発が期待される。

から，リクエストキューの管理のための条件変数はノー

参考文献

ドの数だけ必要となる。これに対して SMS では 8 個，TreadMarks では 4 個の条件変数を用いることができるが，この程度の数ではこの個数がシステムの拡張性のボトル[1] 緑川，飯塚 : "ユーザレベル・ソフトウエア分散共有ネックとなる可能性がある。

メモリ SMS の設計と実装", 情報処理学会論文誌ハlイパフォーマンスコンピューティングシステム,一部プロセスによる一貫性同期
最後に，一貫性同期について述べる。本研究で対象とVol.42, No.SIG9(HPS 3), pp.170-190 2001

したようなページベース SDSM では，すべてのプロセス[2] P. Keleher, et al.: TreadMarks : Distributed Sharedが 1 つもしくは少数の共有データに対して処理を行うこMemory on Standard Workstations and Operatingとを前提としている。そのため，バリア機構はすべてのSystems,プロセスの参加が前提となり，必要のないデータも受け

pp.115-131, (1994).

取らなくてはいけないという余分な作業が含まれる可能

Proc.

Winter94

UsenixConf.,[3] M.R.Eskicioglu, et al : Evaluation of the JIAJIA性がある。MPMD 型プログラムとの関連を考えたときに，

Software DSM System on High Performance

一部のプロセス群による一貫性同期機能が性能向上のたComputer Architectures, Proc. 32nd Hawai Int.

めに必要になってくるのではないかと考えられる。

Conf. System sciences, 1999
[4] T.Schroeder, S.Goddard, and B.Ramamurthy:

７．まとめ

Scalable Web Server Clustering Technologies,
IEEE Network･May/June 2000

本稿では，クラスタを用いたトランザクション処理サーバの負荷分散を目的に，SDSM を効率的に使える処理モデル(SC)を提案し，オークションを題材としたその実装結果を示した。擬似的に SN 型や SA 型を実行できるようにして，ターンアラウンド時間や負荷の分散を評価軸として，簡単な初期実験を行った。
SC 型の実行結果は，実装の制約から SA 型よりも劣る結果となったが，条件が等しい SN 型に比べると，高速に動作した。また，共有キャッシュを利用することで，ノード間の負荷の偏りを軽減させることができた。

−26−