Customers like AOL, Orbitz and Zynga have successfully employed the use of Couchbase Server, and with the exponential growth of web and mobile apps, its scalable NoSQL offering is becoming increasingly popular. Let's find out more on Couchbase and how it betters its competitors from none other than Couchbase President and Chief Executive Officer, Bob Wiederhold.
How does Couchbase manage to achieve best in class Scalability, Performance & Reliability, giving tough competition to other NoSQL databases?
Scalability, Performance, Reliability and Ease of Development are the three areas because of which developers move over to NoSql databases.
Couchbase provides huge advantage in terms of easy Scalability, as every node in Couchbase is identical. It is very simple to add or remove nodes from clusters with Couchbase, with the addition of every new node the whole configuration of nodes automatically re-balances. Hence no specific scaling strategies are required based on the way the data is modelled, as is the case with other NoSQL databases which provide 5-6 different node types We have a huge lead over MongoDB in the scalability area, particularly the ease of scalability and reliability at scale. We can easily scale up to hundreds of nodes whereas with MongoDB it becomes difficult to scale beyond 5-6 nodes.
Performance is looked in terms of latency and throughput, there have been a lot of performance benchmarks and we are about 1/3 in latency when compared with MongoDB and Cassandra and we provide 3-4 times the throughput of them. High performance for Couchbase based implementations is achieved through the Layer Consolidation technology that we deploy. We have consolidated the caching layer with the database layer. We use MemcacheD which is a widely used open sourced caching technology, in addition to which we have a very good storage technology that allows us to very quickly persist data to disk. The performance of data reads and writes improves drastically as the information is stored in the cache first and then put into a queue. We don't have any locking, big performance problems arise when the database gets locked under certain circumstances, which means no additional reads and writes can be done until some other operation is completed. 10gen do not have a managed cache, they use memory mapping, which has big performance issues and they have big locks which also add on to the performance issues.
Reliability in distributed systems it is very complex, how you do all this is difficult to explain but our product is far more reliable as it just does not crash.
- Ease of Development
Ease of development comes automatically with the document databases. Document databases use JSON data model and people love the fact that it is schema-less. JSON is a great match with Object Oriented Programming languages that people use today. 10gen MongoDB is a little bit ahead of us there, but when a very scalable and high performance solution is required by big global enterprises they turn towards us.
How has Couchbase 2.0 release changed the landscape of Couchbase among its competitors?
Before the 2.0 Release of Couchbase Server, we were the clear leader in the key value database segment technology and Datastax Cassandra has been a leader in the column family of databases technology segment. The 2.0 release of Couchbase augmented its key-value database capabilities with a flexible document data model, enabling developers to rapidly build and modify their web and mobile applications without the constraints of relational database schemas. So, we are now competing head on with 10gen in the document database space.
Another major feature that we released with our 2.0 release is Cross datacenter replication (XDCR) which enables automatic replication of databases across geographically disparate data centers, ensuring data availability in the event of catastrophic infrastructure failures and improving application response time by locating data closer to the users accessing it. This significantly differentiates us from our competitors 10gen and Datastax.
For what category of apps is Couchbase most suited for?
Couchbase has more than 350 customers; we break down them into different categories, Internet Companies and Enterprise Companies. Internet Companies, whose entire business revolves around the internet like social and mobile gaming companies, social networking chat apps, advertising companies, service companies, e-commerce companies and more. Enterprises Companies like retail space companies, communication companies, financial services companies, healthcare companies and more. The ways these different companies use our software is identical whether it is internet companies or enterprises companies.
Some of the key use cases are:
- Couchbase as Caching Tier - Using Couchbase as a Caching Tier either for memcached or oracle coherence.
- Clouchbase as Global ID Store - Many of the internet big properties are storing information about individuals like name address, credit card information, information about the individual likes or dislikes, data about hundreds of billions of users, we are extremely good for that use case.
- Couchbase as a Session Store – Many social gaming companies use Couchbase for storing the sessions.
- Couchbase for Content Aggregation – Many traveling or hotel industries want to maintain database on locations, availability of assets, product catalogues, and more, customers like Orbitz and Amadeus are examples of those.
What advantages does the commercial offering of the Couchbase Server, provides on top of the Couchbase Open Source project?
We are 100% open source we are the only of the three leaders that are 100% Open source, both 10gen as well as Datastax have a lot of proprietary features. All of the latest and greatest bug fixes and features appear in the enterprise edition first. And all of those features and bug fixes eventually make up to the open source community edition after 3 months. Community edition is somewhat behind the enterprise edition, but everything eventually gets back there.
Can you tell us something more about the Couchbase SDK?
Couchbase provides 9 different SDK's, sometimes called clients which are libraries that expose the API's, and make it easy for an application to access the Couchbase database and its features.. We are in the process of adding support for more languages. In addition to what Couchbase provides, there are some SDK's developed by the Couchbase open source community giving a lot of options to choose from to the users.
Is it possible that a single application can be based on different data models, say the same app uses Key Value database for one part and Graph database for another part?
The era in which we exist now is very different from the last 40 years, back then everything was relational databases literally. We are now moving into an era where you have a lot of database choices, in term of different technologies, and yes there will be situations where each part of the application will use a different type of database technology. More and more of the apps are going towards service oriented architectures; each of the services might use a different type of a database.
Why according to you most of NoSQL commercial offerings are based on Open Source projects?
We believe that there is a massive shift taking place in the database industry. Database industry is 35 billion dollars today and vast majority of that industry is based on proprietary software. The NoSql technologies, the Operational databases, Analytics support provided by Hadoop and things like that are causing a major-major disruption in the database industry and we think that the winners with all this new technology will all be based on open source. Customers want their infrastructure stack to be open source, so that they can get access to the source code, specially the bigger companies, to be able to fix bugs as infrastructure technology is very critical to them
To sum it all Bob said,
We win in the scalability and performance area. With 2.0 release in Dec last year, which has been widely successful, we had many major competitive win against our competitors 10gen and Datastax.
[Image Credits: couchbase.com]