中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

Mongo ghost sync & slaveDelay

I updated the previous slide that was added slaveDelay and its (serious) probrem !!

Ghost sync & slaveDelay

前回のスライドをアップデートして、slaveDelayとその問題を追記しました。

概要

Ghost sync

MongoDB replica set のnode間のネットワーク障害などで、Primaryに繋げなくなってしまったSecondaryを救済する仕組み。

可能な限りavailabilityを優先する思想はMongoっぽくて好感。

slaveDelay

致命的なヒューマンエラーを救済できそうな、かなりユニークな仕組み。
意図的にSecondaryの同期を遅延させ、ヒューマンエラーの伝播を防ぐ。

db.dropDatabase()

のような復旧不能なコマンドを打ってしまっても、slaveDelayノードまで伝播する前に対処すれば助かる。

Ghost sync と slaveDelayの組み合わせ

slaveDelayノードを同期ターゲットとしてしまったSecondaryは意図せずslaveDelayノードになってしまう。
ただし自分が遅延している事を知らないし、周りも把握できない。
クライアント(アプリなど)は意図せず古い情報を参照し続ける可能性がある。

ちゃんと検知して、HIDDENなりMAINTAINANCEなりになってくれ!ってjiraにポストしといた。

PS.
 いつの間にかdebugging with submitter になってた・・・
 サクっと直ってて欲しかったなぁー