March 17, 2011

New release: GeoCouch as Extension

A new milestone has been reached: GeoCouch is now an extension for CouchDB that can be easily installed with your already running instance of CouchDB. Installing the GeoCouch extension is as easy as using the GeoCouch Git-based source with your existing CouchDB source base (>=1.0.2).

The new GeoCouch also contains a number of improvements over the original implementation. In particular, a new bulk-insertion system improves the speed of index building significantly (up to 10x) and the size (on disk) of the built index is much smaller (up to 10x smaller). Users of databases with frequent updates will love the support for compaction.

GeoCouch also got a new home at Couchbase's Github repository. The installation instructions can be found in the README.

For those who would like to have an easy installation, download a copy of Couchbase Server, which has GeoCouch included.

Highlights of this release:

  • GeoCouch is no longer a full fork, but an extension
  • Spatial index building is up to 10x faster
  • Spatial index file size is up to 10x smaller
  • Support for compaction and index cleanups
  • Not only the bounding box, but also the geometry is returned with every query
  • Better than ever

Breaking changes:

  • GeoCouch did some implicit wrapping at the bounds of [-180,-90,180,90] when the coordinates of the requested bounding box were flipped. The implicit wrapping was removed. Instead, you will receive an error unless you use the explicit parameter plane_bounds. See the README for more information.
  • The API for the list function changed. The handler is no longer called _spatiallist, but _spatial/_list. Please upgrade your code to use the new format. The old handler is deprecated, but will work for now and put warnings into the logs.
  • In the list functions the row object property key was renamed to bbox.

A technical blog post on why the spatial index gained so much speed increase/file size reduction will follow shortly.

Comments