Preface

Introduction

As a long time developer of database-based projects, I can appreciate how over time we have been programmed to work within the table and row-based structure provided by systems like MySQL and Oracle. These database engines all work by using SQL to define the structure and schema, and then ultimately to insert, update and retrieve information.

SQL is not going to go away any time soon, and there are plenty of solutions and use cases where the SQL and the rigid schema make sense. But there also occasions when the strict structure and schema are more of a hindrance than a benefit. Nowhere is this seen more clearly than in the recent explosion of highly interactive websites and social media. The variety of information, and much higher levels of interactivity require a completely different type of database in order to handle the load. This is especially true if your application suddenly becomes hugely popular and the volume of activity explodes.

Couchbase Server 2.0 is designed to help in those situations. As one of the growning number of NoSQL-based database technologies, Couchbase Server takes a different approach to the prbolems of storing, searching and supporting data it’s availability. By using intelligent clustering to distribute and share the load, Couchbase can handle the database needs of those highly interactive applications.

Developing applications against Couchbase Server requires knowing the new structure and interface. Gone are the complexities of SQL and the rigid schemas. In it’s place, you have new flexibility in the information storage, and diferent ways for storing, reading, connecting, and querying the data that you have stored.

In this guide, I’ve combined some basic background information on Couchbase Server and how it operates behind the scenes, with the information you need to start building applications. The methods for storing information and querying that data, and how you can organize and format your data to get the best performance and operation from your Couchbase Cluster.

Where to Get Help on Couchbase Server

The information provided in this book is designed as a basic guide to developing with Couchbase Server 2.0.

For more detailed information on Couchbase Server, you can read the full manual. For more general information about Couchbase Server, visit the Couchbase website.

Detailed background information on building and developing applications using Couchbase Server can be found in the Developer Guide.

For information on the client libraries used to build applications against Couchbase Server, see this Couchbase page.

For a list of all the available documentation for Couchbase Server, see this Couchbase page.

To get involved with the Couchbase community, there are forums available on the Couchbase page, and a mailing list at this page.

To get in touch with the author, please contact me at editors@couchbase.com.

Conventions Used in This Book

The following typographical conventions are used in this book:

Italic

Indicates new terms, URLs, email addresses, filenames, and file extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.

Tip

This icon signifies a tip, suggestion, or general note.

Caution

This icon indicates a warning or caution.

Using Code Examples

This book is here to help you get your job done. In general, if this book includes code examples, you may use the code in your programs and documentation. You do not need to contact us for permission unless you’re reproducing a significant portion of the code. For example, writing a program that uses several chunks of code from this book does not require permission. Selling or distributing a CD-ROM of examples from O’Reilly books does require permission. Answering a question by citing this book and quoting example code does not require permission. Incorporating a significant amount of example code from this book into your product’s documentation does require permission.

We appreciate, but do not require, attribution. An attribution usually includes the title, author, publisher, and ISBN. For example: “Developing with Couchbase Server by MC Brown (O’Reilly). Copyright 2013 Couchbase, Inc., 978-1-449-33116-0.”

If you feel your use of code examples falls outside fair use or the permission given above, feel free to contact us at .

Safari® Books Online

Note

Safari Books Online (www.safaribooksonline.com) is an on-demand digital library that delivers expert content in both book and video form from the world’s leading authors in technology and business.

Technology professionals, software developers, web designers, and business and creative professionals use Safari Books Online as their primary resource for research, problem solving, learning, and certification training.

Safari Books Online offers a range of product mixes and pricing programs for organizations, government agencies, and individuals. Subscribers have access to thousands of books, training videos, and prepublication manuscripts in one fully searchable database from publishers like O’Reilly Media, Prentice Hall Professional, Addison-Wesley Professional, Microsoft Press, Sams, Que, Peachpit Press, Focal Press, Cisco Press, John Wiley & Sons, Syngress, Morgan Kaufmann, IBM Redbooks, Packt, Adobe Press, FT Press, Apress, Manning, New Riders, McGraw-Hill, Jones & Bartlett, Course Technology, and dozens more. For more information about Safari Books Online, please visit us online.

How to Contact Us

Please address comments and questions concerning this book to the publisher:

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (in the United States or Canada)
707-829-0515 (international or local)
707-829-0104 (fax)

We have a web page for this book, where we list errata, examples, and any additional information. You can access this page at http://oreil.ly/developing-couchbase.

To comment or ask technical questions about this book, send email to .

For more information about our books, courses, conferences, and news, see our website at http://www.oreilly.com.

Find us on Facebook: http://facebook.com/oreilly

Follow us on Twitter: http://twitter.com/oreillymedia

Watch us on YouTube: http://www.youtube.com/oreillymedia

Acknowledgments

The Couchbase engineering group, and the other teams in Couchbase that help define the product, support, community, and SDK development were all key in helping to produce not only the software behind the book, but also in many of the tools and examples that appear in it. It should go without saying that without their work, this book simply wouldn’t exist.

Once again, the support and input from Perry Krug to help make sure the content is correct, up to date, and useful, has been immense. Without him, this book would be far less useful, not to mention inaccurate. Thanks as well to the rest of the product management team who helped to review and comment on the content.

At O’Reilly, thanks to Meghan Blanchette, my incredibly understanding and supportive editor, and Mike Loukides, who supported the inception of the book and its content.

Get Developing with Couchbase Server now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.