Whitepaper: Dynamic High Performance Web Mapping

Summary

This post may describe functionality for an old version of CARTO. Find out about the latest and cloud-native version here.
Whitepaper: Dynamic High Performance Web Mapping

Serving up dynamic web maps that render live and changing data can be challenging enough but what about when those maps are also under extreme load as millions of users access them? With our partner AppGeo we discuss how we solved that problem for one of their customers and for all our users all the time.

As these scenarios become increasingly common you want to rely on a mapping platform that can scale without changes. For clients coming from Google Maps Engine this can be one of the most important considerations when switching platforms. We hope this white paper will shed some light on the scalability of CartoDB.

tl;dr

To make a long story short CartoDB scales dynamic mapping by using cold hard cache. In particular by tying our content delivery network (CDN) tightly to our data storage system so when data changes the CDN gets notified.

Flow Chart

As a result high loads are serviced almost exclusively using cached content on the CDN and the dynamic rendering servers at CartoDB only have to handle rendering as data updates invalidate the cached content.

Conditions Map

We tested our system using the real-world scenario that AppGeo and their customer brought to us. Pointing the LoadImpact web performance testing service at our web map while having AppGeo dynamically update the data at the same time we served it on the maps CartoDB easily served over 60 000 requests per second.

Performance Graph

And the best part is since almost all the requests were served by the CDN we know that we could serve far more traffic than we tested potentially millions of requests per second!