Abstract
複数のホストにまたがった排他ロックを実現するためにはまず中央に何らかの「入れ物」を用意して,それを各クライアントが「共有」し,状態を取得する,という手法が一般的であると思います.「入れ物」は例えば Redis や 最近だと etcd や consul なども候補に挙がると思います.
さて,ここで「本当」に「高可用」で「高信頼」で「高保全」な分散排他ロック向きの存在は何か? と考えてみた時に「電話」にたどり着くのは至って自然であり,宇宙の摂理と言えるでしょう.
電話は「相手と通話可能」と「相手と通話不可能 (つまり相手が通話中)」というシンプルな排他的ステートを持っており,これは究極の排他ロックであると言わざるを得ません.しかも電話は1876年から脈々と利用され続けている極めて信頼性の高い技術なのであります.これを使わずにして何を使うと言うのでしょうか.
つまり何が言いたいかというと,実際に電話をかけてみた時に
- コールができたらロック取得
- コールが出来なかったら (お話中だったら) ロックが取れない
という判断を下すことが可能ということです.
幸い2015年に生きる我々には Twilio という電話をプログラマブルに扱える巨人の存在があり,その肩に乗ることで電話を用いた分散排他ロックがプログラマブルに行えるようになっています.
本 LT では電話を用いた分散排他ロックの可能性及びその実装について言及します.
Talk Details
Venue | トラックA 国際会議場 |
---|---|
Starts On | 2015-08-22 17:15:00 | -pc.html
Talk Duration | Lightning Talk |