NoSQL goes mobile with the help of CouchDB

Nonrelational databases are finding a home on mobile devices thanks to the newly revamped CouchDB. Big data is moving to some very small places.


If there is one aspect of mobility that has yet to live up to user expectations, it's the ability for data to be accessible in near real-time across multiple devices.

Despite all the advances in technology, including a wealth of Wi-Fi and 3G networks, many devices become impotent without an Internet connection.

This issue becomes even more apparent when you are dealing with browser-based applications and smartphones that don't have multithreading functionality to maintain state across applications and data stores.

I recently had the chance to chat with Damien Katz, the creator of CouchDB and CEO of Couchio, a newly formed support and services organization for CouchDB, funded by Zimbra founder and venture capitalist Satish Dharmaraj.

Apache CouchDB is a document-oriented database that can be queried and indexed in a MapReduce fashion using JavaScript. It offers incremental replication with bi-directional conflict detection and resolution.

CouchDB is also part of the so-called NoSQL movement, which includes a number of unrelated (and nonrelational) database products such as Cassandra, commercialized by Riptano, and MongoDB, supported by 10gen.

Katz originally created CouchDB in 2005 because, in his words, "at the time everything that anybody talked about was SQL--Oracle and DB2 and Postgres and SQL Server--and MySQL was getting real big. I knew that SQL wasn't the end all and I knew there was an advantage in having your data with you. Everybody was talking about putting everything on the Web and having everything centralized, and I realized that was a dead end, that it was only so far that could take you. I felt that [the] big idea was around replicating data."

According to Katz, CouchDB is a viable solution because it is designed for disconnected use and has the ability to scale vertically across a wide range of devices (smartphones, tablets, laptops) via replication and sync. So while CouchDB is a document database, its sweet spot is solving the data problem that goes along with geographically distributed environments and multiple devices.

CouchDB on mobile devices help address the "data island" problem that keeps data glued to a user's mobile device or a central server. This is a pain point for mobile users because oftentimes people need to move data back and forth between devices on the go.

The traditional solution has been storing data with cloud providers, but issues occur when users drop their Internet connection. CouchDB solves this problem with built-in replication and sync that allows the information to be put back onto a user's phone or laptop so that it is always available.

And when the Internet connection comes back, CouchDB syncs the data with the cloud, so users always have the most up-to-date information. Almost everyone has experienced times when they are not connected to the Internet or have a slow connection but still need reliable access to their data.

This reliability is also relevant to other areas such as when users swap the battery out of their phone or the phone drops and the battery comes out. Even if the OS isn't properly shut down CouchDB won't corrupt or lose their data.

Big picture, Damien feels that CouchDB instances will be the new file system. It will be everywhere. (Mobile is just the obvious use case today.) And because every device has to sort data, it will sort through CouchDB instances creating the ability to replicate and move data among various users.

Featured Video