...

Description

In-code abstraction

In-memory instance

Unix process

Running container

Routes SQL clients to the right server

“SQL proxy”

“SQL proxy instance”

“SQL proxy server”

“SQL proxy pod”

Runs SQL queries

“SQL”or “SQL gateway”

“SQL instance”

“SQL server”or “SQL-only server” to highlight server contains no KV instance

“SQL pod”(implies “SQL-only server”)

Runs KV queries

“KV components” (plural)

“KV instance”

“KV server” but the term is inclusive of mixed servers, we don't yet support KV-only servers.

N/A, we don't currently run KV-only servers.

Stores data for multiple tenants, 1 unit

NEW: “Shared storage server”

NEW: “Shared storage pod”

Runs both SQL and KV queries

NEW: “Mixed SQL/KV servers”

NEW: “Mixed SQL/KV pods”

Stores data for all tenant, fleet of all servers

NEW: “Shared storage cluster”

NEW: “Shared storage cluster”

N/A

N/A

We also use the word “node” to designate either a unix process or Docker container, when the distinction does not matter.

All-the-things: host clusters

In CockroachCloud deployments, we need a word to designate a complete fleet consisting of:

  • a single storage cluster

  • all the SQL servers /pods connected to it

  • one or more SQL proxy directing traffic to the SQL pods

  • the corresponding DNS service, Prometheus instance, Kubernetes configuration, etc

This complete fleet of “All the things” is named a Serverless host cluster.

...

Logical components: the account administrator's view

...

There's currently some UX misdesign, in that the existence of two separate virtual clusters is not clear to the user of cockroach demo. We know about this shortcoming and it should get fixed at some point.

Serverless Host Clusters: all-the-things

The CC deployment tooling needs to name the fleet of all components running around a storage cluster to support Serverless tenants.

We’ve called this the “Serverless Host Cluster”, often simplified “host cluster” and this includes:

  • one storage cluster

  • all the SQL servers connected to it

  • the accompanying Prometheus instance

  • the accompanying DNS glue service

  • one or more K8s clusters supporting the configuration (we need more than one when the host cluster is spread across multiple regions).

  • any other run-time components around the same storage cluster.

...

Logical concepts

The essence of the multi-tenant architecture is to introduce logical boundaries inside of a shared architecture  — for the purpose of separate billing, running client apps side-by-side, avoiding interference, etc. So we also need words to designate those things that have received logical boundaries.

...