Sunday, February 19, 2006

Blogger and database inconsistency

Blogger recently had trouble with some of the databases that support the service.

Apparently, some of the boxes in their database cluster had the right data and some did not. This is a relatively common problem in a database cluster. It can happen if replication fails because the network gets partitioned or whatever.

The normal solution is to backfill the databases that missed updates, resolve any conflicts, and go on your merry way, all without impacting users.

Instead, Google is asking their users to correct their database for them. My jaw dropped. From the post:
I'm very sorry to say that, if your blog was on this database, posts and template changes made in the last 18 hours or so were not saved. They may appear on your blog now, but will disappear if you republish. If you made a post between Friday afternoon and now, we suggest that you look at your list of posts ("Posting" tab, "Edit posts" sub-tab) and compare it with what is published on your blog. If posts are missing, copy them from your blog pages before you republish.
Whaaaa? Google, king of the cluster, you want your users to cut-and-paste entries from their blog to fix your problems with database consistency?

In general, Google seems to have what borders on disdain for modern databases. They seem to see rigid file system and database consistency as the paranoid ramblings of the anal retentive, preferring the very loose consistency guarantees offered by their core systems such as Google File System and BigTable.

I think consistency does matter. Databases shouldn't lose data. Problems with the database shouldn't be seen by users. Databases should do what they're supposed to do, store data and give it back again when you want it.

For now, the problem is in Blogger. No financial transactions are involved. But what happens when Google expands their payment system (GBuy) or moves into e-commerce? If Google doesn't start caring about data consistency, this problem will bite them again and again.

See also my previous post, "Lowered uptime expectations?"

7 comments:

Anonymous said...

Word is that Blogger still lives in its own
ghetto and is not integrated with
Google's infrastructure ... or so was
the news a while ago.

Greg Linden said...

That's possible. Blogger joined Google through acquisition after all.

I assumed Blogger switched over to the Google infrastructure about a year ago when they made many upgrades to address scaling and performance problems, but I could be wrong about that.

Kevin said...

I don't believe they have. I thought they were on MS SQL but they might have switched.

This makes me think they're still on MS SQL.

Matt Breckon said...

I have a friend (reasonably new to blogging) who has got fed up with Blogger. He's talking about moving to another service (whether he will or not is a different matter!).

I don't think any business can abuse it's customers like this and expect users to stay loyal.

Pip said...

For the most part, it's not a business, it's a free service.

On the other hand, this was completely and totally lame. Three of my posts were eaten, fortunately I realised what was going on and saved the generated HTML so that when it all came back up again I could paste it back in. That's pretty crap.

Mike Ebert said...

I used to use Blogger for my blog, but I had all sorts of problems. My posts didn't get eaten by the database (I stopped using it before then), but Blogger switched which FTP port it uses to publish posts. I hosted my blog on my own site, and my hosting couldn't fix the problem until I found out which port number Blogger was using. Even if I found out which port, what was to keep them from switching again?

I converted over to WordPress, and I haven't looked back since.

Like Pip said, Blogger is a free service. However, Google's services are all(?) free. Just like any service, if they want people to continue using it, they have to do a better job than other services. Just think of the AdSense revenue these free blogs generate for Google.

Greg Linden said...

I'm not sure I buy the free service excuse. All these services carry the Google brand name.

When any Google service sucks, free or not, it reflects badly on Google.

If someone's experience with one Google service is poor, they're less likely to look favorably toward other Google services. Antipathy toward Google easily could extend into cash cows like Google Search or Google AdSense.

Screwing up any service carrying the Google name is not costless. If Google doesn't understand that, I worry for their future.