Talk with our engineers by joining the new Onehouse community Slack!

Core capabilities

Compute runtime

Every workload in Onehouse runs on a compute cluster. You create clusters in the console or through the API. When you create one, you choose three things: the cluster type, based on the workload you want to run on it; the instance type its nodes run on; and the minimum and maximum size it can scale between. You can create as many clusters as you need, for example one per team or one per pipeline, and each one scales independently.

Diagram of virtual clusters (Managed, SQL, Spark, Notebook, Lakegres, Open Engines) running on the Onehouse Compute Runtime, which places them on instance types in your Kubernetes cluster.

Several compute clusters run on one Kubernetes cluster in your account. Each has its own instance type and size range. You can also set a limit for the whole project.

Cluster types

Pick a cluster type based on the workload you want to run. You can’t change a cluster’s type later, so create a separate cluster for each kind of workload.

Type Use it for
Managed Ingestion Flows, table services, and catalog sync through OneSync
SQL SQL ETL pipelines from dbt, Airflow, and other JDBC clients
Spark Spark jobs in Python, Java, or Scala
Notebook Jupyter notebooks with PySpark
Lakegres Low-latency interactive SQL for apps and agents, over the Postgres wire protocol
Open Engines Trino, Flink, or Ray

Onehouse also runs two small clusters of its own in every project. The System cluster runs monitoring, scheduling, and autoscaling. The Connector cluster runs source connectors, such as object storage event listeners and CDC readers, and exists only when you have file or database sources.

Instance types

When you create a cluster, you choose the instance type its nodes run on. Usage is measured in Onehouse Compute Units (OCU): one OCU is four cores running for one hour, on any instance family. An 8-core instance running for an hour uses 2 OCU.

Instance Spec OCU / hour Cluster types
oh-general-4 4 vCPU, 16 GB 1.0 All
oh-general-8 8 vCPU, 32 GB 2.0 All
oh-general-16 16 vCPU, 64 GB 4.0 All
oh-gpu-4 1 GPU, 24 GB GPU RAM, 4 vCPU, 16 GB 5.6 Ray only

On AWS, the oh-general family runs on Graviton m8g instances; on Google Cloud, on e2-standard. Project admins can also define custom instance types from the instance families they already have reserved with their cloud provider, so data workloads use up those reservations before paying on-demand prices. The same mechanism covers memory-heavy or local-NVMe instances, and Onehouse adds others on request.

Scaling and resource sharing

Each cluster has a minimum and maximum OCU. The minimum keeps that much capacity running, so work starts without waiting for new nodes. The maximum is a hard cap on spend: a cluster at its maximum stops growing, and new work waits for capacity. Between the two, Onehouse scales the cluster up and down with the load.

You can also set an OCU limit for the whole project. Clusters then scale within that limit, and capacity goes to whichever workloads need it at the time.

Onehouse keeps your bill down in three ways:

  • Spot capacity. Workers can run on spot instances, while drivers stay on on-demand instances so a job does not lose its driver.
  • Shared instances. Onehouse packs pods from several clusters onto the same instances, isolated from each other. A cluster that needs two cores and another that needs one share a single four-core instance.
  • Idle shutdown. An instance that sits idle for ten minutes is terminated.

Attached storage

Each instance gets block storage for shuffle and disk spill. Onehouse sizes it from the instance; you can set custom sizes through the API. On AWS:

Instance cores Storage Volumes IOPS Throughput
4 250 GB 2 × 125 GB 6,000 250 MiB/s
8 500 GB 4 × 125 GB 9,000 500 MiB/s
16 1,000 GB 4 × 250 GB 12,000 750 MiB/s
32 2,000 GB 4 × 500 GB 12,000 750 MiB/s
64 4,000 GB 4 × 1 TB 16,000 1,000 MiB/s
96 6,000 GB 3 × 2 TB 16,000 1,000 MiB/s
192 12,000 GB 4 × 3 TB 16,000 1,000 MiB/s

Instances with local NVMe use their local disks instead, since they are faster.

Usage and alerts

The usage dashboard shows OCU consumption over time by cluster and instance type, with estimated cost. Usage is measured from the instances running in your account. Each cluster alerts you in the console, by email, and in Slack when it reaches a set share of its maximum OCU, 80 percent by default.

What runs underneath

Every cluster type runs on the Onehouse Compute Runtime, which runs the workloads on Kubernetes for you. Its autoscaler adds and removes capacity as load changes, it tunes jobs while they run, and its I/O layer is built for object storage. Nodes are spread across the availability zones you provide (at least two on AWS). Managed, SQL, Spark, Notebook, and Lakegres clusters run on Quanton, Onehouse’s execution engine. It runs Spark jobs, Spark SQL, PySpark notebooks, and Lakegres queries, and your existing Spark code runs on it unchanged and faster; quanton.dev/benchmarks has the current numbers. For the details, see Introducing the Onehouse Compute Runtime and the Quanton engine page.

Further reading