Chapter 8. Building high-availability solutions with NoSQL

This chapter covers

  • What is high availability?
  • Measuring availability
  • NoSQL strategies for high availability

Anything that can go wrong will go wrong.

Murphy’s law

Have you ever been using a computer application when it suddenly stops responding? Intermittent database failures can be merely an annoyance in some situations, but high database availability can also mean the success or failure of a business. NoSQL systems have a reputation for being able to scale out and handle big data problems. These same features can also be used to increase the availability of database servers.

There are several reasons databases fail: human error, network failure, hardware failure, and unanticipated load, to name a few. In this chapter, we won’t dwell on human error or network failure. We’ll focus on how NoSQL architectures use parallelism and replication to handle hardware failure and scaling issues.

You’ll see how NoSQL databases can be configured to handle lots of data and keep data services running without downtime. We’ll begin by defining high-availability database systems and then look at ways to measure and predict system availability. We’ll review techniques that NoSQL systems use to create high-availability systems even when subcomponents fail. Finally, we’ll look at three real-world NoSQL products that are associated with high-availability service.

8.1. What is a high-availability NoSQL database?

8.2. Measuring availability of NoSQL databases

8.3. NoSQL strategies for high availability

8.4. Case study: using Apache Cassandra as a high-availability column family store

8.5. Case study: using Couchbase as a high-availability document store

8.6. Summary

8.7. Further reading