App Engine 1.3.2 のeventually consistency read

forumのほうでRyanさん(中の人)が解説してくれたのでちょっとわかった.

  • write の際にはprimary replica に書き出し,それがsecondary以降に伝わるようになっている.
  • strong consistency readでは常にprimary replica から読み出す.secondary 以降には伝播していないかもしれないのでprimaryから読み出さないと内容が最新である保証がないから.primaryがこけていた場合には,読み出しは失敗する.
  • eventually consistency readではprimary がこけていた場合に,secondary 以降のreplicaからの読みだしを許す.この場合内容が最新であることは保証されない.また,読み出し自体も遅くなる.なぜならsecondary replicaは遠くにあるので.

つまり,eventually consistent readにすることで変化するのはprimaryがこけていた場合の挙動だけで,そうでない場合には何も変わらない,ということか.