Google App Engineのデータストアに一貫性と可用性のオプションが追加

2010年4月2日

グーグルは「Google App Engine Blog」にて、データストアに2つの新機能、Eventual Consistency(結果整合性)とDatastore Deadline(データストアデッドライン)を追加したことを明らかにしました。これにより開発者は、データの一貫性と可用性のどちらを重視するのか、選べるようになりました。

プライマリが落ちていたらコピーを他のデータストアから取得

Google App Engine Blog: Read Consistency & Deadlines: More control of your Datastore

Eventual Consistency(結果整合性)オプションは、プライマリのデータストア以外のデータストアにコピーされたデータを読み込むことを許すオプションです。

グーグルの解説によると、これまでのGoogle App Engineのデータストアはいわゆる「Strong Consistency」(強い一貫性)を採用しており、プライマリのストレージが障害などでアクセスできなくなると、タイムアウトするまで処理待ちが生じていました。

強い一貫性の特徴は、アクセス時に必ず最新のデータが返ってくることが保証されていることです。例えば直前にデータの変更や削除などが行われた場合、強い一貫性が保証されていれば、それを読み出したときに必ずそのデータが変更されたことや削除されたことが分かります。しかしプライマリデータストアが障害などでアクセスできないときには、アプリケーションはリトライを繰り返した後にエラー値が返ります。

新しく追加された「結果整合性」オプションでは、プライマリ以外のストレージから読み込むことを許すため、読み込んだときにプライマリに対して行われた最新の状態が反映されているかどうかは保証されませんが、可用性は向上します。デベロッパーは、一貫性と可用性のトレードオフを選べるようになるわけです。

ただしトランザクション内のアクセスについてはつねに強い一貫性が適用されます。

グーグルは、一般的に数百ミリ秒から数秒でプライマリ以外のストレージに最新の状態が反映されると説明しており、結果整合性オプションを用いることでわずかながら検索時に最新の状況が反映されていない可能性があるとしています。しかし例えばSNSアプリケーションにおけるフォロー先の最新状況など、多少の遅れや一貫性の乱れは無視してもいいアプリケーションなどでは非常に有効なオプションとなるでしょう。

タイムアウト時間を設定

もう1つ新たに追加されたのが、Datastore Deadline(データストアデッドライン)です。これは、データベースへのアクセスへのタイムアウト時間を設定するオプションです。

デフォルトでは30秒間リトライを繰り返す設定になっていますが、この時間をミリ秒単位で最大30秒まで自由に設定できるようになったとのことです。

一貫性と可用性のトレードオフが広がってきた

Amazonクラウドで利用可能なデータベース「SimpleDB」でも先月、一貫性と可用性を選べるオプションが追加されたことをお伝えしました。

いわゆる「CAP定理」が教えているように、一貫性(C)、可用性(A)、ネットワーク分断耐性(P)は同時に2つしか満たせないトレードオフの関係にあります。いままでの商用リレーショナルデータベースでは自動的に一貫性と可用性が重視されてきましたが、NoSQLを中心にしてこの3つの中から何を重視するのか、開発者に選択できるような仕組みが少しずつ広がってきたようです。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : CAP定理 , Google App Engine , NoSQL , クラウド



≫次の記事
3月の人気記事とページビュー報告。グーグルのペナルティからドメイン移転で抜け出せたのか?
≪前の記事
CSSによるWeb訪問履歴の漏洩に具体的対策、楽天ad4Uなど無効化へ

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig