Couchbase: All content tagged as Couchbase in NoSQL databases and polyglot persistence
Monday, 22 April 2013
Conflict Resolution Using Rev Trees and a Comparison With Vector Clocks
Damien Katz has posted on GitHub a design document for the data structures, called rev trees, used to support conflict management in Couchbase. The doc also includes references to the way conflict resolution is done in CouchDB and also compares rev trees with the vector clocks.
When this happens [nb the edits are in conflict] Couchbase will store both edits, pick an interim winner (the same winner will be selected on all nodes) and “hide” the losing conflict(s) and mark the document as being in conflict so that it can found, using views and other searches, by an external agents who can potentially resolve the conflicts.
Original title and link: Conflict Resolution Using Rev Trees and a Comparison With Vector Clocks (©myNoSQL)
via: https://github.com/couchbaselabs/cbconflictmgmt/blob/master/revtrees.md
Wednesday, 6 March 2013
A Key-Value Cache for Flash Storage: Facebook's McDipper and What Preceded It
A post on Facebook Engineering’s blog:
The outgrowth of this was McDipper, a highly performant flash-based cache server that is Memcache protocol compatible. The main design goals of McDipper are to make efficient use of flash storage (i.e. to deliver performance as close to that of the underlying device as possible) and to be a drop-in replacement for Memcached. McDipper has been in active use in production at Facebook for nearly a year.
I know at least 3 companies that have attacked this problem with different approaches and different results:
- Couchbase (ex-Membase, ex-NorthScale) started as a persistent clustered Memcached implementation. It was not optimized for Flash storage though. Today’s Couchbase product is still based on the memcache protocol, but it adding new features inspired by CouchDB.
- RethinkDB, a YC company and the company that I work for, has worked and released in 2011 a Memcache compatible storage engine optimized for SSDs. Since then, RethinkDB has been building and released an enhanced product, a distributed JSON store with advanced data manipulation support.
- Aerospike (ex Citrusleaf) sells a storage engine for flash drives. Its API is not Memcache compatible though.
People interested in this market segment have something to learn from this.
Original title and link: A Key-Value Cache for Flash Storage: Facebook’s McDipper and What Preceded It (©myNoSQL)
Wednesday, 13 February 2013
NoSQL on MySQL: Stating the Obvious
Matthew Aslett about Couchbase’s and DataStax’s reactions to Oracle’s announcement of MySQL support of NoSQL API:
Sure, Couchbase and DataStax laid it on a bit thick, but these are corporate blog posts – it goes with the territory.
I’ve already linked and commented about these: Couchbase’s reaction and DataStax’s reaction. What I didn’t know—more accurately I should probably write “I hoped”—is that this sort of reactions come with the “corporate” badge. But I’ll keep my hope considering the exhaustive list of reactions from other NoSQL companies.
Original title and link: NoSQL on MySQL: Stating the Obvious (©myNoSQL)
Reactions to MySQL 5.6: Couchbase
Bob Wiederhold (Couchbase CEO) about MySQL 5.6, their use of the NoSQL term, and the PR message touting the new version as the solution “combining the best of both worlds”:
What we see is a whole new wave of applications that have very different requirements than applications had just a few years ago. More often than not they are cloud-based, need to support a huge and dynamically changing number of users, need to store huge amounts of data, and need a highly flexible data model that allows them to adjust to rapidly changing data capture requirements and process lots of semi-structured and unstructured data. The fundamentally different architectural decisions embedded in NoSQL technologies – along with the easy scalability, consistently high performance, and flexible data model advantages (along with all the other tradeoffs) NoSQL provides – are turning out to be a better fit for an increasing number of these applications.
That doesn’t mean MySQL (or relational databases) will go away or won’t play a significant role in the database industry in the future.
Bob Wiederhold is also interested in how Oracle positions their products in terms of NoSQL:
As a side note it’s curious that the MySQL team seems out of step with other parts of Oracle. While the MySQL team seems to be convinced MySQL can do it all, Oracle’s NoSQL team seems to feel differently and is busily trying to catch up to NoSQL leaders like Couchbase, MongoDB, and Cassandra with their own NoSQL product. If relational technology is a one size fits all technology, why is Oracle itself making such a big investment in developing its own NoSQL product?
My supposition, expressed in the post MySQL 5.6 - What’s new, is that NoSQL is just a critical checkbox on the marketing and sales departments. Oracle NoSQL database and its precursor BerkleyDB seem to silently live inside the giant.
Original title and link: Reactions to MySQL 5.6: Couchbase (©myNoSQL)
via: http://blog.couchbase.com/why-mysql-56-no-real-threat-nosql
Monday, 21 January 2013
Zynga Deploys MemSQL for Real-Time Service. Where Does This Leave Couchbase?
Derrick Harris reports for GigaOM about Zynga’s deployment of a MemSQL cluster:
Zynga has deployed nearly 100 nodes of MemSQL, the hot new database from two former Facebook engineers. It might not be a magic pill for Zynga’s woes, but it could help the company boost revenue and even build new types of games. […] At the very least, it could let the company do some things previously out of its reach, such as serve real-time recommendations and ads, and create advanced multi-player games.
Zynga has been the most prominent and most quoted production deployment for Couchbase. That despite the fact that Zynga has never run stock Couchbase, but a custom in-house version.
The story is clear that the new (100 nodes) MemSQL cluster is augmenting or replacing a part of the Zynga’s MySQL cluster. But they are using MemSQL to serve real-time recommendations and ads. A scenario that Couchbase teaches as one of its strenghts.
Original title and link: Zynga Deploys MemSQL for Real-Time Service. Where Does This Leave Couchbase? (©myNoSQL)
via: http://gigaom.com/2013/01/18/can-a-new-database-help-get-zynga-back-on-track/
Thursday, 10 January 2013
How to Create Couchbase Views From Java
Couchbase 2.0 added support for CouchDB-like views and upgraded the client libraries to support this new feature. Tugdual Grall1 demos defining and querying Couchbase views from Java.
-
Tugdual Grall is Technical Evangelist at Couchbase ↩
Original title and link: How to Create Couchbase Views From Java (©myNoSQL)
Monday, 1 October 2012
Using Riak as Cache Layer
Sean Cribbs explains how to use Riak as a caching solution:
- Bitcask or Memory backends
- The possibility of configuring the cluster for lower guarantees of per-key availability
Then benchmark the system for your scenario.
Original title and link: Using Riak as Cache Layer (©myNoSQL)
via: http://lists.basho.com/pipermail/riak-users_lists.basho.com/2012-October/009680.html
Monday, 30 April 2012
The Story of Scaling Draw Something From an Amazon S3 Custom Key-Value Service to Using Couchbase
This is the story of scaling Draw Something told by its CTO Jason Pearlman.
The early days, a custom key-value service built on top of Amazon S3:
The original backend for Draw Something was designed as a simple key/value store with versioning. The service was built into our existing ruby API (using the merb framework and thin web server). Our initial idea was why not use our existing API for all the stuff we’ve done before, like users, signup/login, virtual currency, inventory; and write some new key/value stuff for Draw Something? Since we design for scale, we initially chose Amazon S3 as our data store for all this key/value data. The idea behind this was why not sacrifice some latency but gain unlimited scalability and storage.
Then the early signs of growth and the same key-value service using a different Ruby stack:
Being always interested in the latest tech out there, we were looking at Ruby 1.9, fibers, and in particular Event Machine + synchrony for a while. Combined with the need for a solution ASAP - this lead us to Goliath, a non-blocking ruby app server written by the guys at PostRank. Over the next 24 hours I ported over the key/value code and other supporting libraries, wrote a few tests and we launched the service live. The result was great. We went from 115 app instances on over six servers to just 15 app instances.
The custom built key-value service didn’t last long though and the switch to a real key-value store was made:
We brought up a small cluster of Membase (a.k.a Couchbase) rewrote the entire app, and deployed it live at 3 a.m. that same night. Instantly, our cloud datastore issues slowed down, although we still relied on it to do a lazy migration of data to our new Couchbase cluster.
Finally, learning to scale, tune and operate Couchbase at scale:
Even with the issues we were having with Couchbase, we decided it was too much of a risk to move off our current infrastructure and go with something completely different. At this point, Draw Something was being played by 3-4 million players each day. We contacted Couchbase, got some advice, which really was to expand our clusters, eventually to really beefy machines with SSD hard drives and tons of ram. We did this, made multiple clusters, and sharded between them for even more scalability over the next few days. We were also continuing to improve and scale all of our backend services, as traffic continued to skyrocket. We were now averaging hundreds of drawings per second.
Scaling “Draw something” is a success story. But looking at the above steps and considering how fast things had to change and evolve, think how many could have stumbled at each of these phases, think what would have meant to not be able to tell which parts of the system had to change or to have to take the system offline for upgrading parts of it.
Original title and link: The Story of Scaling Draw Something From an Amazon S3 Custom Key-Value Service to Using Couchbase (©myNoSQL)
Wednesday, 28 March 2012
Couchbase at OMGPOP: Some Clarifications
When I first read the OMGPOP story I wrote the Two Sides of the OMGPOP Cloud and Couchbase Scalability Story. Then came a long conversation with James Phillips of Couchbase. Now we have a better picture of Couchbase’s involvement in OMGPOP scaling success story:
We became aware of our role in their success when they called us to ensure they were employing best practices in planning for growth of their database cluster. As the number of users, games, and drawings grew at an unprecedented rate, they were able to continuously add capacity to the cluster (growing to over 100 servers), while maintaining application performance and with zero application downtime. There was never a performance drop or a single moment when new players couldn’t join the party – even in the face of dying hardware! At one point, a motherboard issue with their selected hardware was taking cluster members down at a frightening pace. Couchbase took even those failures in stride without interrupting game operation or performance.
For the future I hope Couchbase people will remember James Phillips’ promise. Time to moving on now.
Original title and link: Couchbase at OMGPOP: Some Clarifications (©myNoSQL)
Monday, 26 March 2012
Two Sides of the OMGPOP Cloud and Couchbase Scalability Story
Many media sites published on Friday the PR release of OMGPOP growth story citing the usage of cloud services and Couchbase as their scaling solution (GigaOm, BusinessInsider).
When reading it, I’ve jotted down:
- The good: using a combination of cloud and a NoSQL database (Couchbase) allowed OMGPOP to scale
- The bad: OMGPOP had to call in people from Couchbase to help out with scaling
Question is if you can throw in more iron and hire experts wouldn’t many other database solutions be able to cope with OMGPOP’s growth?
Original title and link: Two Sides of the OMGPOP Cloud and Couchbase Scalability Story (©myNoSQL)
Tuesday, 28 February 2012
Big Data Investment Network Map
Very interesting visualization of some of the companies in the Big Data market connected through their venture capital and investment firms by Benedikt Koehler and Joerg Blumtritt over Beautiful Data blog:

There’s only one company I couldn’t find on this map: Hortonworks.
Original title and link: Big Data Investment Network Map (©myNoSQL)
Wednesday, 8 February 2012
The Couchbase Genealogy
Looks like Matthew Aslett (the451group) had his own version of the Couchbase genealogy:

Credit Matt Aslett .
Original title and link: The Couchbase Genealogy (©myNoSQL)
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling