DocsAutoDBAHigh Availability

High Availability

Meeting availability goals is often a top concern for DBAs, but it can be hard for them to know whether they have adopted an optimal approach. Since redundancy can be created in many ways, DBAs may consider a wide range of approaches to achieving their availability goals. In an on-premises situation, this may mean investing in reliable storage arrays and server hardware. In the cloud, DBAs can choose between a cloud provider’s managed service offerings, self-configured systems, or combinations thereof. Running standby replica systems is commonly part of the solution, but this can easily double resource costs. Regardless of the specifics, high availability is a complex undertaking and it can be hard to know how robust a solution really is.

CrystalDB’s cloud native architecture provides new mechanisms for ensuring availability. With AutoDBA, your design choices are reduced to just one: Whether to spend more to get an extra “9” of availability.

We have integrated robustness considerations throughout the architecture. We replicate WAL writes synchronously to multiple data centers, ensuring that changes are recorded durably before the database confirms a commit. This makes the database recoverable, but ensuring quick recovery requires additional processing. When it determines that it is necessary for meeting the availability target, AutoDBA materializes log records to create a current image of the database on another system, which is equivalent to rolling forward the log on a replica. Similarly, AutoDBA may maintain the database working set in memory on another server, further improving recovery time. The decision to use these mechanisms occurs automatically based on workload analysis and observations and assumptions that we make about the reliability of the underlying cloud.

CrystalDB also incorporates mechanisms to help protect the database from corruption, which is a sure way to lose availability. It validates all writes, ensuring that WAL records, tables, and indexes all contain valid PostgreSQL data structures. End-to-end checksums and authenticated encryption further protect stored data.