I spent most of day 2 of the conference on the NoSQL and big data track. It was a close call for me over the mobile development track, but big data just pips mobile to the post in relation to the type of work that I do. I wish I could have cloned myself today
Jumping into summaries of todays talks:
Stefan Edlich – Choose the right database
Stefan is obviously very knowledgable about the broad and diverse NoSQL product world. His presentation talked through how he would walk clients through the process of selecting a NoSQL solution. In short, this involves looking at the characteristics of the data, and using that to drill down into a category of products. For instance, high performance databases think (a, b, c), or for distributed processing think (d, e, f). He also identified a whole suite of evaluation criteria you could use against each product, though noted that a lot of subjectivity was involved here.
This all led on to a really interesting discussion about how do we ‘convince the boss’ to adopt new persistence models. I could tell that Stefan and a few of the attendees felt that companies were too risk averse in applying NoSQL, but I can appreciate why it’s a hard sell – relational databases are so succesfull – proven, well understood, general purpose, that it’s a hard sell to implement polyglot persistence.
The second presentation dug into something called NewSQL, which is a term I have heard before but didn’t really know much about. Essentially, this is the fightback of relational databases, whereby they are using techniques such as better clustering and direct storage engine access to dramatically reduce latency and improve scalability. Apparently the performance metrics are very comparable now, potentially giving us a ‘best of both worlds’ solution.
Sergey Bushik – Evaluating NoSQL performance
This was an interesting topic which was about a suite of benchmarking exercises they had developed to simulate loads on various NoSQL products.
The one thing I took away from this was how difficult it is to compare NoSQL products! The differences in the product almost always end up compromising your tests, and by trying to make a consistent test, you end up moving away from real world usage scenarios.
Chris Anderson – Couchbase
This was a fairly generic introduction to Couchbase, but one which sold the product really well in my opinion.
What I liked about the product was the visibility it gave you in terms of how it was operating – how many objects were stored in the write behind cache, how synchronisation was progressing after introducing a new node. We’ve had problems in the past with caching layers such as Coherence operating as black boxes with limited opportunity to capture metrics and certainly no out of the box GUI.
It was also nice to have a slightly more technical talk, touching on synchronous and asynchronous replication, commit models etc.
I had a play with Couchbase after the talk and was up and running and writing data into it from my Rails app within about 30 minutes which is impressive stuff.
Martin Ferro-Thomsen – Talk To Your Users
A change of pace from NoSQL now as I was interested in attending a few talks from product companies with regards to how they were building community and publicising their products.
I’m interested in moving back toward product design & development in the future, but I know that gaining traction and mindshare is a much harder challenge than the technical side.
This ended up being one of my favourite talks of the conference, as it touched on the various psychologies that were at play with your early stage users – keeping them happy, getting them to become ambassadors, and then nurturing the community.
Summary
Though i learnt a ton about NoSQL today, I actually came away less prepared to adopt it then when I started the day. Picking a product is a complex and multi faceted problem, and then they’re hard to benchmark and compare. In the background, we also have vendors making big claims and omitting their downsides.
For this reason, I think I would like to have heard more practical experiences of real world implementations – what went well, what didn’t go so well etc.