OpenVMS survives, but will it thrive?
One man who's no fan of OpenMPE

Google returns to a sound database design

GoogleCode This week we heard about Google's App Engine from ScreenJet's founder Alan Yeo. The free tool in Google Code "is sort of like a distributed computing environment that anyone can use," Yeo said when he called a few days back. "You can create Web applications and use Web-based datastores." Datastores for Google's App Engine use an SQL-like syntax, GQL. "See what database this reminds you of," Yeo asks.

GQL intentionally does not support the Join statement, because it is seen to be inefficient when queries span more than one machine. Instead, one-to-many and many-to-many relationships can be accomplished using ReferenceProperty(). This shared-nothing approach allows disks to fail without the system failing.

The where clause of select statements can perform >, >=, <, <= operations on one column only. Therefore, only simple where clauses can be constructed. Switching from a relational database to the Datastore requires a paradigm shift for developers when modeling their data.

"I think Google has just re-invented IMAGE," Yeo said.

Google's Web-based guide to the app solution goes on to explain that the Datastore is not relational in the traditional SQL sense, like with DB2, SQL Server or MySQL. "What they've written is almost IMAGE," Yeo said. "You've got detail datasets you can access on a key with a bunch of operators. You can can only access one dataset at a time from the keys. And they've done it for mass volume efficiency."

Most 3000 developers take mass volume efficiency of IMAGE as an article of faith. The efficiency of IMAGE lets nearly-antique processors like PA-RISC 2.0 run even with the latest Itanium chips, given the right database design.

The App Engine datastore is not like a traditional relational database. Data objects, or "entities," have a kind and a set of properties. Queries can retrieve entities of a given kind filtered and sorted by the values of the properties. Property values can be of any of the supported property value types.

"Looks like it's time to dust of those IMAGE skills and get an instant head start on those other developers, who are going to have to learn about network databases from scratch," Yeo told us. "Now if HP had some foresight they could have been sitting on a database structure that could become the backbone data storage model for the Internet."