|
||||||||||||
| 前のページ 1 2 3 4 次のページ | ||||||||||||
| なぜデータベースのスケールアウトは難しいのか | ||||||||||||
|
Webサーバやアプリケーションサーバとデータベースサーバの違いは、共有データを処理するかどうかにあります。 Webサーバの場合は、それぞれのWebサーバが別々のブラウザを相手にしており、ブラウザ同士の動きには関連はありません。ですからWebサーバは、別のブラウザを相手にしている限りは別のサーバを気にする必要はなく、それぞれ勝手に動くことが可能です。アプリケーションサーバも同じで、基本的にはWebアプリケーションは1つのブラウザだけを相手にしていて、他のブラウザには関係がありません。 一方データベースは、基本的には共通データを管理します。共通データとは、複数のブラウザから同時に読み書きされる可能性があるデータのことです。 例えば、Webページでの投票でYes/Noを集計する場合を考えます(図2)。 ![]() 図2:Yesを数える この間に別のブラウザが同じようにYesの数を読み、これに1を加えてしまうと、全体としての結果は誤ったものになってしまいます。この場合最初のブラウザがYesの数を増やし終わるまで、次のブラウザは待っていなければならないのです(図3)。 ![]() 図3:共有データの処理では交通整理が必要 ![]() 図4:共有データを増やしてもあまり意味がない例 アプリケーションサーバはスケールアウトできると書きましたが、ここでも複数のブラウザを相手にする際に共有データが必要になることがあります。この場合にも、データベースの場合と同様に共有データに矛盾なく複数のアプリケーションが読み書きできるようにしなければならなくなり、単純にはスケールアウトできなくなります。 |
||||||||||||
|
前のページ 1 2 3 4 次のページ |
||||||||||||
|
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||
|
|
||||||||||||
|
||||||||||||




