skip to Main Content

How to Improve Performance using Geo-Partitioning

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.


Back To Top