How to Improve Performance using Geo-Partitioning

One of the most exciting features of distributed SQL is the ability to tie data to a specific location and CockroachDB delivers this capability via our geo-partitioning feature. If you aren’t already familiar with this yet we’ve recently published a few items that help explain how it works, including a video demo and a tutorial. But first, here’s an explanation of geo-partitioning:

Geo-partitioning is the ability to attach data (at the row-level) to a location. This enables you to control data locality in the database, as opposed to requiring manual schema changes and complex, brittle application logic. Geo-partitioning is also distinctly different than ‘partitioning’ because it combines the values of the data with the physical implementation of the database itself. In a distributed SQL database, each node runs on a server and that server has a location. CockroachDB is able to use this information to allow for geo-partitioning of data. It is the only database that offers geo-partitioning.

Often, geo-partitioning is discussed within the context of Data Localization (which is suddenly a very portentous topic in the wake of the Mark Zuckerburg & Yuval Harari conversation). The ability to pin customer data to a specific location can help make your business compliant in countries that require data to be domiciled there.

What gets lost in the conversation about compliance is the fact that geo-partitioning enhances performance.

Geo-Partition For Low Latency

In this video demo of geo-partitioning, you can watch how the implementation of geo-partitioning improves application performance by reducing data access latencies.

The video features a 9-node deployment across 3 US regions on GCE. Before geo-partitioning is added a max latency of 99% of the queries is in the 100’s of milliseconds. After geo-partitioning, 99% of all queries are now 4 milliseconds or less, and 90% of all SQL queries execute in less than 2 milliseconds. In some cases, latency is even sub-millisecond.

We think this kind of performance improvement is really exciting and our esteemed docs team built out a tutorial so you can get your hands in the geo-partitioning soil. We hope that you’ll use the tutorial to engage with geo-partitioning. And we look forward to your questions about how you can leverage this feature to enhance your performance.

If you’d like to dig deeper into geo-partitioning you can reference these resources to learn more:

Blog Post: What Global Data Actually Looks Like

Webinar: The Power of Data Locality in Distributed SQL

Please feel free to connect with us in the CockroachDB Forum to share your feedback.

Ready to scale your database, but aren't sure where to start? We can help.

Get the guide