7 minute talk follow-up
Some follow-ups, corrections, and expansions. Being correct takes effort.
First, someone very knowledgeable on the internals noted that I was sloppy with the terms ‘datastore‘, ‘GBase‘, ‘GoogleBase‘, ‘GQL‘, and ‘BigTable‘. Mea culpa. Datastore is the most generic term and the specific one for Google App Engine is referred to as the “App Engine datastore“. The App Engine datastore is accessed through GQL, a language reminiscent of SQL. The App Engine datastore is built on BigTable and exposes some of BigTable’s capabilities (see Wikipedia, a formal paper, or video documentation). GoogleBase is an independent Google product that is also built on BigTable. GBase is a guitar search engine and the naturally elided form of “GoogleBase” after saying it a hundred times. Whew! Terms.
Speaking of terms, the contract term dealing with indemnification in the Terms of Service:
13.1. You agree to hold harmless and indemnify Google, and its subsidiaries, affiliates, officers, agents, employees, advertisers, licensors, suppliers or partners, (collectively “Google and Partners”) from and against any third party claim arising from or in any way related to (a) your breach of the Terms, (b) your use of the Service, (c) your violation of applicable laws, rules or regulations in connection with the Service, or (d) your Content or your Application, including any liability or expense arising from all claims, losses, damages (actual and consequential), suits, judgments, litigation costs and attorneys’ fees, of every kind and nature. In such a case, Google will provide you with written notice of such claim, suit or action.
The annoying clause is “(b) your use of the Service”. Given how claims are written in patents, it is entirely likely that use of the API would be an actionable breach if the Google App Engine violated patents. Google could require indemnification by users of the API. For most people and smaller companies, the reputation of Google and pledges to “not be evil” should be sufficient.
Speaking of evil (note the clever transistion), the lazy index evaluation that makes the database look like “read committed” is discussed here.
Finally, high availability is hard, and “9’s” go faster than you remember.
90% (1-nine) is a downtime of 36.5 days per year.
99% (2-nines) is a downtime of 3.65 days per year.
99.9% (3-nines) is a downtime of 8.65 hours per year.
99.99% (4 nines) is a downtime of 52 minutes per year.
99.999% (5 nines) is a downtime of 5.2 minutes per year, or six seconds per week.
A claim of about 2-nines reliability is reasonable. Google App Engine was launched around four months ago in mid-April, so about a day of downtime is 2-nines. It was down on June 17 for some unreported number of hours, and was down again on June 19 and June 25. Add in little outages where various features broke, blocking PayPal, and other nits. There is a list that occasionally reports downtime, but no exact statistics are available. If there were no future outages, and you wanted to demonstrate four nines reliability, it would need to take years to overcome the existing outages.
Keep on working on it. I hope that Google App Engine will be more fun in the future.






