Couchbase is a distributed document-oriented NoSQL database. You store the data as JSON and then build indexes with simple JavaScript functions. This talk is about the multidimensional index capability of Couchbase. This means you can index not only geographic data (encoded as GeoJSON) but any additional numeric attributes you like. Such a multidimensional query might be used for an application about car sharing. You would e.g. query for all the cars in a certain area, but you're also interested in additional attributes. Let's say you want to display only cars where at least four people fit in. Or you want one with air-conditioning. Such attributes would be the additional dimensions. In this case it would be 4-dimensional query, two for the location and two for additional attributes. Quite often GeoHash is used for implementing a spatial index, which has some limitations. A notable one is that you need to know that maximum range of your data upfront as it's a space partitioning algorithm. It is good enough for purely geospatial data, but as soon as additinal attributes like time are needed, it might become an issue. GeoCouch takes a more traditional approach like PostGIS and uses an R-tree which is data partitioning, hence you don't need to know the extent up-front. Another focus of this talk will be on the operational strengths Couchbase has. One thing is the web interface that makes administrating clusters very easy, even when there's a failure. The other thing is that you can easily restart servers, e.g. when a Linux Kernel upgrade is due, without any downtime on the full cluster. The system stays operational and handles those upgrades gracefully. In the end you will have a good overview on why you really want to use a multidimensional indexing for your remote sensing data or points of interest in your location aware mobile app. GeoCouch is fully integrated into Couchbase, there's no additional setup needed to get started. All source code from Couchbase is licensed under the Apache 2.0 License. Links: - Couchbase: http://www.couchbase.com/ - Source code: https://github.com/couchbase/manifest - GeoCouch: https://github.com/couchbase/geocouch |