Matt is the Director of the Developer Solutions group for Couchbase and has years of background in developing the backend systems for many large-scale, consumer facing web applications. The developer solutions team works with developers on modeling their needs against Couchbase and also produces client libraries, samples and other documentation for developers. In recent years, he has been a core developer on Membase and Couchbase and a contributor to the memcached project. He is a frequent speaker at technology conferences including JavaOne 2011, MySQL 2011, MySQL 2010, OSCON 2010, Cloud Camp San Francisco, Silicon Valley Code Camp, and many others.

Couchbase Server provides a simple, distributed document store. Written in a combination of Erlang using components of OTP for clustering and supervision alongside some C/C++, Couchbase Server manages the distribution of documents across a cluster of commodity hardware allowing for indexing of these documents and analytics through views. The system is accessible from nearly any programming language or through one of two open protocols: HTTP and memcached protocol.

This session will be a case study in designing and building this distributed, document oriented database. Couchbase ran into challenges with understanding where performance bottlenecks were in the system, for which Couchbase's Dustin Sallings contributed new DTrace probes to the common Erlang VM. Using these probes, Dustin and the Couchbase team were able to identify and correct bottlenecks in the system. Since then, Dustin and others in the Erlang community have collaborated to enhance Erlang observability. Couchbase also had to overcome some challenges in trying to cluster the system to ever larger groups of computers with Erlang/OTP. The Couchbase team has been able to overcome these challenges with careful separation of cluster management from data management processing and careful attention to how OTP is used in the system.

In this session, Dustin and Matt will cover these topics, sharing what has worked and where the challenges were in bringing Couchbase Server together. Couchbase Server has it's roots in both the Apache CouchDB project and the Membase project.

Talk objectives: This session will educate the attendee on how Couchbase has been able to use DTrace and Erlang together to better understand the interaction between Couchbase Server, the Erlang VM, other user-space software and the operating system's network and IO services.

Target audience: The ideal attendee of this session will have a solid background in Erlang software development and a familiarity with UNIX systems.