Get Your Head In the Clouds (Part 3 of 3): Support for Multi-Region Databases Now in DataStax Astra DBaaS
Last week, we announced new features in DataStax Astra: Storage-Attached Indexing (SAI), Virtual Private Cloud (VPC) Peering, and support for multi-region databases. We discussed SAI in part 1 of 3 of the blog series, “Get Your Head in the Clouds and VPC Peering in part 2. Today, we are focusing on support for multi-region databases.
The west coast of the US is basically on fire, and the east coast has endured the second worst hurricane season in recorded history. And now we have solar flares to worry about too. I really wouldn't put anything past 2020.
If you are a person that is responsible for keeping services online for as many people as possible in these conditions, geographic redundancy really needs to be a factor in your plan. Remember, those abstract services that live in the cloud are backed by real computers in a real data center somewhere and they need electricity. Regional power outages aren't uncommon, and they're a real threat to keeping services online. Not to mention the occasional human error. Any business-critical service needs to have geographic redundancy built and ready to go to maintain continuous uptime on this big damp, windy rock we live on.
Enter Cassandra, the worldliest database around. For a decade, digital natives have been using Cassandra to provide services around the world that are resilient to entire regions going offline. What's even more common, and severely challenging for many other databases, is the occasional loss of network connectivity between two regions. Both regions may be online and serving clients, but the connection between them is degraded. Cassandra handles this scenario with aplomb while other databases can suffer from a serious condition called split-brain syndrome. We call this Cassandra superpower: partition tolerance. None of us are partition tolerant (don't think too hard about what that might mean to a human, it's icky) so it can be hard to relate, but once you learn how it all works in Cassandra, and how you can tune the behavior to your needs, it's hard not to appreciate the elegance.
All of that power is now available in Astra. Simply create a C or D tier Astra DB, and then navigate to the details page and add a region.
Astra will scale up to three regions equally, which means that when you add capacity units, they will be added to all three regions. This is because data will transparently be replicated across all regions with no additional configuration on your part. Application services should be configured in the same regions that Astra runs, if an Astra region goes down, so too will the application services. So application code should be configured to connect to its local endpoint and in most cases should use local consistency levels like LOCAL_ONE, LOCAL_QUORUM and LOCAL_SERIAL. We'll cover some other techniques for operating this way in a future blog post.
Interested in taking DataStax Astra for a spin? Sign up for the free 5GB Astra tier and start building today!