Query execution across ClickHouse and Lance

The query coordinator in the customer cloud plans each SQL statement with DataFusion. Public facts come from ClickHouse in Boundary. Private columns come from Lance datasets in the customer bucket, read through a cache on local NVMe.

Coordinator opens Boundary connections Boundary never connects into the customer cloud Private predicates stay in the customer cloud

ClickHouse in Boundary: public facts

Execution and call identifiers, fqn, revision_id, status, started_at, duration_ns, the stream and data segment that hold each call, and availability states such as args_state. Public-only queries end here.

ClickHouse never holds value bodies, previews, source text or query literals that apply to private values.

Lance in the customer bucket: private columns

args, output, error, typed derived fields such as args['invoice']['id'] and an n-gram text index. They live as rebuildable Lance datasets in customer S3.

DataFusion in the coordinator reads them through a Foyer cache on local NVMe. Losing the cache changes latency, not results.

Public-onlyEvery referenced column is public. Runs in ClickHouse. Reads no Lance data.
PrivateReads a known call's values. One identity lookup, then one Lance row.
MixedPublic predicates prune in ClickHouse. Private predicates run over Lance. The coordinator joins.
BackgroundToo costly to be interactive, or requested by the caller. Returns a job ID, reports progress, writes a downloadable result.

Choose an example, then use Next step. ← →

0ClickHouse rows scanned 0Rows received from ClickHouse 0Lance rows read 0Result rows ready
Portable SQLIllustrative dataset


          
Inspect the DataFusion plan

The highlighted operator follows the current step. Read the logical plan from the scan at the bottom toward the result at the top.

Execution pathBoundary and Lance calls are coordinator-initiated
Query coordinator execution path The client calls the query coordinator in the customer cloud. The coordinator initiates outbound calls to the Boundary resident query API, which runs public subqueries on ClickHouse, and reads private columns from Lance datasets in the customer bucket through an NVMe cache. Customer cloud Boundary cloud SQL query outbound HTTPS scoped SQL private operations Boundary cannot open a connection into the customer cloud Client Studio · CLI · agent Coordinator DataFusion planner container with local NVMe Resident query API reparse · scope · budget Arrow on the same connection ClickHouse public facts Lance datasets Lance in S3 · NVMe cache private columns · indexes SQL

Client result

Inspect source rows and Lance reads Changes with each step

Dimmed rows are outside the current selection. Struck-out columns are not scanned. Private columns are highlighted only when the coordinator reads them; they never leave the customer cloud.

ClickHouse public facts

Allowlisted facts projected into Boundary.

Boundary

Lance private columns

Private rows in the customer bucket.

Customer cloud

Takeaways