<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Nothing To See Here comments on Google commences another assault on the traditional database community</title>
    <link>http://innocuous.org/</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>Nothing To See Here comments</description>
    <item>
      <title>"Google commences another assault on the traditional database community" by tibbetts</title>
      <description>&lt;p&gt;
Many in the blogosphere noticed when &lt;a href="http://www.databasecolumn.com/"&gt;Stonebraker and Dewitt at The Database Column&lt;/a&gt; took offense at the idea that &lt;a href="http://www.databasecolumn.com/2008/01/mapreduce-a-major-step-back.html"&gt;map-reduce is the solution to many of life's problems&lt;/a&gt;. The idea that a simple idea, promoted by a services company, can blow away 20+ years of distributed database research, bothers them for some reason. Sure, it may not be the best solution to every problem, but it is a sufficient solution to many problems.
&lt;/p&gt;&lt;p&gt;
Google is quietly at it again, this time with the &lt;a href="http://code.google.com/appengine/docs/whatisgoogleappengine.html"&gt;Google AppEngine&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
This time, they are taking a shot at transaction processing. This is particularly amusing, because Stonebraker himself has been predicting an upset in transaction processing for a few years now. But rather than demonstrate tight integration between a app language and the database optimizer, or use traditional stored procedures, Google is again causing problems by building the simplest thing that can possibly work. And simple developers with simple applications are going to like it.
&lt;/p&gt;&lt;p&gt;
The &lt;a href="http://code.google.com/appengine/docs/datastore/"&gt;Google App Engine data store&lt;/a&gt; is a non-relational database, with support for an SQL-like but limited language called (unsurprisingly) &lt;a href="http://code.google.com/appengine/docs/datastore/gqlreference.html"&gt;GQL&lt;/a&gt;. There are no joins. &lt;a href="http://code.google.com/appengine/docs/datastore/transactions.html"&gt;The lock management is simplistic&lt;/a&gt;. It is basically an entity-relationship database, with fixed and variable attributes associated with each entity. Every query is always a SELECT * ("The SQL syntax is retained for familiarity").
&lt;/p&gt;&lt;p&gt;
The whole thing is wrapped in a Python object-mapper, which means it looks quite a bit like an object database with a simplified model. This turns out to be what most people who are building web applications, whether in PHP, Ruby on Rails, or Java (Hibernate). Delivering a database which is limited to this functionality puts google in a powerful position to optimize specific use cases for simplicity and performance.
&lt;/p&gt;&lt;p&gt;
We are at the start of (or possibly in the middle of) a cycle that we haven't seen in over 10 years: Existing assumptions about databases are being questioned, and a thousand flowers are blooming. Stonebraker himself pointed this out in his &lt;a href="http://www.databasecolumn.com/2007/09/one-size-fits-all.html"&gt;One Size Doesn't Fit All &lt;/a&gt;papers, talks, and columns. However, it is not just the Oracle of the world who need to change or get out of the way. It is also the leaders of the database research community and their dominant paradigms. Things are going to be messy for a while yet. But in the end we will have technology that better fits modern infrastructure and modern usage.
&lt;/p&gt;</description>
      <pubDate>Tue,  8 Apr 2008 09:32:19 EDT</pubDate>
      <guid>&lt;a href="/articles/2008/04/08/google-commences-another-assault-on-the-traditional-database-community"&gt;Google commences another assault on the traditional database community&lt;/a&gt;</guid>
      <link>&lt;a href="/articles/2008/04/08/google-commences-another-assault-on-the-traditional-database-community"&gt;Google commences another assault on the traditional database community&lt;/a&gt;</link>
    </item>
  </channel>
</rss>
