How does ArcGIS provide high scale access to spatial data?

Discussion created by luebbecs on May 8, 2013
An increasing demand for geographic data imposes an immense amount of spatial queries on data providers like ArcGIS. In a cloud-based environment like ArcGIS Online scaling with increasing workload of spatial queries is absolutely essential. During a discussion with fellows, we asked ourselves how ArcGIS or developers using ArcGIS solve this problem.  We know that main players in the web (e.g. Facebook) use distributed memory caching systems such as Memcached to cache frequently accessed data in a key-value fashion. However, for spatial/geographic data  the key-value paradigm is insufficient or at least unhandy, as many location-based services or applications require data which is located in certain ranges or regions.

So we came up with the following ideas/speculations:

(a) ArcGIS might use a distributed caching system similar to Memcached available, which supports spatial queries out of the box

(b) The people ArcGIS might use standard key-value systems (such as Memcached, or Redis) and manually remap query ranges to keys via space-filling curves or other spatial re-mapping techniques.

(c) They provide scalability by a relational database with spatial features which is extensively partitioned and replicated among several db instances.

(d) They use a NoSQL database with spatial support such as MongoDB or GeoCouch.

We would greatly appreciate any insights on this topic.