docs: adopt Embedded/Distributed terminology across docs and SDKs (#4713)

## Summary

Adopts the product terminology guide across the docs site pages, SDK
docstrings and error messages. "LanceDB OSS" and local mode become
**LanceDB Embedded**. "Remote" as the execution model becomes **LanceDB
Distributed**, which LanceDB Enterprise provides. Where free vs paid is
the point, pages contrast "LanceDB Embedded (open source)" with "LanceDB
Enterprise". This is a first trial of the Embedded name, so reviewers
can judge it in context.

- **Embedded vs Distributed** for where execution runs (`optimize()`,
consistency, branching, maintenance). Main pages define it once:
"LanceDB Enterprise runs LanceDB Distributed: …"
- **LanceDB Cloud** is kept only for legacy-Cloud specifics (`db://`
region, the brute-force KNN limit) and marked legacy. "Cloud and
Enterprise" becomes Enterprise or Distributed.
- **Plan executor** becomes "executor" or the fleet name.
- **Error messages** change, e.g. `optimize is not supported for remote
tables.` → `... in LanceDB Distributed.` Tests that match on them are
updated.
- **Vale rules** (`EmbeddedName`, `OSSProduct`, `RemoteExecution`,
`DistributedEnterprise`, `LegacyCloud`, `InternalNames`) enforce the
terms in prose.

Unchanged: identifiers (`availability.oss`, the `remote` module and
feature, `RemoteTable`, `db://`), heading anchors, internal code
comments, and Geneva.

## Evidence

- Rust lib tests for the changed messages and the Python tests in
`test_remote_db.py`, `test_materialized_views.py` and `test_table.py`
pass locally.
- Not run locally:
- The Node tests: `remote.test.ts` and `table.test.ts` have updated
assertions.
  - Vale.
  - The `experimental_functions`-marked materialized-view tests.
- `docs/src` API reference was hand-edited to match the docstrings
rather than regenerated.

## Merge Risk

**Door:** two-way; prose and message text only.
**Blast Radius:** `docs`, `error-messages`: callers matching on old
error strings would break.

Companion PRs: lancedb/docs (assembler labels, STYLE.md) and sophon
(Enterprise pages).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Will Jones
2026-10-28 14:04:41 -07:00
committed by GitHub
co-authored by Claude Opus 5.5
parent b4cbaf2f67
commit 4d7a64712f
148 changed files with 981 additions and 755 deletions
+6 -6
View File
@@ -1,10 +1,10 @@
# Java SDK
The LanceDB Java SDK provides a convenient way to interact with LanceDB Cloud and Enterprise deployments using the Lance REST Namespace API.
The LanceDB Java SDK provides a convenient way to interact with LanceDB Enterprise deployments using the Lance REST Namespace API.
!!! note
The Java SDK currently only works for LanceDB remote database that connects to LanceDB Cloud and Enterprise.
Local database support is a work in progress. Check [LANCEDB-2848](https://github.com/lancedb/lancedb/issues/2848) for the latest progress.
The Java SDK currently only works with LanceDB Distributed, connecting to LanceDB Enterprise or LanceDB Cloud (legacy).
LanceDB Embedded support is a work in progress. Check [LANCEDB-2848](https://github.com/lancedb/lancedb/issues/2848) for the latest progress.
## Installation
@@ -20,7 +20,7 @@ Add the following dependency to your `pom.xml`:
## Quick Start
### Connecting to LanceDB Cloud
### Connecting to LanceDB Cloud (legacy)
```java
import com.lancedb.LanceDbNamespaceClientBuilder;
@@ -51,8 +51,8 @@ LanceNamespace namespaceClient = LanceDbNamespaceClientBuilder.newBuilder()
|--------|-------------|----------|
| `apiKey(String)` | LanceDB API key | Yes |
| `database(String)` | Database name | Yes |
| `endpoint(String)` | Custom endpoint URL for Enterprise deployments | No |
| `region(String)` | AWS region (default: "us-east-1") | No |
| `endpoint(String)` | Custom endpoint URL for LanceDB Enterprise deployments | No |
| `region(String)` | LanceDB Cloud (legacy) region (default: "us-east-1") | No |
| `config(String, String)` | Additional configuration parameters | No |
### Opening a Table with Vended Credentials
+3 -3
View File
@@ -180,9 +180,9 @@ abstract createMaterializedView(
Define a materialized view named `name` over the table `source`.
Local creation and refresh require a source build with the
LanceDB Embedded creation and refresh require a source build with the
`experimental-functions` Cargo feature, disabled in published packages.
Remote Cloud/Enterprise operations do not require this feature.
LanceDB Distributed operations do not require this feature.
The view is populated before creation returns. Set `withNoData` to create
only its definition and empty backing table. The view is a normal table:
@@ -827,7 +827,7 @@ abstract renameTable(
Rename a table.
Currently only supported by LanceDB Cloud. Local OSS connections and
Currently only supported in LanceDB Distributed. LanceDB Embedded connections and
namespace-backed connections (via [connectNamespace](../functions/connectNamespace.md)) reject with
a "not supported" error.
+14 -13
View File
@@ -69,9 +69,9 @@ abstract addColumns(newColumnTransforms): Promise<AddColumnsResult>
Add new columns with defined values.
Local computed-column declaration and refresh require a source build with
the `experimental-functions` Cargo feature. Published packages disable it;
remote Cloud/Enterprise operations remain available.
LanceDB Embedded computed-column declaration and refresh require a source
build with the `experimental-functions` Cargo feature. Published packages
disable it; LanceDB Distributed operations remain available.
The `{ computed }` form stores the expression rather than evaluating it
now: the column is committed with no values, and rows get them from
@@ -83,7 +83,7 @@ computed, so a mutated input is reflected by the next refresh. While a
declaration reads a column, that column cannot be renamed, retyped or
dropped.
On LanceDB Cloud and Enterprise the expression is planned by the
In LanceDB Distributed the expression is planned by the
server, and the refresh runs as a server job -- see
[Table#refreshColumnAsync](Table.md#refreshcolumnasync).
@@ -679,7 +679,7 @@ The per-row errors Function refreshes recorded on this table.
A refresh running under a skip policy records each row it skipped with
the input that failed and the error. This lists those records, newest
job first, plus a summary for any fragment whose per-row detail was
capped. LanceDB Cloud and Enterprise only; reading errors needs read
capped. LanceDB Distributed only; reading errors needs read
access to the table, since a message carries the value that failed.
#### Parameters
@@ -932,7 +932,7 @@ Prewarm one or more columns of data in the table.
Prewarming is generally useful for columns used in filters or projections.
Large columns (e.g. high-dimensional vectors or binary data) may not be
practical to prewarm.
This feature is currently only supported on remote tables.
This feature is currently only supported in LanceDB Distributed.
#### Returns
@@ -1043,8 +1043,8 @@ Local refresh requires a source build with `experimental-functions`.
Rows appended since the last refresh are filled by the next one, and
rows whose inputs changed since they were computed are recomputed;
everything else is left as it is. Local tables only: a remote refresh
runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync).
everything else is left as it is. LanceDB Embedded only: in LanceDB
Distributed a refresh runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync).
#### Parameters
@@ -1068,14 +1068,15 @@ abstract refreshColumnAsync(column): Promise<Job>
Like [Table#refreshColumn](Table.md#refreshcolumn), but returns a handle to the refresh
job instead of blocking until it completes.
Local refresh requires a source build with `experimental-functions`.
Remote Cloud/Enterprise jobs do not require this feature.
LanceDB Embedded refresh requires a source build with
`experimental-functions`. LanceDB Distributed jobs do not require this
feature.
The job may already be complete when returned; callers must not assume
the column is filled until [Job.wait](Job.md#wait) resolves. Invalid input --
an unknown column, or one that is not computed -- rejects here rather
than failing the job. On local tables the job runs in-process; on
LanceDB Cloud and Enterprise it is the server's backfill job.
than failing the job. In LanceDB Embedded the job runs in-process; in
LanceDB Distributed it is the server's backfill job.
#### Parameters
@@ -1304,7 +1305,7 @@ Tokenize a full-text search query using the tokenizer configured on an FTS index
Specify exactly one of `column` or `indexName`.
Model-backed tokenizers such as `jieba/*` and `lindera/*` are rebuilt in
the client process from index metadata. For remote tables, this means the
the client process from index metadata. In LanceDB Distributed, this means the
same tokenizer model files must also exist locally (under
`LANCE_LANGUAGE_MODEL_HOME`) and must match the files the server uses. A
mismatch cannot be detected: the returned tokens may differ from what the
+5 -5
View File
@@ -20,15 +20,15 @@ Connect to a LanceDB instance at the given URI.
Accepted formats:
- `/path/to/database` - local database
- `/path/to/database` - database on the local file system
- `s3://bucket/path/to/database` or `gs://bucket/path/to/database` - database on cloud storage
- `db://host:port` - remote database (LanceDB cloud)
- `db://host:port` - LanceDB Enterprise or LanceDB Cloud (legacy) database
### Parameters
* **uri**: `string`
The uri of the database. If the database uri starts
with `db://` then it connects to a remote database.
with `db://` then it connects to LanceDB Enterprise or LanceDB Cloud (legacy).
* **options?**: `Partial`&lt;[`ConnectionOptions`](../interfaces/ConnectionOptions.md)&gt;
The options to use when connecting to the database
@@ -80,9 +80,9 @@ Connect to a LanceDB instance at the given URI.
Accepted formats:
- `/path/to/database` - local database
- `/path/to/database` - database on the local file system
- `s3://bucket/path/to/database` or `gs://bucket/path/to/database` - database on cloud storage
- `db://host:port` - remote database (LanceDB cloud)
- `db://host:port` - LanceDB Enterprise or LanceDB Cloud (legacy) database
### Parameters
+1 -1
View File
@@ -18,7 +18,7 @@ function connectNamespace(
Connect to a LanceDB database through a namespace.
Unlike [connect](connect.md), which routes by URI scheme (local path vs.
`db://` cloud), `connectNamespace` always returns a namespace-backed
`db://`), `connectNamespace` always returns a namespace-backed
connection. The `implName` selects the namespace implementation:
- `"dir"` — directory namespace, configured with [DirNamespaceConfig](../interfaces/DirNamespaceConfig.md).
+2 -2
View File
@@ -18,8 +18,8 @@ optional allowExternalBlobOutsideBases: boolean;
Whether blob URIs outside registered external bases may be written.
Defaults to `false`. This option is supported only for local/native
tables; remote tables return an error when it is enabled. An enabled write
Defaults to `false`. This option is supported only in LanceDB Embedded;
LanceDB Distributed returns an error when it is enabled. An enabled write
stores the absolute URI reference without registering a base or copying
the external object into the database. The object must remain accessible
when the blob is read later.
+1 -1
View File
@@ -80,7 +80,7 @@ optional userId: string;
User identifier for tracking purposes.
This is sent as the `x-lancedb-user-id` header in requests to LanceDB Cloud/Enterprise.
This is sent as the `x-lancedb-user-id` header in requests to LanceDB Enterprise.
It can be set directly, or via the `LANCEDB_USER_ID` environment variable.
Alternatively, set `LANCEDB_USER_ID_ENV_KEY` to specify another environment
variable that contains the user ID value.
+10 -10
View File
@@ -14,7 +14,7 @@
optional apiKey: string;
```
(For LanceDB cloud only): the API key to use with LanceDB Cloud.
(For LanceDB Enterprise or LanceDB Cloud only): the API key to use.
Can also be set via the environment variable `LANCEDB_API_KEY`.
@@ -26,7 +26,7 @@ Can also be set via the environment variable `LANCEDB_API_KEY`.
optional clientConfig: ClientConfig;
```
(For LanceDB cloud only): configuration for the remote HTTP client.
(For LanceDB Enterprise or LanceDB Cloud only): configuration for the HTTP client.
***
@@ -36,8 +36,8 @@ optional clientConfig: ClientConfig;
optional hostOverride: string;
```
(For LanceDB cloud only): the host to use for LanceDB cloud. Used
for testing purposes.
(For LanceDB Enterprise only): the host of the LanceDB Enterprise
deployment to connect to.
***
@@ -47,7 +47,7 @@ for testing purposes.
optional manifestEnabled: boolean;
```
(For LanceDB OSS only): use directory namespace manifests as the source
(For LanceDB Embedded only): use directory namespace manifests as the source
of truth for table metadata. Existing directory-listed root tables are
migrated into the manifest on access.
@@ -59,7 +59,7 @@ migrated into the manifest on access.
optional namespaceClientProperties: Record<string, string>;
```
(For LanceDB OSS only): extra properties for the backing namespace
(For LanceDB Embedded only): extra properties for the backing namespace
client used by manifest-enabled native connections.
***
@@ -70,7 +70,7 @@ client used by manifest-enabled native connections.
optional oauthConfig: NativeOAuthConfig;
```
(For LanceDB cloud only): OAuth configuration for IdP-based
(For LanceDB Enterprise only): OAuth configuration for IdP-based
authentication (e.g., Azure Entra ID). When set, token acquisition
and refresh are handled entirely in Rust. TypeScript users should pass
the public `OAuthConfig` type exported from `@lancedb/lancedb`.
@@ -105,7 +105,7 @@ storage, raising per-read latency and cost.
optional region: string;
```
(For LanceDB cloud only): the region to use for LanceDB cloud.
(For LanceDB Cloud only): the region to use for LanceDB Cloud (legacy).
Defaults to 'us-east-1'.
***
@@ -116,7 +116,7 @@ Defaults to 'us-east-1'.
optional session: Session;
```
(For LanceDB OSS only): the session to use for this connection. Holds
(For LanceDB Embedded only): the session to use for this connection. Holds
shared caches and other session-specific state.
***
@@ -127,6 +127,6 @@ shared caches and other session-specific state.
optional storageOptions: Record<string, string>;
```
(For LanceDB OSS only): configuration for object storage.
(For LanceDB Embedded only): configuration for object storage.
The available options are described at https://docs.lancedb.com/storage/
+10 -10
View File
@@ -31,7 +31,7 @@ optional createdAt: Date;
When the index was created.
`undefined` for remote tables or indices created before timestamps were tracked.
`undefined` in LanceDB Distributed or indices created before timestamps were tracked.
***
@@ -43,8 +43,8 @@ optional indexDetails: any;
Index-type-specific details parsed as a JavaScript object.
Falls back to a raw string if JSON parsing fails. `undefined` for
remote tables or when details are unavailable.
Falls back to a raw string if JSON parsing fails. `undefined` in
LanceDB Distributed or when details are unavailable.
***
@@ -66,7 +66,7 @@ optional indexUuid: string;
The UUID of the first segment of the index.
`undefined` for remote tables, which do not yet surface this.
`undefined` in LanceDB Distributed, which does not yet surface this.
***
@@ -78,7 +78,7 @@ optional indexVersion: number;
The on-disk index format version.
`undefined` for remote tables.
`undefined` in LanceDB Distributed.
***
@@ -100,7 +100,7 @@ optional numIndexedRows: number;
The number of rows indexed, across all segments.
May be `undefined` for remote tables if the server does not report it.
May be `undefined` in LanceDB Distributed if the server does not report it.
***
@@ -112,7 +112,7 @@ optional numSegments: number;
The number of segments that make up the index.
`undefined` for remote tables.
`undefined` in LanceDB Distributed.
***
@@ -124,7 +124,7 @@ optional numUnindexedRows: number;
The number of rows not yet covered by this index.
May be `undefined` for remote tables if the server does not report it.
May be `undefined` in LanceDB Distributed if the server does not report it.
***
@@ -136,7 +136,7 @@ optional sizeBytes: number;
The total size in bytes of all index files across all segments.
`undefined` for remote tables or indices without size tracking.
`undefined` in LanceDB Distributed or indices without size tracking.
***
@@ -148,4 +148,4 @@ optional typeUrl: string;
The protobuf type URL, a precise type identifier for the index.
`undefined` for remote tables.
`undefined` in LanceDB Distributed.
@@ -14,7 +14,7 @@
optional mode: string;
```
How the view was brought up to date: "rebuild", or absent for remote SQL refreshes.
How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes.
***
@@ -24,7 +24,7 @@ How the view was brought up to date: "rebuild", or absent for remote SQL refresh
optional rowsWritten: number;
```
Rows written by this refresh, or absent for remote SQL refreshes.
Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes.
***
@@ -34,7 +34,7 @@ Rows written by this refresh, or absent for remote SQL refreshes.
optional sourceVersion: number;
```
Source version refreshed to, or absent for remote SQL refreshes.
Source version refreshed to, or absent for LanceDB Distributed SQL refreshes.
***
+1 -1
View File
@@ -21,4 +21,4 @@ optional signal: AbortSignal;
```
Cancels the read. The call rejects with `signal.reason`, and the native
read stops, including in-flight requests to a remote table.
read stops, including in-flight requests to a LanceDB Distributed table.
+17 -17
View File
@@ -27,8 +27,8 @@ connect, per-table storage and write options on create, and `index_cache_size`,
Omit these options to use server-managed storage and caching. Connection-level
`storage_options` supported by an Enterprise deployment remain available.
The synchronous remote `create_table` uses the same positional order as the
local API: `name, data, schema, mode, exist_ok, on_bad_vectors, fill_value,
The synchronous LanceDB Distributed `create_table` uses the same positional order as the
LanceDB Embedded API: `name, data, schema, mode, exist_ok, on_bad_vectors, fill_value,
embedding_functions`. Prefer keyword arguments for optional parameters.
## Connections (Synchronous)
@@ -227,14 +227,14 @@ async for entry in catalog.authz.list_acls(subject=Subject.role("reader")):
## Remote SQL
Submit SQL against a remote LanceDB database through the connection.
Submit SQL against a LanceDB Distributed database through the connection.
The connected database and `default_namespace_path=["public"]` are used for
unqualified tables. Fully qualified references can still query other databases
and namespaces available to the same deployment. `execute_query` returns a
reader as soon as its initial result stream is available. `execute_query_async`
returns a query handle once submission is accepted; use it to inspect progress, open a reader,
or cancel the query. The SQL client is initialized by the first query and
retained for the lifetime of the remote connection. Query ids are random,
retained for the lifetime of the connection. Query ids are random,
connection-scoped references rather than encoded SQL or durable resume tokens.
Both APIs start with one Flight call. The server can stream results on that
@@ -308,24 +308,24 @@ listing a storage directory.
## Tables (Synchronous)
Local and remote tables use the same arguments for index creation, deletion,
LanceDB Embedded and LanceDB Distributed tables use the same arguments for index creation, deletion,
index statistics, and search. For example, `table.delete(where="id = 1")`,
`table.create_index("cosine", 2)` (the deprecated vector API), and
`table.search([1.0, 1.0], fast_search=True)` work with either backend.
`fast_search=True` excludes rows that have not been indexed.
`create_scalar_index` defaults to `replace=True` on both backends. Both scalar
and full-text index creation accept `wait_timeout`. Remote maintenance methods
accept the local options: cleanup and compaction warn that they are no-ops,
and full-text index creation accept `wait_timeout`. LanceDB Distributed maintenance methods
accept the LanceDB Embedded options: cleanup and compaction warn that they are no-ops,
while `optimize` reports an unsupported operation. Removed Tantivy options
produce the same explanatory errors on both backends.
The old remote keyword names `predicate` for `delete`, `index_name` for
The old LanceDB Distributed keyword names `predicate` for `delete`, `index_name` for
`drop_index`, `index_uuid` for `index_stats`, and `column` for `create_fts_index`
remain available with deprecation warnings. Use `where`, `name`, `index_name`,
and `field_names`, respectively. For positional calls, use the argument order
documented by `Table` below; specify index options by keyword when migrating
code that used the former remote-only argument order.
code that used the former LanceDB Distributed-only argument order.
::: lancedb.table.Table
@@ -429,14 +429,14 @@ scoped to each invocation and support `read`, `readinto`, `seek`, `tell`,
## Materialized Views (Synchronous)
In the 0.41 SDK release, local materialized-view creation and refresh require a
In the 0.41 SDK release, LanceDB Embedded materialized-view creation and refresh require a
source build with the `experimental-functions` Cargo feature. Published Python
packages leave it disabled. Opening, reading, listing and dropping existing views
remain available, as do remote Cloud and Enterprise operations. The same feature
requirement applies to local SQL computed-column declaration and refresh; ordinary
remain available, as do LanceDB Distributed operations. The same feature
requirement applies to LanceDB Embedded SQL computed-column declaration and refresh; ordinary
eager `add_columns` transforms remain available.
On Cloud and Enterprise, creation accepts `auto_refresh_enabled` and
In LanceDB Distributed, creation accepts `auto_refresh_enabled` and
`auto_refresh_interval_seconds`:
```python
@@ -581,13 +581,13 @@ pylance, LanceDB uses a matching `lance.blob.v2` extension type so blob columns
still work. Native table queries return descriptors. Call
[`fetch_blob_files`][lancedb.table.Table.fetch_blob_files] for lazy reads or
[`fetch_blobs`][lancedb.table.Table.fetch_blobs] for eager bytes.
Local tables support these fetch APIs for both legacy blob v1 columns
LanceDB Embedded supports these fetch APIs for both legacy blob v1 columns
(`lance-encoding:blob`) and blob v2 columns. For legacy columns, obtain row IDs
with `search().with_row_id(True).to_arrow()` and pass the result to the fetch API.
One missing or deleted row ID rejects the entire blob-read batch; the APIs do
not return partial results.
Remote SQL returns blob bytes by default. Select `blob_descriptor(video)` to
LanceDB Distributed SQL returns blob bytes by default. Select `blob_descriptor(video)` to
return an openable reference instead, then use
[`open_blob_file`][lancedb.table.Table.open_blob_file] or the lazy iterable
[`open_blob_files`][lancedb.table.Table.open_blob_files]:
@@ -604,7 +604,7 @@ for row in rows.to_pylist():
frame = extract_frame(video, row["timestamp"])
```
This example uses a remote SQL connection that produces source-bearing
This example uses a LanceDB Distributed SQL connection that produces source-bearing
descriptors. The descriptor contains `kind`, `position`, `size`, `blob_id`,
`blob_uri`, and a `source` struct with `uri`, `version`, `committed_at_micros`,
`branch`, `column`, `row_reference`, and `row_is_address`. The opener verifies
@@ -636,7 +636,7 @@ async for video in async_videos.open_blob_files(rows["video"]):
```
Payload bytes load on reads. Opening an external blob with unspecified size
can issue a metadata-only HEAD request. Remote reads use authenticated range
can issue a metadata-only HEAD request. LanceDB Distributed reads use authenticated range
requests that validate the captured URI and commit timestamp.
Blobs inside lists can be written and queried as descriptors. They are omitted