Why Should I Use Google Big Table or any non relational database for that matter?

One of the very first things that comes to a web developer’s mind when faced with the option of developing an application on
Google App Engine is the fact that the database is non relational and also that you cannot instantly do “Joins” on your data!
At first glance this seems like a major bottle neck but then it all begins to make sense once you get one thing straight and that is :
Non-relational databases (Google Big Table, CouchDb, Mongo etc) are not nessecarily a one size fits all replacement for relational Databases (e.g. My SQL, Oracle, SQL Server) .
They each have situations to which they are best suited and once you have understood that, life becomes a whole lot easier.
Having said that, there are developers who have sworn to stick to one side of the divide (relational or none relational ) and as such have done everything within their power to adapt their applications to their databases of choice.
So the big question is: When is it best to use a non-relational database like BigTable ?
Well…the answer varies depending on who you talk to, but some digging around the web yielded the following answers:

  • Your data is stored and retrieved mainly by primary key, without complex joins.
  • You have a non-trivial amount of data, and want to avoid the pains of RDMS management such as Replication etc
  • Your data mirrors a real life document or log/audit trail (e.g. a ticket, a receipt or even an invoice) whose contents will not change once it has been created and/or is used in an “append-only” mode

Another possible reason is if you have a strong suspicion that your database will NOT age gracefully (see http://push.cx/2009/rules-of-database-app-aging )
Putting the above scenarios together could result in the following picture:
You have to build an application that underneath is very simple in structure, but will potentially handle a lot of data with high traffic and you want to be able to retrieve data from this application using a primary key and/or also some key words/tags (a many to many relationship). Such an application is a good candidate for a database such as BigTable.

Of course like was said earlier a lot of developers have over the years found ingenious ways to use non-relational databases to achieve a lot of the things that are currently being done with relational databases today.
Also suffice to say that Google has unleashed App Engine for Business and in the second quarter of this year this will support hosted SQL databases. This initiative will make it easier for business to migrate their business applications and databases to the Google Cloud.

http://code.google.com/appengine/business/

http://code.google.com/appengine/business/roadmap.html

It would be interesting to hear from you about situations where you have considered moving from a relational database to a non-relational database and vice versa.
Here are some articles that should make interesting reading:

http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores

http://blog.boxedice.com/2009/07/25/choosing-a-non-relational-database-why-we-migrated-from-mysql-to-mongodb/

What could the Microsoft – Nokia Collabo mean for Android?

If you have not been living on the cyber moon and if you have not been so bogged down by work or play that you did not have time to scan the web (which is the same thing as saying that you have been living on the cyber moon), then i am sure you have heard about the recently announced partnership between Nokia and Microsoft.
If you have not heard or read about it , you can quickly bring yourself up to speed by reading the announcement from Microsoft’s site.
In case you do not want to read through the whole thing, here are the highlights:
Nokia and Microsoft are engaging in a partnership such that:

” 1.) Nokia would adopt Windows Phone as its principal Smartphone strategy, innovating on top of the platform in areas such as imaging, where Nokia is a market leader.

2.) Nokia would help drive the future of Windows Phone. Nokia would contribute its expertise on hardware design, language support, and help bring Windows Phone to a larger range of price points, market segments and geographies.
3) Nokia and Microsoft would closely collaborate on joint marketing initiatives and a shared development roadmap to align on the future evolution of mobile products.
4.) Bing would power Nokia’s search services across Nokia devices and services, giving customers access to Bing’s next generation search capabilities. Microsoft adCenter would provide search advertising services on Nokia’s line of devices and services.
5.) Nokia Maps would be a core part of Microsoft’s mapping services. For example, Maps would be integrated with Microsoft’s Bing search engine and adCenter advertising platform to form a unique local search and advertising experience
6.) Nokia’s extensive operator billing agreements would make it easier for consumers to purchase Nokia Windows Phone services in countries where credit-card use is low.
7.) Microsoft development tools would be used to create applications to run on Nokia Windows Phones, allowing developers to easily leverage the ecosystem’s global reach.
8.) Nokia’s content and application store would be integrated with Microsoft Marketplace for a more compelling consumer experience.”

Most of the commentary i have seen online touts this as Nokia’s reaction to the threat of the IPhone. However it was after reading this article that another angle became a bit evident (thanks Tunde for the Facebook post!)
The main gist of this article is that with this move a lot of Symbian developers will be left without a platform in the coming years and as such the developers will be left with a number of options:

A.) Migrate with Nokia to Windows (How many pure blooded Symbian developers will do this is anybody’s guess)
B.) Migrate to IPhone (An attractive choice as this platform has probably the biggest appstore around)
C.) Migrate to Android (An upcoming platform, but perhaps the most open of all the options
D.)Migrate to BlackBerry another platform of choice
E.) Give it all up and start maintaining blogs like this one (That’s what I would choose:-D)

So what’s the point of this little piece?
The thing is that with so many mobile platform developers pondering their future over the next 6 months, the battle for their souls will soon start in earnest and it is just possible of all the options, Android being the most open of them might be the most attractive. Of course this depends on how Google chooses to play the game and also on what the android community does to welcome in these developers from the cold.
Only time will tell…..
We are watching.

Lagos GTUG holds open house at University of Lagos



The Lagos Google Technology Group held its first open house at the Centre for Information Technology in the University of Lagos.This event was basically a forum that allowed those of us who are interested in Google technology to have some face time with Googlers and hear from them first hand in a semi formal environment.There were a total of 5 Googlers on hand and a total of more than 30 attendees which was pretty impressive considering that it was a work day.The event was fun filled and interactive with everyone eager to join and contribute.


The event kicked off with a talk from Ben, a project manager with Google who walked us through the Google corporate philosophy (the famous “Ten things).
Next we had Ayite ( a Google Engineer) take us through the fundamentals of Google App Engine.

To round up the talks Bridgette (Google Program manager for West Africa) took us through a number of tools that we could use to maximize on our innovations, these included the likes of:

After this came the most interesting part of the evening…when the floor was thrown open for questions and they came flooding in.They included questions like:

  • Why are PHP and Ruby not supported on Google App Engine?
  • Does Google have an equivalent of YQL (for Yahoo)?
  • What is the Google software development lifecycle like?
  • Does Google App Engine have any tool that makes it easy to build RESTful web services?

and much much more,

The discussion became even more passionate when we discussed what the challenges that preventing developers in this part of the world from maximizing and monetizing their innovations.
The event closed with some light refreshments after about 2 hours of intense interaction.
Many many thanks to Bridgette, Lanre, Ben, Ayite, Fiona for making it a wonderful event.

Watch this space for more info on Google activities around here starting with one in Unilag within the next one month and of course the BIG ONE!!!G-Nigeria in May 2011!