I’ve had less to say here about App Engine since I moved to a new team last year. The team has still been cranking, though, both behind the scenes and with new features like namespaces, channels, prospective search, Always On and instances, and closest to my heart, the High Replication Datastore.
The HRD behaves differently from the original master/slave datastore in a number of ways. The documentation describes them admirably, especially given how subtle Paxos edge cases can be. Still, sometimes there’s no substitute for real live code.
That’s why I’ve set up shell-hrd.appspot.com, a new instance of the venerable shell app for the HRD. I’ve already used it myself, to double check that eventually consistent reads aren’t supported (or needed) inside transactions on HRD, just like on M/S.
As usual, App Engine’s self service and rapid deployment made this a joy. I’d
already written the code, so I just created the new app in the
admin console – taking care to select the HRD
option – updated the app id in
app.yaml, added a note to the front page, and
appcfg.py update. Immediate gratification, up and serving in under two