分散ロックの仕組み ― 複数サーバーで「早い者勝ち」を安全に実現する方法
分散ロックって何なの?普通のロックと違うの?
なるほど…サーバーが3台あったら、3台とも「自分がロックを取った!」って思っちゃうかもしれないってこと?
Redisでロックを取るって、具体的にはどうやるの?
でもRedis自体が落ちたらどうなるの?
Redis以外でも分散ロックってできるの?
有効期限が切れちゃったのに、まだ処理中だったらどうなるの?
なんだか完璧な分散ロックって難しそうなんだね…
じゃあ大手の会社はどうしてるの?
Googleは社内でChubbyというロックサービスを作って使っているよ。BigTableやGFSなどの基盤システムがChubbyに依存しているんだ。また、PostgreSQLにはアドバイザリーロックという機能があって、アプリケーションが自由に使える軽量なロック機構を提供しているよ
用途に合わせて使い分けるのが大事なんだね!