August 17th, 2024

Oxide: Control plane data storage requirements

The document specifies requirements for a control plane data storage system for Oxide, highlighting the need for high availability, scalability, security, and a thorough evaluation of NewSQL technologies.

Read original articleLink Icon
Oxide: Control plane data storage requirements

The document outlines the requirements for a control plane data storage system for Oxide, emphasizing the need for a highly available and horizontally scalable solution. It details the types of data that must be stored, including instances, virtual disks, networking resources, and user information. Key requirements include durable read/write/delete capabilities, strong consistency, high availability, and hands-off operation to minimize human intervention. The system should also support security measures such as mutual authentication and data encryption. The document discusses potential technologies for implementation, focusing on NewSQL systems like CockroachDB and Yugabyte, while ruling out traditional RDBMS and NoSQL systems due to their limitations in scalability and operational complexity. The evaluation process for selecting a suitable technology involves extensive testing and analysis of performance under various workloads and failure conditions. The document concludes with a call for a thorough investigation of existing technologies before considering building a custom solution.

- The control plane data storage system must support high availability and horizontal scalability.

- Key data types include instances, virtual disks, networking resources, and user information.

- Security features such as mutual authentication and data encryption are essential.

- NewSQL systems are preferred for their cloud-native capabilities and support for ACID transactions.

- A comprehensive evaluation process is necessary to ensure the selected technology meets operational requirements.

Link Icon 5 comments
By @willbicks - 3 months
Ultimately, they selected CockroachDB, as described in "RFD 110: CockroachDB for the control plane database" [1]. Now, published just yesterday, "RDD 508: Whither CockroachDB?" [2] discusses what to do in light of Cockroach going proprietary.

[1]: https://rfd.shared.oxide.computer/rfd/0110 [2]: https://rfd.shared.oxide.computer/rfd/0508

By @znpy - 3 months
> Based on past experience, the reputation of a system or stories about it being used by other organizations are weak data points. We will want to independently verify any properties we care about.

That's an hidden pearl of wisdom right there.

By @evanjrowley - 3 months
RFD = Request for Decision

This CockroachDB issue is an example of their public decision making process.

RFDs described in detail here: https://rfd.shared.oxide.computer/rfd/0001

I was curious to know what type of tool this is built on. Sounds like it's a static site generator that can process AsciiDoc, but I don't have any more detail than that. The links to GitHub repos in section 5 were all broken - maybe it's private?

By @vilunov - 3 months
Where can I read about what exactly Oxide is? The main page states "No Cables. No Assembly. Just Cloud" and not much besides that.
By @arthurcolle - 3 months
this is so cool, these guys are literally from the year 3000 lol