A few months ago I went to see The Human League when they came to Manchester. They were Britain’s Best Breakthrough Act in 1982, don’t tell me my finger isn’t on the pulse. I’m not a superfan, I just like a few of their songs. I’m certainly not hipster enough to talk about their “earlier work” and “rare b-sides.” In fact, the songs I like are mostly the usual crowd pleasers. The concert was heaving, and for someone who doesn’t see live music all that often it was LOUD. As they were going through their repertoire I happily belted out the ones I knew. But the honest truth is for the songs I’m not that familiar with, there’s a part of me thinking, “what about the classics?” They closed with “Don’t You Want Me” and the crowd went bananas, and this particular passing fan went home delighted. The increased volume level that accompanied the encore told me I wasn’t the only one holding out for the favourites. I’m sure this is a quandary all bands face when they’re launching a new album. How much do they focus on the new material versus reinforcing what made them popular in the first place?

The 5 years we have had have been such good times…

At Couchbase we’re locked in the studio working hard on our fifth album, Couchbase 5.0 previews are available now. If you’re relatively new to Couchbase, here’s a quick recap of our back catalogue. Our first edition, (“Simple, Fast, Elastic”) was a pure Key-Value store. It was scalable, but my word it was fast. The product was built with a memory-centric architecture, written in C and based on the popular memcached project. This debut earned us a lot of notoriety and had some great success. We followed that up in 2.0 with a fully fledged document store including indexing and cross datacenter replication (XDCR) capabilities. For our “difficult third album” we completely rewrote our internal plumbing to make it more fault tolerant and lay the groundwork for the next set of features. Our 4.0 release went in a significant new direction and one that really changed the game. It introduced N1QL, a SQL-like language familiar to the masses to query and manipulate JSON documents. Along with this came a powerful secondary indexer and an integrated mobile solution complete with cloud synchronisation. Couchbase Server was no longer the preserve of the alternative stations but getting serious airplay in the mainstream.

The Couchbase discography

The Couchbase discography

5.0 will build on this even further: production full-text search, role-based access control for documents, new bucket capabilities, a brand new UI, and an analytics service preview. It’s going to be another huge progression for us, and the product is barely recognisable from version 1. But often I speak with customers and they inquire (possibly concerned), “what about the classics?” What of that high performance key-value store that made people stand up and take notice of Couchbase in the first place? Given all of these additions, it might have been all too easy for us to forego some of the early qualities that brought us success. In fact, the opposite is true.

Don’t forget it’s me who put you where you are now…

At Couchbase we are obsessed with performance. We always have been and always will be. This obsession is a voice in our heads at every turn reminding us what brought us here . The Key-Value (KV) Engine development team takes enormous pride in ensuring that each release is an improvement over the next. For example, take a look at how previous releases stack up for one particular Key-Value throughput metric:

Couchbase Server Performance Comparison

Maximum throughput 50:50 Read/Write workload, 20 million * 256 byte items, 1 replica, 2 node cluster using cbc-pillowfight

This graph is worth a second look: our current edition, 4.x, is more than twice as fast as its 3.x predecessor, and 3.1.6 was no slouch. In a follow-on post I’ll go into the technical detail of how these improvements were achieved (tl;dr hard-fought profiling, analysis, use of efficient multithreaded C++ data structures, and cache line awareness).

You’d better change it back or we will both be sorry

Maintaining performance takes a lot of effort. Couchbase Server is relied upon for the smooth running of thousands of mission-critical applications in all manner of industries. Many developers are familiar with the dilemma, “I can make this fast, but I’m not sure how safe it is.” It’s not that functionality always wins the debate over performance at Couchbase there is never a debate to be had. We always design and implement features with an eye on how to make them fast, but functionality always comes first. The culture to improve performance initially comes from holding a high bar in terms of preventing performance regressions. We have an independent team that bombards every single build with rigorous performance tests and scrutinises the results. Take a look, the list of metrics is endless. And from time to time when we introduce performance regressions they let us know all about them.

Couchbase Performance Measurement

Each build comes under high scrutiny

We have been relentless in the pursuit of new and advanced features and will continue to do so. I’m hugely excited about what’s coming in 5.0 and beyond. Interesting new use cases will be opened up by these features and we’re sure to get a new army of first-time downloaders checking us out because of the brand new content. We are fast becoming the defacto standard for building systems of engagement. But rest assured, no matter what features we develop, for those of you that just want the old classics, we’ll continue to deliver the things that matter most to our some of our core customers: scalability, high availability, and consistently low latency, high throughput operations.

Posted by David Haikney, Director of Engineering, Couchbase

David Haikney is the Director of Engineering for Couchbase in EMEA. He heads the Engineering Lab in Manchester with teams responsible for developing next-generation features for Couchbase Server and delivering exceptional support to Couchbase's EMEA customers. He has a software development background in the areas of high performance, virtualization, and storage and holds several patents for code optimization and hypervisor security.

Leave a reply