The whole NoSQL database effort, as well as the geospatial implementations, are still quite new to many geospatial practitioners. (Directions Magazine provided an introduction to NoSQL database technologies in Feb 2011.) Even as geospatial developers build Web services, take advantage of various APIs and create new datasets, the players in the NoSQL space are making their technologies more accessible and more appealing to those same geospatial developers!
The team at Couchbase is a case in point. Before jumping in to the company’s current efforts, here’s a short primer on its recent history. Damien Katz wrote CouchDB and ran it as an independent open source project from 2005 until 2008, when IBM hired him. The project then became part of the Apache Foundation (the same foundation behind the Apache Web server). It was such a great database that Katz and others a launched a new company, CouchOne, to provide support to users to develop custom enhancements (very much akin to what Red Hat did with the open source Linux operating system). Spin forward to February 2011 and CouchOne merged with Membase to form Couchbase (press release). Membase offered its own NoSQL database called Membase, based on the open source Membase project. For those interested, here are the details on the two different databases: CloudDB is a document store “flavored” NoSQL database that’s quite flexible; Membase is a key value store that’s really fast with large datasets. There’s an expected synergy in the merger from the combined staffs and the technologies.
So, what has Couchbase been up to? In March, the company announced its new product, Couchbase Server (press release). Why? Chris Anderson, one of CouchOne’s founders who currently focuses on Couchbase’s mobile platforms, explained the main reason was to lower the barriers to entry for developers. Providing a single, simple install for an open source project opens doors to developers who might not have the time or energy to explore a new database. Couchbase Server is built on the core CouchDB. It offers, along with a simple install, multi-node support (CouchDB is single node only) and some other goodies like GeoCouch, an open source (Apache licensed) geospatial add-on. Anderson is quick to point out that Couchbase employee, Volker Mische, wrote and continues to update GeoCouch.
How is Couchbase and its geo-implementation different from other NoSQL databases and their geo-implementations? Anderson points to a few big differences. CouchDB developers and Couchbase’s team identified an Atomic Consistent Isolated Durable (ACID) guarantee as a top priority early on. ACID refers to a commitment to dependability. Since he’s focused on mobile, Anderson gives this example to illustrate the sort of dependability he means: If you start a transaction on your cell phone with a Couchbase database and the phone’s battery all of a sudden pops out, you want to be sure that when it is put back, the transaction completes. That sort of guarantee “comes with” Couchbase offerings. Other NoSQL databases can assure such transactions, but require some inelegant methods, such as running three parallel installations. Another difference that is important to those building geospatial applications relates to the geospatial model. GeoCouch is built on the well-known R-tree model. R-trees are data structures used for spatial access published in 1984. R-tree was recently updated and Mische is already looking at how to update GeoCouch. Other NoSQL geospatial implementations are simpler (Anderson uses the term “primitive”) and offer only geospatial analysis - find points with a radius of a given point, for example. With the R-tree model, GeoCouch can find polygons within or lines that intersect a bounding box, with more functions in the works.
How are these NoSQL database companies getting the word out about what’s possible in the geospatial arena? The one-and-a-half-year-old GeoCouch powered Couchbase is in the adoption phase, per Anderson. The goal is get more tools into the hands of more developers. Because of its open source roots, the core parts of Couchbase’s offerings are well-tested and in use by some well-known organizations: the BBC, Zynga and ShareThis stand out for me. One geospatial implementation, Max Ogden's CivicAPI initiative, is built on top of Couchbase technology and has received a fair amount of press. Ogden developed the website as a civic initiative to enable sharing and reuse of geographic data. And, Anderson points out, you never know where developers will take the technology. Just recently he found GeoCouch behind a new online multi-player “World of Warcraft”-type game, managing the locations of the various players in space!
Couchbase and CouchDB are worth keeping an eye on as NoSQL databases become more widely used across disciplines, including GIS.