Monday, 7 April 2014

The Current state of Affairs in Cloud NoSQL

In my previous projects I have found a strong preference to avoid a Traditional SQL database backend.  Too often the impedance mismatch simply costs too much when rapidly iterating a design.  Going with a schema less design is fantastic and frankly really hard to give up.

My last major project was meant to be a ‘internet scale’ service - which basically needed to be able to handle vast traffic increases without falling to pieces (I cringe just reading that sentence!).  Yes – it was one of those projects and I should have jumped out of the boat upon hearing the expectations!)

Moving on…

Early versions of the service were built on the newly launched Azure Table Storage.  I ended up not waiting for the Secondary Indexes (Good thing too because that feature, promised in 2009, is still missing 5 years later!) and made a hybrid SQL / Table combination.  It appeared good on paper and it was seen as a good compromise.

The problem came from the cost of maintaining my indexes for search etc.. Basically I found I was simply working at too low a level of abstraction and trying to hide the underlining implementation was just adding too much mess in my projects.

6 months later the code was ditched and a more traditional standalone database server was adopted.

This all happened a while ago and those design decisions are fairly set in stone.

Fast forward to today and I am once again checking out what is new in cloud land for a new project.  I am surprised by Azure’s apparent lack of care for their NoSQL table storage solution.  It seems, in my opinion, that they are chasing the brown field projects more than new ‘green field’ ones. 

I don’t have any stats for this but maybe the real problem with proprietary NoSQL solutions is that developers are shy about lock-in.  I know it is something that I worry about.  Can I move my service/web site out of this cloud and into another?

 

image

Google’s Cloud Services

I don’t know how I missed all of the cloud services Google is currently offering.  They have a NoSQL database which apparently launched in 2013.  I guess I have been in Microsoft Land for too long.

Some Feature Highlights:

  • Auto Scale
  • Schema less
  • SQL-Like Querying
  • ACID
  • Redundancy (geo-replicated)
  • REST Interface
  • Very affordable pricing (at least it appears to be)

Some early questions/concerns:

Nuget packages for C# don’t indicate a lot of C# users

image

Can I store JSON documents? Does it support Full Text Search? Is there LINQ support for querying?

1 comment:

Andrew Harry said...

http://www.codeproject.com/Articles/716717/Google-Cloud-Platform-Storing-Data-in-Google-Cloud

Good article describing the Google DataStore Service