スターバックスは2フェーズコミットをしていない。あなたの業務は楽観的ロックで切り抜けられるか?
スターバックスで日常見かけるオペレーションは、いわゆる2フェーズコミットを採用していない。
まずその様子を振り返ってみよう。
レジで注文を告げると、矢継ぎ早に「トールラテ~ェ」「トールラテ~ェ」と
カウンター内でメッセージが呼応される。そして、バリスタ側の空き状況にもよるが、
早速ドリンクを作り始める。この時点ではまだ代金の支払いは完了していない。
幸運なことに財布にゆとりがあれば、代金を払って、レシートをもって
受け取りコーナーに進む。通常の場合それほど待たずして注文したドリンクがでてくる。
しかし時には順番が前後していたり、飛ばされていたりした経験のある人も
少なくないのではなかろうか。
どうだろう、あらためてみると、非常に「ゆるふわ」なオペレーションである。
ガンダム/クラウドをテーマとするこのブログでスタバのオペレーションを引き合いに
出したのは、先週末クラウド研究会でGoogleのGregor Hohpe氏が彼らの設計原則を
話す際にこの例えを使っており、言い得て妙と感心したためである。
スタバのオペレーションも、Googleが提供しようとしている様々なサービスも、
スループットの最大化という共通した目的を持っている。
そのためにはトレードオフとなる割り切りが必要で、上記のスタバの例で、
A. お客に「それじゃないよ」とわれたら、作りなおせばよい
B. 機器が壊れてドリンクが作れなかったら、返金すればよい
C. お客さんがお金を払えなかったら、廃棄すればよい
という対応が必要になるが、いずれも比較的リーズナブルな対応策を
エラーハンドリングとしてとることができる。
基本的には、厳密にリアルタイムな整合性など気にせず、たとえ失敗して
もやり直せばよいということだ。
しかし、世の中には、そうではない業務シナリオ、オペレーションもある。
例えば原価が非常に高く、とても廃棄できないようなモノの場合、
あるいはその場での現金払いではなく返金の手続きが非常に面倒な場合、
スループット量より1トランザクションごとの品質を重視した方が
ビジネス上有利な場合などにおいて、上記オペレーションを適用しようとすると
不幸な事故が起こるだろう。その場合、多少スループットが落ちたとしても、
厳密に整合性を保つトランザクション処理が望ましい。
先日、RDBMSの雄、オラクル社主催の Oracle Open World 会場内で、
クラウドコンピューティングの概略を説明するセッションを持たせていただいた。
クラウドの「ゆるふわ」な世界観はRDBMSが重宝されてきた厳密なトランザクションの
世界と対立しているように捉えられることもあるので、野次罵倒を覚悟していたが、
参加していただいた方々の反応を伺うと、概要編だったということもあってか、
おおむね好意的に受け入れていただけたようで正直少しほっとしている。
ただ、クラウド的アプローチの本質はビジネス上のクリティカル度やデータの機密度、
トラブル時の対応力やチューニングのための設定自由度次第では、これまで盲目的に
使ってきたオンプレミスのRDBMSでなくてもいいかもしれない、という話である。
RDBMSの存在を否定するわけではないが、RDBMSのバラ色的未来を予見するものでもない。
マイクロソフトはソフトウェア+サービスというクラウドとオンプレミスの中庸的
アプローチを提唱している。今はまだ限られたお客様、パートナー様としか会話が
できておらず申し訳ないが、選択の自由度を高めつつも、お客様が決定回避の法則
に陥らないための支援を日々行っているのである。
ゆるふわな楽観的アプローチにご興味もたれた方はコチラも是非。
2004年当時の弊社大西のブログである。彼は現在デザインツール系を担当しているが、
ミッションクリティカル系もこなせるユーティリティプレイヤーの一人。
皆様の立場によって共感できる/できないに差がでてくるだろう。
以下、ガンダム的世界観に垣間見られるアプローチの違い。
クラウド容認派の場合、「少佐殿!これです。この武器でアッシュ軍曹が一撃でやられました!」
という部下の狼狽えを専用カスタム機ならではの高機動性と操縦技術でカバーして
「当たらなければどうということはない」と一蹴する。
重厚オンプレミス依存の場合、機雷にあたっても「さすがゴックだ。なんともないぜ」と
上陸作戦を強行したり、iフィールドを装備して「このビグザムは 長距離ビームなど
どうということはない」と言いながらマゼランタイプを主力する連邦艦隊に突撃する。
どちらが好みだろうか。資源・資金・技術レベル、戦術やパイロットの特性により
向き不向きがあるが、直感的な相性は重要だ。
百式で装甲を極力廃し、内部骨格を露呈させてまで機動力を高めたコンセプトに
共感を覚え、自称シャアを自認する各位には、重装甲を隠れ蓑にするより、
やはり「当たらなければどうということはない」クラウド的アプローチがお似合いだろう。