...
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.
...