Have multi-site databases work for you (not the other way around)
Exploring the options for managing cross-region data at scale
Spare a thought for the humble database – as the demands of the modern web user have grown over the years, databases have been asked to shoulder an ever-increasing burden by providing near-instant access to applications and services with little to no room for error. These high demands have given rise to techniques such as database clustering, which allows for increased failover, more efficient load balancing and generally better performance.
At the same time, these trends have also driven the growth of non-relational database technologies like NoSQL. These databases are extremely easy to horizontally scale, are designed to process high volumes of unstructured data and are ideally suited for managing real-time transaction data across a wide network. Public cloud networks and private cloud deployments alike have both proven excellent hosts for NoSQL databases and layer on top of the benefits offered by database clusters to deliver even greater performance and scalability.
Using clustered databases within your data centre can have a number of benefits, but if you’re restricting the boundaries of a cluster to one specific site, you may be missing out on a whole host of potential advantages, including faster performance, greater stability and improved resilience. Thanks to modern database technology and cloud-computing platforms, database clusters can now span not just multiple locations within the same geography, but even multiple regions.
This strategy brings with it some unique challenges, however. Availability is arguably the most important; according to a recent survey from VMware, more than half of consumers would abandon a company if they felt it wasn’t offering an acceptable digital experience, so service outages are to be avoided at all costs.
Outages can happen for a variety of reasons: a buggy software update can knock out a server node, a rack could suffer power failure, or in extreme cases, an entire data centre may go dark thanks to fire, flood or loss of network connection. Some issues will be quicker to resolve than others, but in an ideal world, your users should never even know there’s an issue.
Multi-site databases are inherently more resilient than single-site instances, as they have the ability to fail over to one of the other sites in the event of an emergency, but they’re not entirely immune to failure. A multi-site cluster where databases in two regions are fed by a data centre in a third location offers some failover benefits – if one of the regional databases goes down for any reason, then users can simply be routed over to the other. However, if the central location suffers an outage, neither of the two regional databases will be able to function.
Using an active-active configuration when designing multi-site databases can help mitigate the impact of any localised outages, with all necessary data and services replicated across all regions and continuously synchronised. This adds more redundancy between racks and data centres, and helps keep availability high since as long as one site is still online, database requests can be processed locally. It also has the added benefit of aiding in disaster recovery, as the data from one of the other sites can simply be replicated once a failed node or cluster segment is back up and running.
At the same time, replication between multi-site databases can sometimes cause its own problems. If two database instances attempt to save different updates to the same field at the same time, it can cause a write conflict which brings the whole database to a grinding halt. This can be due to a number of factors, from misconfigured concurrency settings to high-latency connections between cluster sites.
The immediate impact of an unresolved database conflict is that no changes can be made until it’s been fixed, potentially locking users or linked services out of accessing it. However, it can also result in your database containing inaccurate data or losing data altogether. None of these scenarios are good, but they can be especially damaging in highly regulated industries where maintaining accurate data records is a compliance requirement, and ensuring your database is built to support strong consistency is key to negotiating these requirements.
On the subject of compliance, data protection rules will almost certainly need to be taken into account when architecting a multi-region database. Recent rules like GDPR now make it more difficult for organisations to transfer individuals’ personal data across borders, while certain public sector bodies and private companies will contractually obligate partners to keep data within specific countries.
How multi-site databases shine
There are, however, ways in which multi-region databases can be configured to meet compliance needs, automatically routing data to the relevant territories and ensuring that it doesn’t leave the specified region for any reason. The more granular you can make these rules, the easier it will be to meet compliance requirements, and some architectures are better suited to this than others. In some cases, this can even make your database faster, as transactions between two databases in the same region will be lower latency than transfers across different continents.
This brings us to the issue of performance. As previously discussed, modern users expect almost instantaneous access to services, which means databases need to be able to process operations and return results in less than a second. This demand is part of the reason why multi-site databases have become so common – the closer a customer is to the server their request is being processed by, the quicker the results will be delivered. Therefore, maintaining more database sites allows organisations to reach a higher number of users with sub-second latency.
However, this strategy can sometimes result in issues of load balancing. For example, routing users to the nearest available node in a cluster may not always be the optimum solution; regional spikes in traffic can result in one data centre in a cluster being placed under immense strain while the rest of the cluster remains under-utilised. In order to prevent this scenario, intelligent load balancing can be deployed to make sure that traffic is routed in such a way that no single node becomes overwhelmed, while still maintaining acceptable latency and performance.
These challenges, among others, make running a multi-site database a taxing task, but multi-region architectures are essential for any business that wants to operationalise data on a global, real-time scale. By utilising a best-of-breed technology stack, however, IT administrators can remove much of this headache, relying on proven tools to manage elements such as backup, failover, performance optimisation, load balancing and much more.
The key to unlocking value from your database stack is basing it on a solid foundation. Aerospike’s multi-site clustering architecture allows database managers to construct their toolchain in a way that works for them, integrating with industry-leading tools to offer maximum flexibility and sophistication. What’s more, it’s combined with an architecture which provides strong data consistency and high availability, with a footprint requirement that allows IT leaders to massively reduce their TCO.
To find out more about how Aerospike can help your business manage cross-region data at scale, click here