Sunday, July 13, 2008

Beta

My second post.

As I've been hiding behind a rock for the last few months I only got wind of Google App Engine recently and have been looking at it over the weekend. It looks quite fun and I'm quite tempted to play around with it and write a simple app to test it out.

In particular I'm trying to get my head around their datastore and how to use it efficiently.

One particular problem that I just started thinking about is how you would do an intersection of sets given the lack of joins. Look at tags as used by gmail, Flickr, del.icio.us or any other such app and for concreteness I'll talk about a gmail type example. How do you find all emails that have a given set of tags without pulling in all the records for each tag and doing the intersection in memory? This might not be a problem for an email app where each account has a relatively small number of objects but what would you do if you had a bigger app?

This is a standard problem so I'm sure it has been solved efficiently many times and I hope that I'll be able to find an answer out there if I don't find one myself first. I started thinking about this last night and think I have a solution which I'm busy coding up in Python along with the traditional relational db approach for comparison. Hopefully I'll be able to post this here tomorrow.

No comments: