diff --git a/.github/vale/README.md b/.github/vale/README.md index 2cfbd1633..94a11bfd8 100644 --- a/.github/vale/README.md +++ b/.github/vale/README.md @@ -4,10 +4,11 @@ come from the `LanceDB.zip` asset of `lancedb/docs` release `vale-lancedb-v0.1.0`, whose archive SHA-256 is `0730a43e919774121068811d5687c61dfc7a0421cff78e1393f5e565b622cb0f`. -`ProductNames` no longer swaps in "LanceDB OSS". +`ProductNames` no longer swaps in "LanceDB OSS" and now recommends +"LanceDB Enterprise" for the retired "LanceDB Distributed" name. The product-terminology rules were added here: `EmbeddedName`, -`RemoteExecution`, `OSSProduct`, `DistributedEnterprise`, `InternalNames` +`RemoteExecution`, `OSSProduct`, `InternalNames` (warnings) and `LegacyCloud` (suggestion). They enforce the names in the docs repository's `STYLE.md#names`. Run every rule's tests from `.github/vale` with `vale test --coverage styles`. diff --git a/.github/vale/styles/LanceDB/DistributedEnterprise.yml b/.github/vale/styles/LanceDB/DistributedEnterprise.yml deleted file mode 100644 index 813d10375..000000000 --- a/.github/vale/styles/LanceDB/DistributedEnterprise.yml +++ /dev/null @@ -1,19 +0,0 @@ -extends: existence -message: "'%s' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both." -link: https://github.com/lancedb/docs/blob/main/STYLE.md#names -level: warning -ignorecase: false -tokens: - - 'Distributed(?:\s+(?:and|or)\s+|\s*/\s*)(?:LanceDB\s+)?Enterprise' - - 'Enterprise(?:\s+(?:and|or)\s+|\s*/\s*)(?:LanceDB\s+)?Distributed' -tests: - - name: flags Distributed and Enterprise side by side - input: Choose Distributed or Enterprise. LanceDB Enterprise and LanceDB Distributed differ, and so does Distributed/Enterprise. - want: | - 1:8:LanceDB.DistributedEnterprise:'Distributed or Enterprise' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both. - 1:43:LanceDB.DistributedEnterprise:'Enterprise and LanceDB Distributed' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both. - 1:98:LanceDB.DistributedEnterprise:'Distributed/Enterprise' reads as two products. LanceDB Enterprise provides LanceDB Distributed: name the product or the execution model, not both. - - name: leaves the defining sentence and the Embedded pair alone - input: | - LanceDB Enterprise runs LanceDB Distributed. Compare Embedded and Distributed execution. Distributed search and enterprise teams are fine. - want: '' diff --git a/.github/vale/styles/LanceDB/LegacyCloud.yml b/.github/vale/styles/LanceDB/LegacyCloud.yml index 668f66011..932b7a7db 100644 --- a/.github/vale/styles/LanceDB/LegacyCloud.yml +++ b/.github/vale/styles/LanceDB/LegacyCloud.yml @@ -1,5 +1,5 @@ extends: existence -message: "'%s' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'." +message: "'%s' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'." link: https://github.com/lancedb/docs/blob/main/STYLE.md#names level: suggestion ignorecase: false @@ -13,8 +13,8 @@ tests: - name: suggests checking each LanceDB Cloud mention input: Connect to LanceDB Cloud with an API key. Cloud/Enterprise users get the cache. want: | - 1:12:LanceDB.LegacyCloud:'LanceDB Cloud' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'. - 1:43:LanceDB.LegacyCloud:'Cloud/Enterprise' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise' or 'LanceDB Distributed'. + 1:12:LanceDB.LegacyCloud:'LanceDB Cloud' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'. + 1:43:LanceDB.LegacyCloud:'Cloud/Enterprise' is the legacy hosted service. Unless the text is specific to it, write 'LanceDB Enterprise'. - name: leaves other clouds and code alone input: | Deploy into your own cloud account on Google Cloud. Pass `LanceDB Cloud` as a literal. diff --git a/.github/vale/styles/LanceDB/ProductNames.yml b/.github/vale/styles/LanceDB/ProductNames.yml index 2122679ef..8f4d994ea 100644 --- a/.github/vale/styles/LanceDB/ProductNames.yml +++ b/.github/vale/styles/LanceDB/ProductNames.yml @@ -9,6 +9,7 @@ swap: '(?:Lancedb|LanceDb|lanceDB|LANCEDB|Lance DB)': LanceDB 'LanceDB (?:cloud|CLOUD)': LanceDB Cloud 'LanceDB (?:enterprise|ENTERPRISE)': LanceDB Enterprise + 'LanceDB\s+Distributed': LanceDB Enterprise '(?:HuggingFace|Huggingface|Hugging face)': Hugging Face Langchain: LangChain Typescript: TypeScript @@ -31,3 +32,11 @@ tests: input: | The lancedb package exposes `HuggingFaceEmbeddings` and LanceDBConnection; see `Typescript` in code. want: '' + - name: uses Enterprise for the product and its execution model + input: Connect to LanceDB Distributed. + want: | + 1:12:LanceDB.ProductNames:Use 'LanceDB Enterprise' instead of 'LanceDB Distributed'. + - name: keeps technical descriptions and API identifiers + input: | + LanceDB Enterprise supports distributed search. Compare Embedded and Enterprise. Distributed training uses workers. `LanceDB Distributed` and `RemoteTable` are literal code. + want: '' diff --git a/.github/vale/styles/LanceDB/RemoteExecution.yml b/.github/vale/styles/LanceDB/RemoteExecution.yml index dc450993b..ccff9e926 100644 --- a/.github/vale/styles/LanceDB/RemoteExecution.yml +++ b/.github/vale/styles/LanceDB/RemoteExecution.yml @@ -1,5 +1,5 @@ extends: existence -message: "Avoid '%s'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product." +message: "Avoid '%s'. Write 'LanceDB Enterprise' and describe where the operation runs directly." link: https://github.com/lancedb/docs/blob/main/STYLE.md#names level: warning ignorecase: false @@ -11,18 +11,18 @@ tests: - name: flags remote as the execution model input: In remote mode, a remote table is opened through a remote connection. want: | - 1:4:LanceDB.RemoteExecution:Avoid 'remote mode'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. - 1:19:LanceDB.RemoteExecution:Avoid 'remote table'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. - 1:52:LanceDB.RemoteExecution:Avoid 'remote connection'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. + 1:4:LanceDB.RemoteExecution:Avoid 'remote mode'. Write 'LanceDB Enterprise' and describe where the operation runs directly. + 1:19:LanceDB.RemoteExecution:Avoid 'remote table'. Write 'LanceDB Enterprise' and describe where the operation runs directly. + 1:52:LanceDB.RemoteExecution:Avoid 'remote connection'. Write 'LanceDB Enterprise' and describe where the operation runs directly. - name: flags plurals and a heading input: | ## Remote tables Remote databases hold remote tables. want: | - 1:4:LanceDB.RemoteExecution:Avoid 'Remote tables'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. - 3:1:LanceDB.RemoteExecution:Avoid 'Remote databases'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. - 3:23:LanceDB.RemoteExecution:Avoid 'remote tables'. Write 'LanceDB Distributed' for the execution model or 'LanceDB Enterprise' for the product. + 1:4:LanceDB.RemoteExecution:Avoid 'Remote tables'. Write 'LanceDB Enterprise' and describe where the operation runs directly. + 3:1:LanceDB.RemoteExecution:Avoid 'Remote databases'. Write 'LanceDB Enterprise' and describe where the operation runs directly. + 3:23:LanceDB.RemoteExecution:Avoid 'remote tables'. Write 'LanceDB Enterprise' and describe where the operation runs directly. - name: leaves other remotes and code alone input: | Push to the git remote, read remote storage and fetch a remote URL. `open_table` returns a `RemoteTable`; see `remote table` in the API. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c3bf61471..7641207b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,7 +72,7 @@ are wrappers around the Rust library. * `node`: **Deprecated** Typescript package source code * `java`: Java package source code * `docs/src`: SDK reference, built with mkdocs -* `docs/web`: website guides for LanceDB Embedded and the APIs used by both Embedded and Distributed +* `docs/web`: website guides for LanceDB Embedded and the APIs used by both Embedded and Enterprise * `docs/web-tests`: the tests the documentation's code examples are extracted from ## Documentation @@ -84,13 +84,13 @@ it is ready for readers. ### Choose the right place - `docs/web/` holds website guides for LanceDB Embedded and the APIs used by both - Embedded and Distributed. + Embedded and Enterprise. - `docs/src/` holds the SDK reference. See [docs/README.md](docs/README.md) for its build and API-generation instructions. - `docs/web-tests/` and `rust/lancedb/tests/` hold tests used to generate the website's code examples. -Document SDK APIs here, and explain which operations work in Embedded and Distributed. +Document SDK APIs here, and explain which operations work in Embedded and Enterprise. Put Enterprise-specific deployment and operating instructions in the Enterprise documentation. diff --git a/docs/src/java/java.md b/docs/src/java/java.md index 1e067c68a..606aaf5c3 100644 --- a/docs/src/java/java.md +++ b/docs/src/java/java.md @@ -3,7 +3,7 @@ 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 with LanceDB Distributed, connecting to LanceDB Enterprise or LanceDB Cloud (legacy). + The Java SDK currently only connects 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 diff --git a/docs/src/js/classes/Connection.md b/docs/src/js/classes/Connection.md index 055f3ebb4..4876e3a52 100644 --- a/docs/src/js/classes/Connection.md +++ b/docs/src/js/classes/Connection.md @@ -182,7 +182,7 @@ Define a materialized view named `name` over the table `source`. LanceDB Embedded creation and refresh require a source build with the `experimental-functions` Cargo feature, disabled in published packages. -LanceDB Distributed operations do not require this feature. +LanceDB Enterprise 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: @@ -826,7 +826,7 @@ abstract renameTable( Rename a table. -Supported in LanceDB Distributed and by namespace backends that implement +Supported in LanceDB Enterprise and by namespace backends that implement renaming. Directory namespaces support renaming tables resolved through their manifest, including tables within or across child namespaces. LanceDB Embedded connections and directory-listing root tables reject with a "not supported" error. diff --git a/docs/src/js/classes/Table.md b/docs/src/js/classes/Table.md index 4398ee3ad..7455ab294 100644 --- a/docs/src/js/classes/Table.md +++ b/docs/src/js/classes/Table.md @@ -71,7 +71,7 @@ Add new columns with defined values. 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. +disable it; LanceDB Enterprise 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. -In LanceDB Distributed the expression is planned by the +In LanceDB Enterprise the expression is planned by the server, and the refresh runs as a server job -- see [Table#refreshColumnAsync](Table.md#refreshcolumnasync). @@ -686,7 +686,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 Distributed only; reading errors needs read +capped. LanceDB Enterprise only; reading errors needs read access to the table, since a message carries the value that failed. #### Parameters @@ -939,7 +939,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 in LanceDB Distributed. + This feature is currently only supported in LanceDB Enterprise. #### Returns @@ -1051,7 +1051,7 @@ 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. LanceDB Embedded only: in LanceDB -Distributed a refresh runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync). +Enterprise a refresh runs as a server job, through [Table#refreshColumnAsync](Table.md#refreshcolumnasync). #### Parameters @@ -1076,14 +1076,14 @@ abstract refreshColumnAsync(column): Promise Like [Table#refreshColumn](Table.md#refreshcolumn), but returns a handle to the refresh job instead of blocking until it completes. LanceDB Embedded refresh requires a source build with -`experimental-functions`. LanceDB Distributed jobs do not require this +`experimental-functions`. LanceDB Enterprise 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. In LanceDB Embedded the job runs in-process; in -LanceDB Distributed it is the server's backfill job. +LanceDB Enterprise it is the server's backfill job. #### Parameters @@ -1312,7 +1312,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. In LanceDB Distributed, this means the +the client process from index metadata. In LanceDB Enterprise, 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 diff --git a/docs/src/js/interfaces/AddDataOptions.md b/docs/src/js/interfaces/AddDataOptions.md index 26c5ccef8..f1f57b98b 100644 --- a/docs/src/js/interfaces/AddDataOptions.md +++ b/docs/src/js/interfaces/AddDataOptions.md @@ -19,7 +19,7 @@ optional allowExternalBlobOutsideBases: boolean; Whether blob URIs outside registered external bases may be written. Defaults to `false`. This option is supported only in LanceDB Embedded; -LanceDB Distributed returns an error when it is enabled. An enabled write +LanceDB Enterprise 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. diff --git a/docs/src/js/interfaces/IndexConfig.md b/docs/src/js/interfaces/IndexConfig.md index df3b81c52..6866cc7db 100644 --- a/docs/src/js/interfaces/IndexConfig.md +++ b/docs/src/js/interfaces/IndexConfig.md @@ -31,7 +31,7 @@ optional createdAt: Date; When the index was created. -`undefined` in LanceDB Distributed or indices created before timestamps were tracked. +`undefined` in LanceDB Enterprise or indices created before timestamps were tracked. *** @@ -44,7 +44,7 @@ optional indexDetails: any; Index-type-specific details parsed as a JavaScript object. Falls back to a raw string if JSON parsing fails. `undefined` in -LanceDB Distributed or when details are unavailable. +LanceDB Enterprise or when details are unavailable. *** @@ -66,7 +66,7 @@ optional indexUuid: string; The UUID of the first segment of the index. -`undefined` in LanceDB Distributed, which does not yet surface this. +`undefined` in LanceDB Enterprise, which does not yet surface this. *** @@ -78,7 +78,7 @@ optional indexVersion: number; The on-disk index format version. -`undefined` in LanceDB Distributed. +`undefined` in LanceDB Enterprise. *** @@ -100,7 +100,7 @@ optional numIndexedRows: number; The number of rows indexed, across all segments. -May be `undefined` in LanceDB Distributed if the server does not report it. +May be `undefined` in LanceDB Enterprise if the server does not report it. *** @@ -112,7 +112,7 @@ optional numSegments: number; The number of segments that make up the index. -`undefined` in LanceDB Distributed. +`undefined` in LanceDB Enterprise. *** @@ -124,7 +124,7 @@ optional numUnindexedRows: number; The number of rows not yet covered by this index. -May be `undefined` in LanceDB Distributed if the server does not report it. +May be `undefined` in LanceDB Enterprise 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` in LanceDB Distributed or indices without size tracking. +`undefined` in LanceDB Enterprise or indices without size tracking. *** @@ -148,4 +148,4 @@ optional typeUrl: string; The protobuf type URL, a precise type identifier for the index. -`undefined` in LanceDB Distributed. +`undefined` in LanceDB Enterprise. diff --git a/docs/src/js/interfaces/RefreshMaterializedViewResult.md b/docs/src/js/interfaces/RefreshMaterializedViewResult.md index e1ec3eb65..87e519a18 100644 --- a/docs/src/js/interfaces/RefreshMaterializedViewResult.md +++ b/docs/src/js/interfaces/RefreshMaterializedViewResult.md @@ -14,7 +14,7 @@ optional mode: string; ``` -How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes. +How the view was brought up to date: "rebuild", or absent for LanceDB Enterprise SQL refreshes. *** @@ -24,7 +24,7 @@ How the view was brought up to date: "rebuild", or absent for LanceDB Distribute optional rowsWritten: number; ``` -Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes. +Rows written by this refresh, or absent for LanceDB Enterprise SQL refreshes. *** @@ -34,7 +34,7 @@ Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes. optional sourceVersion: number; ``` -Source version refreshed to, or absent for LanceDB Distributed SQL refreshes. +Source version refreshed to, or absent for LanceDB Enterprise SQL refreshes. *** diff --git a/docs/src/js/type-aliases/BlobReadOptions.md b/docs/src/js/type-aliases/BlobReadOptions.md index 53184aa48..9d3ed04d6 100644 --- a/docs/src/js/type-aliases/BlobReadOptions.md +++ b/docs/src/js/type-aliases/BlobReadOptions.md @@ -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 LanceDB Distributed table. +read stops, including in-flight requests to a LanceDB Enterprise table. diff --git a/docs/src/python/python.md b/docs/src/python/python.md index 7bf7cd167..0a3eaf4dc 100644 --- a/docs/src/python/python.md +++ b/docs/src/python/python.md @@ -27,7 +27,7 @@ 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 LanceDB Distributed `create_table` uses the same positional order as the +The synchronous LanceDB Enterprise `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. @@ -259,7 +259,7 @@ async for entry in catalog.authz.list_acls(subject=Subject.role("reader")): ## Remote SQL -Submit SQL against a LanceDB Distributed database through the connection. +Submit SQL against a LanceDB Enterprise 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 @@ -340,24 +340,24 @@ listing a storage directory. ## Tables (Synchronous) -LanceDB Embedded and LanceDB Distributed tables use the same arguments for index creation, deletion, +LanceDB Embedded and LanceDB Enterprise 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`. LanceDB Distributed maintenance methods +and full-text index creation accept `wait_timeout`. LanceDB Enterprise 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 LanceDB Distributed keyword names `predicate` for `delete`, `index_name` for +The old LanceDB Enterprise 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 LanceDB Distributed-only argument order. +code that used the former LanceDB Enterprise-only argument order. ::: lancedb.table.Table @@ -466,11 +466,11 @@ scoped to each invocation and support `read`, `readinto`, `seek`, `tell`, 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 LanceDB Distributed operations. The same feature +remain available, as do LanceDB Enterprise operations. The same feature requirement applies to LanceDB Embedded SQL computed-column declaration and refresh; ordinary eager `add_columns` transforms remain available. -In LanceDB Distributed, creation accepts `auto_refresh_enabled` and +In LanceDB Enterprise, creation accepts `auto_refresh_enabled` and `auto_refresh_interval_seconds`: ```python @@ -676,7 +676,7 @@ For external blob references, construct the descriptor struct described by [blob][lancedb.schema.blob], then wrap it with `pa.ExtensionArray.from_storage`. Inline `data` and external `uri` representations are mutually exclusive. -LanceDB Distributed SQL returns blob bytes by default. Select `blob_descriptor(video)` to +LanceDB Enterprise 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]: @@ -693,7 +693,7 @@ for row in rows.to_pylist(): frame = extract_frame(video, row["timestamp"]) ``` -This example uses a LanceDB Distributed SQL connection that produces source-bearing +This example uses a LanceDB Enterprise 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 @@ -725,7 +725,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. LanceDB Distributed reads use authenticated range +can issue a metadata-only HEAD request. LanceDB Enterprise 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 diff --git a/docs/web-tests/py/test_function.py b/docs/web-tests/py/test_function.py index 297ac718b..821d12c3e 100644 --- a/docs/web-tests/py/test_function.py +++ b/docs/web-tests/py/test_function.py @@ -189,7 +189,7 @@ def test_function_version_binds_a_column(tmp_path): table = lancedb.connect(tmp_path).create_table("t", [{"value": 1.0}]) with pytest.raises( NotImplementedError, - match="Function columns are supported only in LanceDB Distributed", + match="Function columns are supported only in LanceDB Enterprise", ): table.add_columns({"doubled": application}) diff --git a/docs/web/basics/jobs.mdx b/docs/web/basics/jobs.mdx index 001c72386..6e7ff895e 100644 --- a/docs/web/basics/jobs.mdx +++ b/docs/web/basics/jobs.mdx @@ -97,10 +97,10 @@ Event responses have [row limits](/basics/limits#jobs). An explicit limit can request more than the default, but it does not guarantee a complete event history. -## Embedded and Distributed execution {#in-process} +## Embedded and Enterprise execution {#in-process} The following table describes LanceDB Embedded operations and registry jobs on -LanceDB Distributed (provided by LanceDB Enterprise). +LanceDB Enterprise. SQL-backed job handles follow the query lifecycle described below. | | Embedded | Enterprise registry job | diff --git a/docs/web/basics/sdk.mdx b/docs/web/basics/sdk.mdx index 1d9312f77..2316293e8 100644 --- a/docs/web/basics/sdk.mdx +++ b/docs/web/basics/sdk.mdx @@ -9,9 +9,9 @@ keywords: ["python", "typescript", "rust", "java", "sdk", "rest", "api reference Use a LanceDB SDK to create tables, add data, build indexes and run searches from your application. Python, TypeScript and Rust work with both LanceDB Embedded and LanceDB Enterprise. LanceDB Embedded runs in your application's -process; your data can live on local disk or in object storage. LanceDB -Enterprise runs LanceDB Distributed: query execution, indexing and maintenance -run on the Enterprise service, outside your application. +process; your data can live on local disk or in object storage. In LanceDB +Enterprise, query execution, indexing and maintenance run on the service, +outside your application. The [quickstart](/quickstart) includes installation instructions and complete examples in all three languages. For connection settings, see diff --git a/docs/web/index.mdx b/docs/web/index.mdx index 85ee3de0d..711b56a6c 100644 --- a/docs/web/index.mdx +++ b/docs/web/index.mdx @@ -102,7 +102,7 @@ and background work sized and scaled as separate components. A control plane gov and cluster lifecycle, separately from the data-plane components in the diagram below. See [Distributed search](/enterprise/distributed-search) for how query nodes and plan executors divide a request. -![LanceDB Distributed: the LanceDB SDK connects to LanceDB Enterprise, where a query fleet, executor and cache fleets, the realtime engine, and a jobs fleet run on top of the Lance format and object storage.](/static/assets/images/overview/lancedb-distributed.png) +![The LanceDB SDK connects to LanceDB Enterprise, where a query fleet, executor and cache fleets, the realtime engine, and a jobs fleet run on top of the Lance format and object storage.](/static/assets/images/overview/lancedb-distributed.png) Teams choose Enterprise to: diff --git a/docs/web/management/database.mdx b/docs/web/management/database.mdx index 6651d6409..4668030a6 100644 --- a/docs/web/management/database.mdx +++ b/docs/web/management/database.mdx @@ -21,7 +21,7 @@ objects, and configure how your application reaches the data. | --- | --- | --- | | `./.lancedb` | LanceDB Embedded, with local storage | In your application | | `s3://bucket/path`, `gs://bucket/path`, `az://container/path` | LanceDB Embedded, with object storage | In your application | -| `db://my-database` | LanceDB Enterprise | On the Enterprise service (LanceDB Distributed) | +| `db://my-database` | LanceDB Enterprise | On the Enterprise service | [Connect to LanceDB](/basics/catalog) has examples for each connection type. A connection to object storage still uses the embedded library: your process diff --git a/docs/web/static/assets/images/overview/lancedb-distributed.png b/docs/web/static/assets/images/overview/lancedb-distributed.png index 893e884d6..781946e64 100644 Binary files a/docs/web/static/assets/images/overview/lancedb-distributed.png and b/docs/web/static/assets/images/overview/lancedb-distributed.png differ diff --git a/docs/web/tables/consistency.mdx b/docs/web/tables/consistency.mdx index 78aedb23f..6589622d0 100644 --- a/docs/web/tables/consistency.mdx +++ b/docs/web/tables/consistency.mdx @@ -27,7 +27,7 @@ In **LanceDB Embedded**, a table handle sees its own committed writes. By defaul not automatically check for changes made through other handles or processes. Use a read consistency interval or `checkout_latest()` to pick up those changes. -In **LanceDB Distributed** (provided by LanceDB Enterprise), readers use the +In **LanceDB Enterprise**, readers use the service's configured freshness policy. A connection can request fresher data. When a read must include a completed write, use a zero interval or call `checkout_latest()` after the write, with a @@ -38,13 +38,13 @@ client and server that support these freshness controls. Set `read_consistency_interval` when connecting. This controls when reads pick up newer table versions; it does not change how writes commit. -| Setting | Embedded | Distributed | +| Setting | Embedded | Enterprise | | --- | --- | --- | | **Unset** | Keep the open table version until explicitly refreshed or changed by that handle. | Use the service's configured freshness policy. | | **Zero** | Check for the latest committed version on every read. | Request the latest committed version on every read. | | **Non-zero interval** | Check for updates on a read once the interval since the last check has elapsed. | Request data no older than the interval allows; the service may return fresher data. | -`checkout_latest()` explicitly refreshes an Embedded table handle. On Distributed it +`checkout_latest()` explicitly refreshes an Embedded table handle. On Enterprise it asks subsequent reads on that handle to reflect data at least as recent as the refresh request. To read a fixed historical version instead, use [table versioning](/management/table#versioning). diff --git a/nodejs/__test__/remote.test.ts b/nodejs/__test__/remote.test.ts index 6f63b0fc6..1581262e6 100644 --- a/nodejs/__test__/remote.test.ts +++ b/nodejs/__test__/remote.test.ts @@ -115,14 +115,14 @@ describe("remote connection", () => { ...options, mode: "overwrite", }), - ).rejects.toThrow(/write_options.*LanceDB Distributed/); + ).rejects.toThrow(/write_options.*LanceDB Enterprise/); await expect( db.createEmptyTable( "test", new Schema([new Field("value", new Int64(), true)]), options, ), - ).rejects.toThrow(/write_options.*LanceDB Distributed/); + ).rejects.toThrow(/write_options.*LanceDB Enterprise/); }, ); expect(requests).toEqual([]); @@ -141,7 +141,7 @@ describe("remote connection", () => { await expect( db.openTable("test", undefined, options), ).rejects.toThrow( - /not supported for table access in LanceDB Distributed/, + /not supported for table access in LanceDB Enterprise/, ); }, ); @@ -318,7 +318,7 @@ describe("remote connection", () => { ], ]; for (const [run, operation] of cases) { - let message = `LanceDBError: not supported: ${operation} is not supported in LanceDB Distributed.`; + let message = `LanceDBError: not supported: ${operation} is not supported in LanceDB Enterprise.`; if (operation === "IVF_HNSW_PQ") { message += " Please use IVF_HNSW_SQ instead."; } diff --git a/nodejs/__test__/table.test.ts b/nodejs/__test__/table.test.ts index eca91aba0..dafbac855 100644 --- a/nodejs/__test__/table.test.ts +++ b/nodejs/__test__/table.test.ts @@ -4559,14 +4559,14 @@ describe.each(arrowVersions)( ]; const table = await db.createTable("prewarm_data_test", data); - // prewarmData is only supported in LanceDB Distributed. We verify the call + // prewarmData is only supported in LanceDB Enterprise. We verify the call // is wired through napi and surfaces the expected error for both // arg shapes (undefined and string[]). await expect(table.prewarmData()).rejects.toThrow( - "prewarm_data is currently only supported in LanceDB Distributed", + "prewarm_data is currently only supported in LanceDB Enterprise", ); await expect(table.prewarmData(["text"])).rejects.toThrow( - "prewarm_data is currently only supported in LanceDB Distributed", + "prewarm_data is currently only supported in LanceDB Enterprise", ); }); @@ -5577,7 +5577,7 @@ describe("computed columns", () => { const db = await connect(tmpDir.name); const table = await db.createTable("errors_local", [{ x: 1 }]); await expect(table.functionErrors()).rejects.toThrow( - "recorded only in LanceDB Distributed", + "recorded only in LanceDB Enterprise", ); }); diff --git a/nodejs/lancedb/blob.ts b/nodejs/lancedb/blob.ts index 4cfcaf990..67e662175 100644 --- a/nodejs/lancedb/blob.ts +++ b/nodejs/lancedb/blob.ts @@ -274,7 +274,7 @@ export class BlobFile { export type BlobReadOptions = { /** * Cancels the read. The call rejects with `signal.reason`, and the native - * read stops, including in-flight requests to a LanceDB Distributed table. + * read stops, including in-flight requests to a LanceDB Enterprise table. */ signal?: AbortSignal; }; diff --git a/nodejs/lancedb/connection.ts b/nodejs/lancedb/connection.ts index 53ea4fef3..9c83d833f 100644 --- a/nodejs/lancedb/connection.ts +++ b/nodejs/lancedb/connection.ts @@ -272,7 +272,7 @@ export abstract class Connection { * * LanceDB Embedded creation and refresh require a source build with the * `experimental-functions` Cargo feature, disabled in published packages. - * LanceDB Distributed operations do not require this feature. + * LanceDB Enterprise 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: @@ -558,7 +558,7 @@ export abstract class Connection { /** * Rename a table. * - * Supported in LanceDB Distributed and by namespace backends that implement + * Supported in LanceDB Enterprise and by namespace backends that implement * renaming. Directory namespaces support renaming tables resolved through their * manifest, including tables within or across child namespaces. LanceDB Embedded * connections and directory-listing root tables reject with a "not supported" error. diff --git a/nodejs/lancedb/table.ts b/nodejs/lancedb/table.ts index 0806f7c6d..db0898f4b 100644 --- a/nodejs/lancedb/table.ts +++ b/nodejs/lancedb/table.ts @@ -129,7 +129,7 @@ export interface AddDataOptions { * Whether blob URIs outside registered external bases may be written. * * Defaults to `false`. This option is supported only in LanceDB Embedded; - * LanceDB Distributed returns an error when it is enabled. An enabled write + * LanceDB Enterprise 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. @@ -443,7 +443,7 @@ export abstract class Table { * Large columns (e.g. high-dimensional vectors or binary data) may not be * practical to prewarm. * - * This feature is currently only supported in LanceDB Distributed. + * This feature is currently only supported in LanceDB Enterprise. */ abstract prewarmData(columns?: string[]): Promise; @@ -601,7 +601,7 @@ export abstract class Table { * * 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. + * disable it; LanceDB Enterprise 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 @@ -613,7 +613,7 @@ export abstract class Table { * declaration reads a column, that column cannot be renamed, retyped or * dropped. * - * In LanceDB Distributed the expression is planned by the + * In LanceDB Enterprise the expression is planned by the * server, and the refresh runs as a server job -- see * {@link Table#refreshColumnAsync}. * @param {AddColumnsSql[] | Field | Field[] | Schema} newColumnTransforms Either: @@ -646,7 +646,7 @@ export abstract class Table { * 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. LanceDB Embedded only: in LanceDB - * Distributed a refresh runs as a server job, through {@link Table#refreshColumnAsync}. + * Enterprise a refresh runs as a server job, through {@link Table#refreshColumnAsync}. * @param {string} column The name of the computed column to fill. * @returns {Promise} A promise that resolves to the * number of rows filled and the new version number of the table. @@ -657,14 +657,14 @@ export abstract class Table { * Like {@link Table#refreshColumn}, but returns a handle to the refresh * job instead of blocking until it completes. * LanceDB Embedded refresh requires a source build with - * `experimental-functions`. LanceDB Distributed jobs do not require this + * `experimental-functions`. LanceDB Enterprise jobs do not require this * feature. * * The job may already be complete when returned; callers must not assume * the column is filled until {@link Job.wait} resolves. Invalid input -- * an unknown column, or one that is not computed -- rejects here rather * than failing the job. In LanceDB Embedded the job runs in-process; in - * LanceDB Distributed it is the server's backfill job. + * LanceDB Enterprise it is the server's backfill job. * @param {string} column The name of the computed column to fill. * @example * ```ts @@ -681,7 +681,7 @@ export abstract class 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 Distributed only; reading errors needs read + * capped. LanceDB Enterprise only; reading errors needs read * access to the table, since a message carries the value that failed. * @param {FunctionErrorsOptions} options Optional filters: `jobId`, * `column`, and `limit` (server default 10000, cap 100000). @@ -1000,7 +1000,7 @@ export abstract class Table { * Specify exactly one of `column` or `indexName`. * * Model-backed tokenizers such as `jieba/*` and `lindera/*` are rebuilt in - * the client process from index metadata. In LanceDB Distributed, this means the + * the client process from index metadata. In LanceDB Enterprise, 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 diff --git a/nodejs/src/table.rs b/nodejs/src/table.rs index ec16ea5b5..a08c7664e 100644 --- a/nodejs/src/table.rs +++ b/nodejs/src/table.rs @@ -831,7 +831,7 @@ impl Table { self.inner_ref()? .as_native() .ok_or_else(|| lancedb::Error::NotSupported { - message: "uses_v2_manifest_paths is not supported in LanceDB Distributed.".into(), + message: "uses_v2_manifest_paths is not supported in LanceDB Enterprise.".into(), }) .default_error()? .uses_v2_manifest_paths() @@ -844,8 +844,7 @@ impl Table { self.inner_ref()? .as_native() .ok_or_else(|| lancedb::Error::NotSupported { - message: "migrate_manifest_paths_v2 is not supported in LanceDB Distributed." - .into(), + message: "migrate_manifest_paths_v2 is not supported in LanceDB Enterprise.".into(), }) .default_error()? .migrate_manifest_paths_v2() @@ -868,40 +867,40 @@ pub struct IndexConfig { pub columns: Vec, /// The UUID of the first segment of the index. /// - /// `undefined` in LanceDB Distributed, which does not yet surface this. + /// `undefined` in LanceDB Enterprise, which does not yet surface this. pub index_uuid: Option, /// The protobuf type URL, a precise type identifier for the index. /// - /// `undefined` in LanceDB Distributed. + /// `undefined` in LanceDB Enterprise. pub type_url: Option, /// When the index was created. /// - /// `undefined` in LanceDB Distributed or indices created before timestamps were tracked. + /// `undefined` in LanceDB Enterprise or indices created before timestamps were tracked. pub created_at: Option>, /// The number of rows indexed, across all segments. /// - /// May be `undefined` in LanceDB Distributed if the server does not report it. + /// May be `undefined` in LanceDB Enterprise if the server does not report it. pub num_indexed_rows: Option, /// The number of rows not yet covered by this index. /// - /// May be `undefined` in LanceDB Distributed if the server does not report it. + /// May be `undefined` in LanceDB Enterprise if the server does not report it. pub num_unindexed_rows: Option, /// The total size in bytes of all index files across all segments. /// - /// `undefined` in LanceDB Distributed or indices without size tracking. + /// `undefined` in LanceDB Enterprise or indices without size tracking. pub size_bytes: Option, /// The number of segments that make up the index. /// - /// `undefined` in LanceDB Distributed. + /// `undefined` in LanceDB Enterprise. pub num_segments: Option, /// The on-disk index format version. /// - /// `undefined` in LanceDB Distributed. + /// `undefined` in LanceDB Enterprise. pub index_version: Option, /// Index-type-specific details parsed as a JavaScript object. /// /// Falls back to a raw string if JSON parsing fails. `undefined` in - /// LanceDB Distributed or when details are unavailable. + /// LanceDB Enterprise or when details are unavailable. pub index_details: Option, } @@ -1617,11 +1616,11 @@ impl From for FunctionErrors { #[napi(object)] pub struct RefreshMaterializedViewResult { - /// How the view was brought up to date: "rebuild", or absent for LanceDB Distributed SQL refreshes. + /// How the view was brought up to date: "rebuild", or absent for LanceDB Enterprise SQL refreshes. pub mode: Option, - /// Rows written by this refresh, or absent for LanceDB Distributed SQL refreshes. + /// Rows written by this refresh, or absent for LanceDB Enterprise SQL refreshes. pub rows_written: Option, - /// Source version refreshed to, or absent for LanceDB Distributed SQL refreshes. + /// Source version refreshed to, or absent for LanceDB Enterprise SQL refreshes. pub source_version: Option, pub version: i64, } diff --git a/python/python/lancedb/__init__.py b/python/python/lancedb/__init__.py index e0f6635d8..67784b0e5 100644 --- a/python/python/lancedb/__init__.py +++ b/python/python/lancedb/__init__.py @@ -300,11 +300,11 @@ def connect( raise ValueError(f"Unknown keyword arguments: {unknown_kwargs}") if session is not None: raise NotImplementedError( - "session is not supported for LanceDB Distributed connections" + "session is not supported for LanceDB Enterprise connections" ) if manifest_enabled: raise NotImplementedError( - "manifest_enabled is not supported for LanceDB Distributed connections" + "manifest_enabled is not supported for LanceDB Enterprise connections" ) if api_key is None: api_key = os.environ.get("LANCEDB_API_KEY") diff --git a/python/python/lancedb/db.py b/python/python/lancedb/db.py index d85685f0b..1966a4881 100644 --- a/python/python/lancedb/db.py +++ b/python/python/lancedb/db.py @@ -682,7 +682,7 @@ class DBConnection(EnforceOverrides): LanceDB Embedded creation and refresh require a source build with the ``experimental-functions`` Cargo feature. Published packages leave it - disabled; LanceDB Distributed operations remain available. + disabled; LanceDB Enterprise operations remain available. The view is populated before creation returns. Pass ``with_no_data=True`` to create only its definition and empty backing @@ -706,11 +706,11 @@ class DBConnection(EnforceOverrides): with_no_data: bool, default False Skip the initial refresh and leave the backing table empty. auto_refresh_enabled: bool, optional - Enable or disable automatic refresh in LanceDB Distributed. + Enable or disable automatic refresh in LanceDB Enterprise. When omitted, the server determines whether automatic refresh is enabled. LanceDB Embedded does not support automatic refresh. auto_refresh_interval_seconds: float, optional - Positive, finite refresh interval in seconds in LanceDB Distributed. + Positive, finite refresh interval in seconds in LanceDB Enterprise. When omitted, the server determines when to refresh. Returns @@ -736,7 +736,7 @@ class DBConnection(EnforceOverrides): """Submit materialized-view creation and return its job. The job may already be complete in LanceDB Embedded. In LanceDB - Distributed, creation + Enterprise, creation submits CREATE MATERIALIZED VIEW through the SQL server. Its job has ``job_type == "query"`` and ``id`` identifies the connection-scoped query. Registry event history is unavailable. @@ -776,7 +776,7 @@ class DBConnection(EnforceOverrides): ) -> None: """Drop a materialized view. - In LanceDB Distributed, drops wait for the SQL command to remove the + In LanceDB Enterprise, drops wait for the SQL command to remove the catalog binding. Physical cleanup continues in the background. """ @@ -790,7 +790,7 @@ class DBConnection(EnforceOverrides): """Start dropping a materialized view and return its job. The job may already be complete in LanceDB Embedded. In LanceDB - Distributed, jobs have + Enterprise, jobs have type ``query`` and use the SQL query ID as ``id``. Waiting confirms catalog removal; physical cleanup continues in the background. """ @@ -1356,7 +1356,7 @@ class DBConnection(EnforceOverrides): memory, per-worker GPU limit, and CPU, memory, and ephemeral-storage limits. This describes configured hardware, not current free capacity. - LanceDB Distributed only; the principal needs System Usage permission. + LanceDB Enterprise only; the principal needs System Usage permission. Raises ``NotImplementedError`` when the server predates ``GET /v1/gpu/classes``. """ @@ -1937,7 +1937,7 @@ class LanceDBConnection(DBConnection): LanceDB Embedded creation and refresh require a source build with the ``experimental-functions`` Cargo feature. Published packages leave it - disabled; LanceDB Distributed operations remain available. + disabled; LanceDB Enterprise operations remain available. See [DBConnection.create_materialized_view][lancedb.DBConnection.create_materialized_view]. @@ -2557,12 +2557,12 @@ class AsyncConnection(object): To obtain a connection you can use the [connect_async][lancedb.connect_async] function. - This could be a LanceDB Embedded connection (using lance) or a LanceDB Distributed - connection (e.g. for connecting to LanceDB Enterprise) + This could be a LanceDB Embedded connection (using Lance) or a connection + to LanceDB Enterprise. Embedded connections do not currently hold any open resources but they may do so in the future (for example, for shared cache or connections to catalog services) - Distributed connections represent an open connection to the server. The + Enterprise connections represent an open connection to the server. The [close][lancedb.db.AsyncConnection.close] method can be used to release any underlying resources eagerly. The connection can also be used as a context manager. @@ -3199,7 +3199,7 @@ class AsyncConnection(object): LanceDB Embedded creation and refresh require a source build with the ``experimental-functions`` Cargo feature. Published packages leave it - disabled; LanceDB Distributed operations remain available. + disabled; LanceDB Enterprise operations remain available. See [DBConnection.create_materialized_view][lancedb.DBConnection.create_materialized_view]. """ @@ -3234,7 +3234,7 @@ class AsyncConnection(object): """Submit materialized-view creation and return its job. Wait for the returned job before opening or querying the view. In LanceDB - Distributed, creation uses SQL; ``job_type`` is ``"query"`` and ``id`` + Enterprise, creation uses SQL; ``job_type`` is ``"query"`` and ``id`` identifies that query on this connection. """ source, native_options = await self._materialized_view_source( @@ -3288,7 +3288,7 @@ class AsyncConnection(object): ) -> None: """Drop a materialized view. - In LanceDB Distributed, drops wait for the SQL command to remove the + In LanceDB Enterprise, drops wait for the SQL command to remove the catalog binding. Physical cleanup continues in the background. """ @@ -3304,7 +3304,7 @@ class AsyncConnection(object): ) -> AsyncJob[None]: """Start dropping a materialized view and return its job. - In LanceDB Distributed, the job has type ``query`` and its ID identifies + In LanceDB Enterprise, the job has type ``query`` and its ID identifies the SQL query. Await :meth:`AsyncJob.wait` for catalog removal; physical cleanup continues in the background. """ diff --git a/python/python/lancedb/functions.py b/python/python/lancedb/functions.py index dc1e5684e..a17fcfa94 100644 --- a/python/python/lancedb/functions.py +++ b/python/python/lancedb/functions.py @@ -691,7 +691,7 @@ class FunctionBinding(_RemoteValue): class RefreshColumnResult(_RemoteValue): """Terminal result of an expression-backed or Function-backed refresh Job. - LanceDB Embedded jobs produce this value in process. LanceDB Distributed + LanceDB Embedded jobs produce this value in process. LanceDB Enterprise decodes the same value from the durable server-job terminal payload. """ diff --git a/python/python/lancedb/index.py b/python/python/lancedb/index.py index f0700d0b2..9f53f203b 100644 --- a/python/python/lancedb/index.py +++ b/python/python/lancedb/index.py @@ -167,7 +167,7 @@ class FTS: Lance tokenizer can panic on malformed triples; see https://github.com/lance-format/lance/issues/8812. - LanceDB Distributed uses the same ``FTS()`` configuration and requires a + LanceDB Enterprise uses the same ``FTS()`` configuration and requires a server that supports JSON FTS. Wait for ``table.wait_for_index(["doc_idx"])`` before searching a newly created index there with its default name. @@ -236,12 +236,12 @@ class FTS: memory_limit : int, optional The total memory limit in MiB for the local FTS build stage. The limit is divided evenly among indexing workers. This build-only setting is - not persisted with the index and does not apply to LanceDB Distributed. + not persisted with the index and does not apply to LanceDB Enterprise. num_workers : int, optional The number of workers for a local FTS build. By default Lance uses roughly half of the available CPU cores. The effective value is limited by the available compute capacity. This build-only setting is - not persisted with the index and does not apply to LanceDB Distributed. + not persisted with the index and does not apply to LanceDB Enterprise. document_granularity : DocumentGranularity, default ROW ``ROW`` treats the selected text in one table row as one document. ``LIST_ELEMENT`` treats each element of the deepest list on the indexed diff --git a/python/python/lancedb/materialized_view.py b/python/python/lancedb/materialized_view.py index 7b0b3b80a..3594f5603 100644 --- a/python/python/lancedb/materialized_view.py +++ b/python/python/lancedb/materialized_view.py @@ -6,7 +6,7 @@ maintained by refresh. See ``DBConnection.create_materialized_view``. LanceDB Embedded creation and refresh require the ``experimental-functions`` Cargo feature in a source build. Published packages disable it. Opening, reading, -listing and dropping existing views and LanceDB Distributed operations remain +listing and dropping existing views and LanceDB Enterprise operations remain available. """ @@ -189,12 +189,12 @@ class AsyncMaterializedView: ) -> "RefreshMaterializedViewResult": """Recompute the view from its source. - In LanceDB Distributed, ``full=True`` forces a rebuild; otherwise the + In LanceDB Enterprise, ``full=True`` forces a rebuild; otherwise the server chooses the refresh mode. LanceDB Embedded views always rebuild, and ``source_version`` selects a source version instead of the latest. - LanceDB Distributed SQL refreshes do not support source-version pinning. + LanceDB Enterprise SQL refreshes do not support source-version pinning. - LanceDB Distributed results leave ``mode``, ``rows_written``, and + LanceDB Enterprise results leave ``mode``, ``rows_written``, and ``source_version`` as ``None`` because the SQL job adapter does not expose these metrics. """ @@ -208,7 +208,7 @@ class AsyncMaterializedView: """Submit a refresh and return its job without waiting. The job may already be complete in LanceDB Embedded. In LanceDB - Distributed, refreshes are submitted through the SQL service. Options and + Enterprise, refreshes are submitted through the SQL service. Options and result metrics follow [refresh][lancedb.materialized_view.AsyncMaterializedView.refresh]. """ diff --git a/python/python/lancedb/permutation.py b/python/python/lancedb/permutation.py index b70c96979..a6f584f8a 100644 --- a/python/python/lancedb/permutation.py +++ b/python/python/lancedb/permutation.py @@ -548,7 +548,7 @@ class Permutation: picklable classes implementing ``__call__``. Lambdas and closures over local variables don't pickle with the default protocol. - A factory is optional for normal LanceDB Embedded and Distributed connections: + A factory is optional for normal LanceDB Embedded and Enterprise connections: if not set, ``__getstate__`` captures the table's own picklable reopen state. Use a factory when that default state is not enough, for example when credentials should be loaded from the worker environment instead diff --git a/python/python/lancedb/query.py b/python/python/lancedb/query.py index c5d28ac9d..f292a6062 100644 --- a/python/python/lancedb/query.py +++ b/python/python/lancedb/query.py @@ -204,7 +204,7 @@ def _supports_local_blob_fetch( def _blob_bytes_without_snapshot_error() -> NotImplementedError: return NotImplementedError( "blob_mode='bytes' cannot safely materialize blob columns without a " - "stable table snapshot. LanceDB Distributed and namespace QueryTable pushdown " + "stable table snapshot. LanceDB Enterprise and namespace QueryTable pushdown " "run the query on a server, so the blob fetch could read another table " "version. Use blob_mode='descriptions'." ) @@ -1263,7 +1263,7 @@ class LanceQueryBuilder(ABC): mode and for legacy blob columns. Other local blob v2 queries return descriptors in ``"lazy"`` and ``"descriptions"`` modes, or payloads in ``"bytes"`` mode, through :meth:`to_arrow`. - LanceDB Distributed blob queries support only ``"descriptions"`` until a + LanceDB Enterprise blob queries support only ``"descriptions"`` until a stable table snapshot can bind the query and blob fetches. **kwargs @@ -3603,7 +3603,7 @@ class AsyncQueryBase(object): ``fetch_blobs`` reads. ``"descriptions"`` returns them without it. ``"bytes"`` returns payload bytes and raises for legacy blob columns and blobs inside lists. - LanceDB Distributed and namespace query pushdown refuse ``"bytes"``. + LanceDB Enterprise and namespace query pushdown refuse ``"bytes"``. """ blob_sources = await self._validated_blob_sources(blob_mode) batch_iter = await self.to_batches(timeout=timeout) @@ -3682,7 +3682,7 @@ class AsyncQueryBase(object): mode and for legacy blob columns. Other local blob v2 queries return descriptors in ``"lazy"`` and ``"descriptions"`` modes, or payloads in ``"bytes"`` mode, through :meth:`to_arrow`. - LanceDB Distributed blob queries support only ``"descriptions"`` until a + LanceDB Enterprise blob queries support only ``"descriptions"`` until a stable table snapshot can bind the query and blob fetches. **kwargs @@ -4331,7 +4331,7 @@ class AsyncVectorQueryBase: you the desired recall. LanceDB retains this as `nprobes` through LanceDB Embedded and LanceDB - Distributed request construction. Lance sets both probe bounds to this + Enterprise request construction. Lance sets both probe bounds to this value. Explicit minimum or maximum settings can override their respective bounds. """ diff --git a/python/python/lancedb/remote/db.py b/python/python/lancedb/remote/db.py index 8c87d55ed..8453de125 100644 --- a/python/python/lancedb/remote/db.py +++ b/python/python/lancedb/remote/db.py @@ -104,7 +104,7 @@ def _tls_config_to_dict(config: Optional[TlsConfig]) -> Optional[dict[str, Any]] def _client_config_to_dict(config: ClientConfig) -> dict[str, Any]: if config.header_provider is not None: raise ValueError( - "Cannot serialize a LanceDB Distributed connection with a header_provider. " + "Cannot serialize a LanceDB Enterprise connection with a header_provider. " "Use static api_key/extra_headers or provide a worker-side " "connection factory instead." ) @@ -249,16 +249,16 @@ class RemoteDBConnection(DBConnection): @property def session(self) -> Optional["Session"]: - """LanceDB Distributed connections do not expose a local cache session.""" + """LanceDB Enterprise connections do not expose a local cache session.""" raise NotImplementedError( - "session is not supported by LanceDB Distributed connections" + "session is not supported by LanceDB Enterprise connections" ) @property def read_consistency_interval(self) -> Optional[timedelta]: - """LanceDB Distributed connections do not expose a read consistency interval.""" + """LanceDB Enterprise connections do not expose a read consistency interval.""" raise NotImplementedError( - "read_consistency_interval is not supported by LanceDB Distributed " + "read_consistency_interval is not supported by LanceDB Enterprise " "connections" ) @@ -667,11 +667,11 @@ class RemoteDBConnection(DBConnection): The embedding functions to store in the table schema and use to generate vectors when creating the table or adding data. storage_options: dict, optional - Not supported in LanceDB Distributed. Raises NotImplementedError. + Not supported in LanceDB Enterprise. Raises NotImplementedError. data_storage_version: str, optional - Not supported in LanceDB Distributed. Raises NotImplementedError. + Not supported in LanceDB Enterprise. Raises NotImplementedError. enable_v2_manifest_paths: bool, optional - Not supported in LanceDB Distributed. Raises NotImplementedError. + Not supported in LanceDB Enterprise. Raises NotImplementedError. Returns ------- @@ -745,7 +745,7 @@ class RemoteDBConnection(DBConnection): if value is not None: raise NotImplementedError( f"{option} is not supported for table creation in " - "LanceDB Distributed" + "LanceDB Enterprise" ) if exist_ok: if mode == "create": @@ -1313,7 +1313,7 @@ class RemoteDBConnection(DBConnection): default_namespace_path: Optional[List[str]] = None, parameters: Optional[QueryParameters] = None, ) -> SqlQuery: - """Start executing SQL through this LanceDB Distributed connection. + """Start executing SQL through this LanceDB Enterprise connection. Unqualified tables use this connection's database and the ``["public"]`` namespace by default. Fully qualified table names may diff --git a/python/python/lancedb/remote/table.py b/python/python/lancedb/remote/table.py index b31325424..8a370f73d 100644 --- a/python/python/lancedb/remote/table.py +++ b/python/python/lancedb/remote/table.py @@ -126,7 +126,7 @@ class RemoteTable(Table): def _serialized_connection_state(self) -> str: if self._connection_state is None: raise RuntimeError( - "Cannot reopen this LanceDB Distributed table because it does not " + "Cannot reopen this LanceDB Enterprise table because it does not " "carry serialized connection state" ) if callable(self._connection_state): @@ -273,23 +273,23 @@ class RemoteTable(Table): return LOOP.run(self._table.list_versions()) def to_arrow(self, *, blob_mode: BlobMode = "lazy") -> pa.Table: - """to_arrow() is not supported in LanceDB Distributed.""" + """to_arrow() is not supported in LanceDB Enterprise.""" validate_blob_mode(blob_mode) raise NotImplementedError( - "to_arrow() is not supported in LanceDB Distributed. " + "to_arrow() is not supported in LanceDB Enterprise. " "Use table.search().to_arrow() instead." ) def to_pandas(self, blob_mode: BlobMode = "lazy", **kwargs): - """to_pandas() is not supported in LanceDB Distributed.""" + """to_pandas() is not supported in LanceDB Enterprise.""" validate_blob_mode(blob_mode) raise NotImplementedError( - "to_pandas() is not supported in LanceDB Distributed. " + "to_pandas() is not supported in LanceDB Enterprise. " "Use table.search().to_pandas() instead." ) def to_lance(self, **kwargs) -> "lance.LanceDataset": - """Direct Lance dataset access is not supported in LanceDB Distributed. + """Direct Lance dataset access is not supported in LanceDB Enterprise. Use ``table.search().to_arrow()`` to read query results through the server. """ @@ -298,7 +298,7 @@ class RemoteTable(Table): def to_polars(self, batch_size=None) -> "pl.LazyFrame": """Use ``table.search().to_polars()`` to read query results.""" raise NotImplementedError( - "to_polars() is not supported in LanceDB Distributed. " + "to_polars() is not supported in LanceDB Enterprise. " "Use table.search().to_polars() instead." ) @@ -331,7 +331,7 @@ class RemoteTable(Table): """Tokenize a query using the tokenizer configured on an FTS index. Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are - rebuilt in the client process from index metadata. In LanceDB Distributed, + rebuilt in the client process from index metadata. In LanceDB Enterprise, 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 @@ -638,7 +638,7 @@ class RemoteTable(Table): if accelerator is not None: logging.warning( - "GPU accelerator is not supported in LanceDB Distributed " + "GPU accelerator is not supported in LanceDB Enterprise " "and will be ignored." ) @@ -743,7 +743,7 @@ class RemoteTable(Table): capped at the number of CPU cores. Lower this if bulk ingestion is using too much memory. allow_external_blob_outside_bases: bool, default False - Not supported in LanceDB Distributed. Setting this raises. + Not supported in LanceDB Enterprise. Setting this raises. Returns ------- @@ -1048,20 +1048,20 @@ class RemoteTable(Table): delete_unverified: bool = False, ): """ - cleanup_old_versions() is a no-op in LanceDB Distributed. + cleanup_old_versions() is a no-op in LanceDB Enterprise. """ warnings.warn( - "cleanup_old_versions() is a no-op in LanceDB Distributed.", + "cleanup_old_versions() is a no-op in LanceDB Enterprise.", stacklevel=2, ) pass def compact_files(self, *args, **kwargs): """ - compact_files() is a no-op in LanceDB Distributed. + compact_files() is a no-op in LanceDB Enterprise. """ warnings.warn( - "compact_files() is a no-op in LanceDB Distributed.", + "compact_files() is a no-op in LanceDB Enterprise.", stacklevel=2, ) pass @@ -1074,7 +1074,7 @@ class RemoteTable(Table): retrain: bool = False, compaction_options: Optional[CompactionOptions] = None, ): - """optimize() is not supported in LanceDB Distributed.""" + """optimize() is not supported in LanceDB Enterprise.""" return LOOP.run( self._table.optimize( cleanup_older_than=cleanup_older_than, @@ -1226,7 +1226,7 @@ class RemoteTable(Table): ) def close_rte_writers(self) -> None: - """No-op in LanceDB Distributed (no local shard writers).""" + """No-op in LanceDB Enterprise (no local shard writers).""" return LOOP.run(self._table.close_rte_writers()) @_deprecated_keyword("index_name", "name") @@ -1255,7 +1255,7 @@ class RemoteTable(Table): This is a hint to the database that the given columns will be accessed in the future and the database should prefetch the data if possible. - Currently only supported in LanceDB Distributed. + Currently only supported in LanceDB Enterprise. This call initiates prewarming and returns once the request is accepted. It is idempotent and safe to call from multiple clients concurrently. @@ -1284,7 +1284,7 @@ class RemoteTable(Table): def uri(self) -> str: """The table URI (storage location). - In LanceDB Distributed, this fetches the location from the server via describe. + In LanceDB Enterprise, this fetches the location from the server via describe. """ return LOOP.run(self._table.uri()) diff --git a/python/python/lancedb/sql.py b/python/python/lancedb/sql.py index d011e25a5..7498cddcc 100644 --- a/python/python/lancedb/sql.py +++ b/python/python/lancedb/sql.py @@ -1,7 +1,7 @@ # SPDX-License-Identifier: Apache-2.0 # SPDX-FileCopyrightText: Copyright The LanceDB Authors -"""Handles to SQL queries running on a LanceDB Distributed database.""" +"""Handles to SQL queries running on a LanceDB Enterprise database.""" from typing import Any, Mapping, Optional, Sequence, Union from uuid import UUID diff --git a/python/python/lancedb/table.py b/python/python/lancedb/table.py index 11efea348..8a7571fe6 100644 --- a/python/python/lancedb/table.py +++ b/python/python/lancedb/table.py @@ -1577,7 +1577,7 @@ class Table(ABC): def to_lance(self, **kwargs) -> lance.LanceDataset: """Return a LanceDB Embedded table as a lance.LanceDataset. - LanceDB Distributed tables cannot be opened as Lance datasets by the + LanceDB Enterprise tables cannot be opened as Lance datasets by the client. Use ``table.search().to_arrow()`` to read them through the server. @@ -1590,7 +1590,7 @@ class Table(ABC): def to_polars(self, batch_size=None) -> "pl.LazyFrame": """Return the table as a Polars LazyFrame. - In LanceDB Distributed, use ``table.search().to_polars()`` to convert query + In LanceDB Enterprise, use ``table.search().to_polars()`` to convert query results to a Polars DataFrame. Parameters @@ -2571,7 +2571,7 @@ class Table(ABC): Blobs inside lists cannot be fetched by row id yet. - LanceDB Distributed limits each request to 1024 row IDs and 64 MiB of blob + LanceDB Enterprise limits each request to 1024 row IDs and 64 MiB of blob bytes. The client splits requests automatically and reads an individual larger blob through the Range route. This method still materializes all bytes in memory; for large values use :meth:`fetch_blob_files`. @@ -2598,7 +2598,7 @@ class Table(ABC): results are returned. Row IDs can be obtained from a query with ``with_row_id(True)``. - LanceDB Distributed reads the requested ranges through version-pinned blob + LanceDB Enterprise reads the requested ranges through version-pinned blob handles using HTTP byte-range requests. """ @@ -2615,7 +2615,7 @@ class Table(ABC): a ``list[int]``, an integer Arrow array or chunked array, or a query ``pyarrow.Table`` carrying row identity via ``_rowid`` or a ``_lance_row_id`` field on the blob descriptor. Null blob values return - ``None``. LanceDB Distributed requires server version 0.5.0 or newer. + ``None``. LanceDB Enterprise requires server version 0.5.0 or newer. ``_rowid`` values stay valid after compaction when the table has stable row ids. @@ -2852,7 +2852,7 @@ class Table(ABC): Notes ----- - This function is not available in LanceDB Distributed, which manages + This function is not available in LanceDB Enterprise, which manages cleanup for you automatically. """ @@ -2874,7 +2874,7 @@ class Table(ABC): Notes ----- - This function is not available in LanceDB Distributed, which manages + This function is not available in LanceDB Enterprise, which manages compaction for you automatically. """ @@ -2961,7 +2961,7 @@ class Table(ABC): Specify exactly one of ``column`` or ``index_name``. Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are - rebuilt in the client process from index metadata. In LanceDB Distributed, + rebuilt in the client process from index metadata. In LanceDB Enterprise, 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 @@ -3018,11 +3018,11 @@ class Table(ABC): named-struct application expands its ordered result fields as one atomic binding; aliases come from ``rename(columns=...)``. Function columns are supported only in LanceDB - Distributed. + Enterprise. computed: Dict[str, str], optional LanceDB Embedded declaration and refresh require a source build with the ``experimental-functions`` Cargo feature, which published packages - do not enable. LanceDB Distributed operations remain available. + do not enable. LanceDB Enterprise operations remain available. A mapping from output column names to SQL expressions derives each output field from its expression. A direct projection of a Blob v2 @@ -3041,7 +3041,7 @@ class Table(ABC): While a declaration reads a column, that column cannot be renamed, retyped or dropped. - In LanceDB Distributed the expression is planned by the + In LanceDB Enterprise the expression is planned by the server, and the refresh runs as a server job -- see [`refresh_column_async`][lancedb.table.Table.refresh_column_async]. Cannot be combined with ``transforms``. @@ -3112,10 +3112,10 @@ class Table(ABC): GPU class for Function workers. Must be a lowercase name of 1-63 letters, digits, or hyphens, without a leading or trailing hyphen. None keeps the Function's registered class or the deployment - default. LanceDB Distributed only. + default. LanceDB Enterprise only. gpu_count: int, optional Positive aggregate GPU budget for Function workers. None leaves - the server's configured budget unchanged. LanceDB Distributed + the server's configured budget unchanged. LanceDB Enterprise only. Returns @@ -3160,10 +3160,10 @@ class Table(ABC): GPU class for Function workers. Must be a lowercase name of 1-63 letters, digits, or hyphens, without a leading or trailing hyphen. None keeps the Function's registered class or the deployment - default. LanceDB Distributed only. + default. LanceDB Enterprise only. gpu_count: int, optional Positive aggregate GPU budget for Function workers. None leaves - the server's configured budget unchanged. LanceDB Distributed + the server's configured budget unchanged. LanceDB Enterprise only. Returns @@ -3200,7 +3200,7 @@ class Table(ABC): 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 Distributed only; reading errors + detail was capped. LanceDB Enterprise only; reading errors needs read access to the table, since a message carries the value that failed. @@ -4287,7 +4287,7 @@ class LanceTable(Table): This is a hint to the database that the given columns will be accessed in the future and the database should prefetch the data if possible. - Currently only supported in LanceDB Distributed. + Currently only supported in LanceDB Enterprise. This call initiates prewarming and returns once the request is accepted. It is idempotent and safe to call from multiple clients concurrently. @@ -5178,7 +5178,7 @@ class LanceTable(Table): Specify exactly one of ``column`` or ``index_name``. Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are - rebuilt in the client process from index metadata. In LanceDB Distributed, + rebuilt in the client process from index metadata. In LanceDB Enterprise, 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 @@ -6266,7 +6266,7 @@ class AsyncTable: async def to_lance(self, **kwargs) -> lance.LanceDataset: """Return the Lance dataset backing a LanceDB Embedded table. - LanceDB Distributed tables cannot be opened as Lance datasets by the + LanceDB Enterprise tables cannot be opened as Lance datasets by the client. Use [to_arrow][lancedb.table.AsyncTable.to_arrow] or [query][lancedb.table.AsyncTable.query] to read them through the server. @@ -6288,7 +6288,7 @@ class AsyncTable: """ if not self._inner._is_native(): raise NotImplementedError( - "to_lance() is not supported in LanceDB Distributed; " + "to_lance() is not supported in LanceDB Enterprise; " "query the server instead" ) @@ -6321,7 +6321,7 @@ class AsyncTable: Parameters ---------- blob_mode: str, default "lazy" - Controls how Lance blob columns are returned. LanceDB Distributed supports + Controls how Lance blob columns are returned. LanceDB Enterprise supports "descriptions"; "bytes" and "lazy" are not yet supported. **kwargs Forwarded to PyArrow / Lance pandas conversion. @@ -6568,7 +6568,7 @@ class AsyncTable: This is a hint to the database that the given columns will be accessed in the future and the database should prefetch the data if possible. - Currently only supported in LanceDB Distributed. + Currently only supported in LanceDB Enterprise. This call initiates prewarming and returns once the request is accepted. It is idempotent and safe to call from multiple clients concurrently. @@ -6612,7 +6612,7 @@ class AsyncTable: """ Get the table URI (storage location). - In LanceDB Distributed, this fetches the location from the server via describe. + In LanceDB Enterprise, this fetches the location from the server via describe. In LanceDB Embedded, this returns the dataset URI. Returns @@ -7405,11 +7405,11 @@ class AsyncTable: named-struct application expands its ordered result fields as one atomic binding; aliases come from ``rename(columns=...)``. Function columns are supported only in LanceDB - Distributed. + Enterprise. computed: Dict[str, str], optional LanceDB Embedded declaration and refresh require a source build with the ``experimental-functions`` Cargo feature, which published packages - do not enable. LanceDB Distributed operations remain available. + do not enable. LanceDB Enterprise operations remain available. A mapping from output column names to SQL expressions derives each output field from its expression. A direct projection of a Blob v2 @@ -7427,13 +7427,13 @@ class AsyncTable: While a declaration reads a column, that column cannot be renamed, retyped or dropped. - In LanceDB Distributed the expression is planned by + In LanceDB Enterprise the expression is planned by the server. Cannot be combined with ``transforms``. auto_refresh_enabled: bool, optional Enable automatic refresh for each computed output declared by this call. Defaults to True. LanceDB Embedded stores the setting; automatic - scheduling requires LanceDB Distributed. + scheduling requires LanceDB Enterprise. auto_refresh_interval_seconds: int, optional Positive minimum seconds after a successful refresh before another automatic refresh is eligible. When omitted, the server determines when @@ -7561,10 +7561,10 @@ class AsyncTable: GPU class for Function workers. Must be a lowercase name of 1-63 letters, digits, or hyphens, without a leading or trailing hyphen. None keeps the Function's registered class or the deployment - default. LanceDB Distributed only. + default. LanceDB Enterprise only. gpu_count: int, optional Positive aggregate GPU budget for Function workers. None leaves - the server's configured budget unchanged. LanceDB Distributed + the server's configured budget unchanged. LanceDB Enterprise only. Returns @@ -7591,7 +7591,7 @@ class AsyncTable: 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 Distributed only; reading errors + detail was capped. LanceDB Enterprise only; reading errors needs read access to the table, since a message carries the value that failed. @@ -7680,10 +7680,10 @@ class AsyncTable: GPU class for Function workers. Must be a lowercase name of 1-63 letters, digits, or hyphens, without a leading or trailing hyphen. None keeps the Function's registered class or the deployment - default. LanceDB Distributed only. + default. LanceDB Enterprise only. gpu_count: int, optional Positive aggregate GPU budget for Function workers. None leaves - the server's configured budget unchanged. LanceDB Distributed + the server's configured budget unchanged. LanceDB Enterprise only. Returns @@ -8110,7 +8110,7 @@ class AsyncTable: Specify exactly one of ``column`` or ``index_name``. Model-backed tokenizers such as ``jieba/*`` and ``lindera/*`` are - rebuilt in the client process from index metadata. In LanceDB Distributed, + rebuilt in the client process from index metadata. In LanceDB Enterprise, 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 diff --git a/python/python/tests/test_materialized_views.py b/python/python/tests/test_materialized_views.py index 891b49164..ebb632300 100644 --- a/python/python/tests/test_materialized_views.py +++ b/python/python/tests/test_materialized_views.py @@ -725,7 +725,7 @@ def test_embedded_create_refuses_automatic_refresh_before_creating_view( tmp_path, options ): db = make_db(tmp_path) - with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"): db.create_materialized_view("adults", "people", **options) assert "adults" not in db.table_names() @@ -742,7 +742,7 @@ def test_remote_create_rejects_invalid_interval_without_request(seconds): @pytest.mark.experimental_functions def test_namespace_forwards_automatic_refresh_request(tmp_path): db = lancedb.connect_namespace("dir", {"root": str(tmp_path)}) - with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"): db.create_materialized_view("mv", "source", auto_refresh_enabled=True) @@ -750,7 +750,7 @@ def test_namespace_forwards_automatic_refresh_request(tmp_path): @pytest.mark.asyncio async def test_async_namespace_forwards_automatic_refresh_request(tmp_path): db = lancedb.connect_namespace_async("dir", {"root": str(tmp_path)}) - with pytest.raises(NotImplementedError, match="requires LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="requires LanceDB Enterprise"): await db.create_materialized_view("mv", "source", auto_refresh_enabled=True) diff --git a/python/python/tests/test_remote_db.py b/python/python/tests/test_remote_db.py index a7daeeb43..4fa74ae7b 100644 --- a/python/python/tests/test_remote_db.py +++ b/python/python/tests/test_remote_db.py @@ -1196,7 +1196,7 @@ def test_table_unimplemented_functions(): message = str(exc_info.value) assert method in message assert "not" in message and "supported" in message - assert "LanceDB Distributed" in message + assert "LanceDB Enterprise" in message assert "cloud" not in message.lower() assert f"search().{method}()" in message @@ -1263,7 +1263,7 @@ async def test_remote_to_lance_rejection( await table.to_lance(**options) assert requests == opened_requests - assert "to_lance() is not supported in LanceDB Distributed" in str(sync_error.value) + assert "to_lance() is not supported in LanceDB Enterprise" in str(sync_error.value) assert "query the server" in str(sync_error.value) assert str(sync_error.value) == str(async_error.value) @@ -2158,7 +2158,7 @@ def test_remote_create_index_new_api(caplog, rq_kwargs): assert received_requests[5]["replace"] is False assert "replace is not supported" not in caplog.text assert caplog.messages == [ - "GPU accelerator is not supported in LanceDB Distributed " + "GPU accelerator is not supported in LanceDB Enterprise " "and will be ignored." ] @@ -2217,7 +2217,7 @@ def test_remote_unsupported_operations_sync(method, args, kwargs, operation): with pytest.raises(NotImplementedError) as error: getattr(table, method)(*args, **kwargs) expected = f"LanceDBError: not supported: {operation} is not supported " - expected += "in LanceDB Distributed." + expected += "in LanceDB Enterprise." if operation == "IVF_HNSW_PQ": expected += " Please use IVF_HNSW_SQ instead." assert str(error.value) == expected @@ -2235,7 +2235,7 @@ async def test_remote_unsupported_operations_async(method, args, kwargs, operati with pytest.raises(NotImplementedError) as error: await getattr(table, method)(*args, **kwargs) expected = f"LanceDBError: not supported: {operation} is not supported " - expected += "in LanceDB Distributed." + expected += "in LanceDB Enterprise." if operation == "IVF_HNSW_PQ": expected += " Please use IVF_HNSW_SQ instead." assert str(error.value) == expected @@ -2247,7 +2247,7 @@ def test_remote_unsupported_legacy_hnsw_pq(): with pytest.warns(DeprecationWarning, match="create_index"): with pytest.raises( NotImplementedError, - match="IVF_HNSW_PQ is not supported in LanceDB Distributed. " + match="IVF_HNSW_PQ is not supported in LanceDB Enterprise. " "Please use IVF_HNSW_SQ instead.", ): table.create_index( @@ -2265,7 +2265,7 @@ def test_remote_python_only_messages(): with pytest.raises(NotImplementedError) as error: getattr(table, method)() assert str(error.value) == ( - f"{method}() is not supported in LanceDB Distributed. " + f"{method}() is not supported in LanceDB Enterprise. " f"Use table.search().{method}() instead." ) for method in ["compact_files", "cleanup_old_versions"]: @@ -2273,7 +2273,7 @@ def test_remote_python_only_messages(): getattr(table, method)() assert ( str(warning[0].message) - == f"{method}() is a no-op in LanceDB Distributed." + == f"{method}() is a no-op in LanceDB Enterprise." ) @@ -4469,7 +4469,7 @@ async def test_async_remote_to_lance_rejects_storage_access(monkeypatch): raise AssertionError("remote table URI must not be requested") monkeypatch.setattr(table, "uri", fail_uri) - with pytest.raises(NotImplementedError, match="LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="LanceDB Enterprise"): await table.to_lance() diff --git a/python/python/tests/test_remote_options.py b/python/python/tests/test_remote_options.py index 0dbc21029..404bfed43 100644 --- a/python/python/tests/test_remote_options.py +++ b/python/python/tests/test_remote_options.py @@ -87,7 +87,7 @@ async def test_remote_create_rejects_write_options(storage_options, empty): kwargs["data"] = [{"value": 1}] async with mock_lancedb_connection_async(handler) as db: with pytest.raises( - NotImplementedError, match="write_options.*LanceDB Distributed" + NotImplementedError, match="write_options.*LanceDB Enterprise" ): await db.create_table("t", storage_options=storage_options, **kwargs) assert requests == [] @@ -110,7 +110,7 @@ def test_sync_remote_create_rejects_write_options(options): request.end_headers() with mock_lancedb_connection(handler) as db: - with pytest.raises(NotImplementedError, match="LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="LanceDB Enterprise"): db.create_table("t", [{"value": 1}], **options) assert requests == [] @@ -131,11 +131,11 @@ async def test_remote_open_rejects_local_options(options, asynchronous): if asynchronous: async with mock_lancedb_connection_async(handler) as db: - with pytest.raises(NotImplementedError, match="LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="LanceDB Enterprise"): await db.open_table("t", **options) else: with mock_lancedb_connection(handler) as db: - with pytest.raises(NotImplementedError, match="LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="LanceDB Enterprise"): db.open_table("t", **options) assert requests == [] @@ -151,6 +151,6 @@ async def test_remote_open_rejects_location(): request.wfile.write(b'{"version": 1, "schema": {"fields": []}}') async with mock_lancedb_connection_async(handler) as db: - with pytest.raises(NotImplementedError, match="location.*LanceDB Distributed"): + with pytest.raises(NotImplementedError, match="location.*LanceDB Enterprise"): await db.open_table("t", location="/tmp/zzz") assert requests == [] diff --git a/python/python/tests/test_table.py b/python/python/tests/test_table.py index 221b4eef2..3daed7579 100644 --- a/python/python/tests/test_table.py +++ b/python/python/tests/test_table.py @@ -5637,7 +5637,7 @@ def test_function_errors_are_remote_only(tmp_path): db = lancedb.connect(tmp_path) table = db.create_table("t", [{"x": 1}]) with pytest.raises( - NotImplementedError, match="recorded only in LanceDB Distributed" + NotImplementedError, match="recorded only in LanceDB Enterprise" ): table.function_errors() diff --git a/python/src/table.rs b/python/src/table.rs index 516e492b1..1d36a7b79 100644 --- a/python/src/table.rs +++ b/python/src/table.rs @@ -2016,7 +2016,7 @@ impl Table { inner .as_native() .ok_or_else(|| lancedb::Error::NotSupported { - message: "uses_v2_manifest_paths is not supported in LanceDB Distributed." + message: "uses_v2_manifest_paths is not supported in LanceDB Enterprise." .into(), }) .infer_error()? @@ -2032,7 +2032,7 @@ impl Table { inner .as_native() .ok_or_else(|| lancedb::Error::NotSupported { - message: "migrate_manifest_paths_v2 is not supported in LanceDB Distributed." + message: "migrate_manifest_paths_v2 is not supported in LanceDB Enterprise." .into(), }) .infer_error()? diff --git a/rust/lancedb/src/blob.rs b/rust/lancedb/src/blob.rs index 409edcc2a..a8a816fdd 100644 --- a/rust/lancedb/src/blob.rs +++ b/rust/lancedb/src/blob.rs @@ -288,7 +288,7 @@ impl BlobFile { } } - /// Physical byte offset in the data file. `None` on LanceDB Distributed handles. The + /// Physical byte offset in the data file. `None` on LanceDB Enterprise handles. The /// server's byte-range route does not expose storage layout. pub fn position(&self) -> Option { match &self.inner { @@ -298,7 +298,7 @@ impl BlobFile { } } - /// Path of the data file holding the blob. `None` on LanceDB Distributed handles. The + /// Path of the data file holding the blob. `None` on LanceDB Enterprise handles. The /// server's byte-range route does not expose storage layout. pub fn data_path(&self) -> Option<&Path> { match &self.inner { @@ -308,7 +308,7 @@ impl BlobFile { } } - /// Native storage layout. `None` on LanceDB Distributed handles. The server's + /// Native storage layout. `None` on LanceDB Enterprise handles. The server's /// byte-range route does not expose layout. pub fn kind(&self) -> Option { match &self.inner { @@ -318,7 +318,7 @@ impl BlobFile { } } - /// External URI for native handles. LanceDB Distributed handles do not expose storage URIs. + /// External URI for native handles. LanceDB Enterprise handles do not expose storage URIs. pub fn uri(&self) -> Option<&str> { match &self.inner { BlobFileInner::Native(file) => file.uri(), diff --git a/rust/lancedb/src/connection.rs b/rust/lancedb/src/connection.rs index ac9a914a1..7d751bdb7 100644 --- a/rust/lancedb/src/connection.rs +++ b/rust/lancedb/src/connection.rs @@ -179,7 +179,7 @@ impl OpenTableBuilder { /// Advanced parameters that can be used to customize table reads /// - /// LanceDB Distributed connections reject these parameters with [`Error::NotSupported`]. + /// LanceDB Enterprise connections reject these parameters with [`Error::NotSupported`]. /// /// If set, these will take precedence over any overlapping `OpenTableOptions` options pub fn lance_read_params(mut self, params: ReadParams) -> Self { @@ -338,7 +338,7 @@ pub struct CloneTableBuilder { request: CloneTableRequest, } -/// Builder for asynchronously executing a SQL statement on a LanceDB Distributed database. +/// Builder for asynchronously executing a SQL statement on a LanceDB Enterprise database. pub struct ExecuteQueryAsyncBuilder { parent: Arc, request: ExecuteQueryRequest, @@ -502,7 +502,7 @@ impl Connection { &self.internal } - /// Start executing SQL on a LanceDB Distributed database. + /// Start executing SQL on a LanceDB Enterprise database. /// /// The query can reference tables in other databases with SQL dot notation. /// Use [`ExecuteQueryAsyncBuilder::default_namespace_path`] to avoid qualifying @@ -1192,7 +1192,7 @@ impl Connection { /// Rename a table in the database. /// - /// Supported in LanceDB Distributed and by namespace backends that implement + /// Supported in LanceDB Enterprise and by namespace backends that implement /// renaming. Directory namespaces support renaming tables resolved through /// their manifest, including tables within or across child namespaces. /// Directory-listing root tables cannot be renamed. @@ -1252,7 +1252,7 @@ impl Connection { /// /// The result describes configured hardware, not current free capacity. /// The principal needs System Usage permission. LanceDB Embedded and - /// older Distributed servers without `GET /v1/gpu/classes` return + /// older Enterprise servers without `GET /v1/gpu/classes` return /// [`Error::NotSupported`]. pub async fn list_gpu_classes(&self) -> Result> { self.database().list_gpu_classes().await @@ -1409,7 +1409,7 @@ impl Connection { /// For ListingDatabase, it is the equivalent DirectoryNamespace. /// For RemoteDatabase, it is the equivalent RestNamespace. /// - /// LanceDB Distributed connections using dynamic headers forward them through the + /// LanceDB Enterprise connections using dynamic headers forward them through the /// namespace client's per-request context provider. pub async fn namespace_client(&self) -> Result> { self.internal.namespace_client().await @@ -1420,7 +1420,7 @@ impl Connection { /// - impl_type: "dir" for DirectoryNamespace, "rest" for RestNamespace /// - properties: configuration properties for the namespace /// - /// LanceDB Distributed connections using dynamic headers cannot be exported because the + /// LanceDB Enterprise connections using dynamic headers cannot be exported because the /// namespace client config only carries static headers. pub async fn namespace_client_config( &self, @@ -1747,7 +1747,7 @@ impl ConnectBuilder { /// Enable or disable manifest-backed directory namespace mode for local /// native connections. - /// LanceDB Distributed connections reject enabling this option with [`Error::NotSupported`]. + /// LanceDB Enterprise connections reject enabling this option with [`Error::NotSupported`]. /// /// When enabled, the connection uses the directory namespace database /// directly for all table operations and forces @@ -1783,7 +1783,7 @@ impl ConnectBuilder { } /// Set a custom session for object stores and caching. - /// LanceDB Distributed connections reject this option with [`Error::NotSupported`]. + /// LanceDB Enterprise connections reject this option with [`Error::NotSupported`]. /// /// By default, a new session with default configuration will be created. /// This method allows you to provide a custom session with your own @@ -1826,7 +1826,7 @@ impl ConnectBuilder { if provided { return Err(Error::NotSupported { message: format!( - "{option} is not supported for LanceDB Distributed connections" + "{option} is not supported for LanceDB Enterprise connections" ), }); } diff --git a/rust/lancedb/src/connection/create_table.rs b/rust/lancedb/src/connection/create_table.rs index 8842ce59b..95b0643c6 100644 --- a/rust/lancedb/src/connection/create_table.rs +++ b/rust/lancedb/src/connection/create_table.rs @@ -46,7 +46,7 @@ impl CreateTableBuilder { /// Apply the given write options when writing the initial data /// - /// LanceDB Distributed connections reject explicit Lance write parameters with + /// LanceDB Enterprise connections reject explicit Lance write parameters with /// [`Error::NotSupported`] instead of silently using server defaults. pub fn write_options(mut self, write_options: WriteOptions) -> Self { self.request.write_options = write_options; @@ -73,7 +73,7 @@ impl CreateTableBuilder { /// Set multiple options for the storage layer. /// - /// Table-level storage options are not supported by LanceDB Distributed connections. + /// Table-level storage options are not supported by LanceDB Enterprise connections. /// /// Options already set on the connection will be inherited by the table, /// but can be overridden here. diff --git a/rust/lancedb/src/database.rs b/rust/lancedb/src/database.rs index fda5fc911..ae3059d38 100644 --- a/rust/lancedb/src/database.rs +++ b/rust/lancedb/src/database.rs @@ -194,7 +194,7 @@ impl CloneTableRequest { } } -/// A request to start a SQL statement on a LanceDB Distributed database. +/// A request to start a SQL statement on a LanceDB Enterprise database. #[derive(Clone, Debug)] pub struct ExecuteQueryRequest { /// The SQL text. @@ -308,7 +308,7 @@ fn function_catalog_not_supported() -> Result { fn gpu_class_catalog_not_supported() -> Result { Err(crate::error::Error::NotSupported { - message: "GPU class discovery is supported only by LanceDB Distributed".to_string(), + message: "GPU class discovery is supported only by LanceDB Enterprise".to_string(), }) } @@ -680,7 +680,7 @@ pub trait Database: message: "SQL is not supported by this database".into(), }) } - /// Start executing a SQL statement on a LanceDB Distributed database. + /// Start executing a SQL statement on a LanceDB Enterprise database. async fn execute_query_async( &self, _request: ExecuteQueryRequest, diff --git a/rust/lancedb/src/function.rs b/rust/lancedb/src/function.rs index d5086698c..988fd40af 100644 --- a/rust/lancedb/src/function.rs +++ b/rust/lancedb/src/function.rs @@ -877,7 +877,7 @@ impl_json!(FunctionBinding); /// refresh [`crate::Job`]. /// /// LanceDB Embedded refresh jobs produce this value in process. LanceDB -/// Distributed decodes the same value from the durable job's terminal payload. +/// Enterprise decodes the same value from the durable job's terminal payload. #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)] pub struct RefreshColumnResult { /// Rows assigned a value by this refresh. diff --git a/rust/lancedb/src/index.rs b/rust/lancedb/src/index.rs index c34ed1407..87eff864d 100644 --- a/rust/lancedb/src/index.rs +++ b/rust/lancedb/src/index.rs @@ -482,47 +482,47 @@ pub struct IndexConfig { /// /// An index may be made up of multiple segments, each with their own UUID. /// This is the UUID of the first segment. `None` if it could not be - /// determined (e.g. in LanceDB Distributed, which does not yet surface this). + /// determined (e.g. in LanceDB Enterprise, which does not yet surface this). pub index_uuid: Option, /// The protobuf type URL, a precise type identifier for the index. /// - /// `None` if unavailable (e.g. in LanceDB Distributed). + /// `None` if unavailable (e.g. in LanceDB Enterprise). pub type_url: Option, /// When the index was created, taken as the minimum creation time across /// all segments. /// /// `None` if unavailable, such as for indices created before creation - /// timestamps were tracked, or in LanceDB Distributed. + /// timestamps were tracked, or in LanceDB Enterprise. pub created_at: Option>, /// The number of rows indexed, across all segments. /// /// This is approximate and may include rows that have since been deleted. - /// `None` if unavailable (e.g. in LanceDB Distributed when the server + /// `None` if unavailable (e.g. in LanceDB Enterprise when the server /// does not report it). pub num_indexed_rows: Option, /// The number of rows in the table that are not yet covered by this index. /// /// Computed as the table's total row count minus [`Self::num_indexed_rows`]. /// Optimizing the index will fold these rows into it. `None` if unavailable - /// (e.g. in LanceDB Distributed when the server does not report it). + /// (e.g. in LanceDB Enterprise when the server does not report it). pub num_unindexed_rows: Option, /// The total size in bytes of all index files across all segments. /// /// `None` if size information is unavailable, such as for indices created - /// before file sizes were tracked, or in LanceDB Distributed. + /// before file sizes were tracked, or in LanceDB Enterprise. pub size_bytes: Option, /// The number of segments that make up the index. /// - /// `None` if unavailable (e.g. in LanceDB Distributed). + /// `None` if unavailable (e.g. in LanceDB Enterprise). pub num_segments: Option, /// The on-disk index format version, taken from the first segment. /// - /// `None` if unavailable (e.g. in LanceDB Distributed). + /// `None` if unavailable (e.g. in LanceDB Enterprise). pub index_version: Option, /// Index-type-specific details, serialized as JSON. /// /// The shape of this JSON varies by index type. `None` if the details - /// could not be produced (e.g. no plugin available) or in LanceDB Distributed. + /// could not be produced (e.g. no plugin available) or in LanceDB Enterprise. pub index_details: Option, } diff --git a/rust/lancedb/src/lib.rs b/rust/lancedb/src/lib.rs index 8d8574023..45d852d1a 100644 --- a/rust/lancedb/src/lib.rs +++ b/rust/lancedb/src/lib.rs @@ -39,7 +39,7 @@ //! - `experimental-functions` - Opt in to local SQL computed-column declarations //! and refresh, and local materialized-view creation and refresh. Disabled by //! default, including in published Python and TypeScript packages. LanceDB -//! Distributed operations, reading existing data, metadata protections, +//! Enterprise operations, reading existing data, metadata protections, //! and ordinary eager `add_columns` transforms do not require this feature. //! - `huggingface` - Enable HuggingFace Hub integration for loading datasets from the Hub. //! - `fp16kernels` - Enable FP16 kernels for faster vector search on CPU. diff --git a/rust/lancedb/src/materialized_view.rs b/rust/lancedb/src/materialized_view.rs index fa51cbf25..12753cd7c 100644 --- a/rust/lancedb/src/materialized_view.rs +++ b/rust/lancedb/src/materialized_view.rs @@ -171,7 +171,7 @@ pub(crate) fn physical_unnest( return Err(Error::NotSupported { message: format!( "'{name}' in FROM position is a Function; views over Function rows are \ - supported only in LanceDB Distributed" + supported only in LanceDB Enterprise" ), }); } @@ -1665,7 +1665,7 @@ impl CreateMaterializedViewBuilder { self } - /// Enable or disable automatic refresh in LanceDB Distributed. + /// Enable or disable automatic refresh in LanceDB Enterprise. /// When omitted, the server determines whether automatic refresh is enabled. /// LanceDB Embedded does not support automatic refresh. pub fn auto_refresh_enabled(mut self, enabled: bool) -> Self { @@ -1673,7 +1673,7 @@ impl CreateMaterializedViewBuilder { self } - /// Set a positive, finite refresh interval in seconds in LanceDB Distributed. + /// Set a positive, finite refresh interval in seconds in LanceDB Enterprise. /// When omitted, the server determines when to refresh. /// /// ```no_run @@ -1766,7 +1766,7 @@ impl CreateMaterializedViewBuilder { crate::require_experimental_functions()?; if self.auto_refresh_enabled == Some(true) || self.auto_refresh_interval_seconds.is_some() { return Err(Error::NotSupported { - message: "automatic materialized-view refresh requires LanceDB Distributed" + message: "automatic materialized-view refresh requires LanceDB Enterprise" .to_string(), }); } @@ -2015,7 +2015,7 @@ impl Connection { /// Start dropping a materialized view and return its job. /// /// This validates that the named resource is a materialized view rather - /// than an ordinary table. In LanceDB Distributed the job has type `query` + /// than an ordinary table. In LanceDB Enterprise the job has type `query` /// and its ID identifies the SQL query. Waiting completes once the catalog /// binding is removed; physical cleanup continues in the background. /// diff --git a/rust/lancedb/src/query.rs b/rust/lancedb/src/query.rs index f48d98a90..80dd8e8ac 100644 --- a/rust/lancedb/src/query.rs +++ b/rust/lancedb/src/query.rs @@ -444,8 +444,8 @@ pub trait QueryBase { /// # } /// ``` /// - /// Note: Expression filters are not supported for LanceDB Distributed queries. - /// Use [`QueryBase::only_if`] with SQL strings in LanceDB Distributed. + /// Note: Expression filters are not supported for LanceDB Enterprise queries. + /// Use [`QueryBase::only_if`] with SQL strings in LanceDB Enterprise. /// /// Calling this multiple times combines the expressions with a logical AND /// rather than replacing the previous filter. @@ -1025,7 +1025,7 @@ impl Query { /// By default, there is no embedding model, and the input should be /// vector/slice of floats. /// NaN and infinite components are rejected with [`Error::InvalidInput`] - /// after conversion to Float32, in both LanceDB Embedded and LanceDB Distributed. + /// after conversion to Float32, in both LanceDB Embedded and LanceDB Enterprise. /// /// If there is only one vector column (a column whose data type is a /// fixed size list of floats) then the column does not need to be specified. @@ -1269,7 +1269,7 @@ impl VectorQuery { /// result. /// /// NaN and infinite components are rejected with [`Error::InvalidInput`] - /// after conversion to Float32, in both LanceDB Embedded and LanceDB Distributed. + /// after conversion to Float32, in both LanceDB Embedded and LanceDB Enterprise. pub fn add_query_vector(mut self, vector: impl IntoQueryVector) -> Result { self.request.add_query_vector(vector)?; Ok(self) diff --git a/rust/lancedb/src/remote/db.rs b/rust/lancedb/src/remote/db.rs index 871460a99..d53838401 100644 --- a/rust/lancedb/src/remote/db.rs +++ b/rust/lancedb/src/remote/db.rs @@ -725,7 +725,7 @@ impl Database for RemoteDatabase { async fn read_consistency(&self) -> Result { Err(Error::NotSupported { - message: "Getting the read consistency is not yet supported in LanceDB Distributed" + message: "Getting the read consistency is not yet supported in LanceDB Enterprise" .to_string(), }) } @@ -737,7 +737,7 @@ impl Database for RemoteDatabase { if request.with_no_data { return Err(Error::NotSupported { message: - "materialized views in LanceDB Distributed must be populated during creation" + "materialized views in LanceDB Enterprise must be populated during creation" .to_string(), }); } @@ -1400,7 +1400,7 @@ impl Database for RemoteDatabase { if provided { return Err(Error::NotSupported { message: format!( - "{option} is not supported for table creation in LanceDB Distributed" + "{option} is not supported for table creation in LanceDB Enterprise" ), }); } @@ -1545,7 +1545,7 @@ impl Database for RemoteDatabase { if provided { return Err(Error::NotSupported { message: format!( - "{option} is not supported for table access in LanceDB Distributed" + "{option} is not supported for table access in LanceDB Enterprise" ), }); } @@ -2529,7 +2529,7 @@ mod tests { .execute() .await; assert!(matches!(result, Err(Error::NotSupported { message }) - if message.contains("write_options") && message.contains("LanceDB Distributed"))); + if message.contains("write_options") && message.contains("LanceDB Enterprise"))); } } @@ -2602,7 +2602,7 @@ mod tests { ] { let result = builder.execute().await; assert!(matches!(result, Err(Error::NotSupported { message }) - if message.contains(option) && message.contains("LanceDB Distributed"))); + if message.contains(option) && message.contains("LanceDB Enterprise"))); } } @@ -2620,7 +2620,7 @@ mod tests { ] { let result = builder.api_key("fake").region("us-east-1").execute().await; assert!(matches!(result, Err(Error::NotSupported { message }) - if message.contains(option) && message.contains("LanceDB Distributed"))); + if message.contains(option) && message.contains("LanceDB Enterprise"))); } } diff --git a/rust/lancedb/src/remote/table.rs b/rust/lancedb/src/remote/table.rs index 2ff842319..461cf713a 100644 --- a/rust/lancedb/src/remote/table.rs +++ b/rust/lancedb/src/remote/table.rs @@ -612,7 +612,7 @@ impl RemoteTable { // Warn if train=false is specified since it's not meaningful if !index.train { log::warn!( - "train=false has no effect in LanceDB Distributed. The index will be created empty and automatically populated in the background." + "train=false has no effect in LanceDB Enterprise. The index will be created empty and automatically populated in the background." ); } @@ -666,7 +666,7 @@ impl RemoteTable { } Index::IvfHnswPq(_) => { return Err(Error::NotSupported { - message: "IVF_HNSW_PQ is not supported in LanceDB Distributed. Please use IVF_HNSW_SQ instead.".into(), + message: "IVF_HNSW_PQ is not supported in LanceDB Enterprise. Please use IVF_HNSW_SQ instead.".into(), }); } }; @@ -1113,7 +1113,7 @@ impl RemoteTable { QueryFilter::Datafusion(expr) => expr_to_sql_string(expr)?, QueryFilter::Substrait(_) => { return Err(Error::NotSupported { - message: "Substrait filters are not supported in LanceDB Distributed" + message: "Substrait filters are not supported in LanceDB Enterprise" .to_string(), }); } @@ -1163,7 +1163,7 @@ impl RemoteTable { if let Some(full_text_search) = ¶ms.full_text_search { if full_text_search.wand_factor.is_some() { return Err(Error::NotSupported { - message: "Wand factor is not supported in LanceDB Distributed.".into(), + message: "Wand factor is not supported in LanceDB Enterprise.".into(), }); } @@ -3562,7 +3562,7 @@ impl BaseTable for RemoteTable { async fn optimize(&self, _action: OptimizeAction) -> Result { self.check_mutable().await?; Err(Error::NotSupported { - message: "optimize is not supported in LanceDB Distributed.".into(), + message: "optimize is not supported in LanceDB Enterprise.".into(), }) } async fn add_columns( @@ -6709,7 +6709,7 @@ mod tests { match result.unwrap_err() { Error::NotSupported { message } => assert_eq!( message, - format!("{operation} is not supported in LanceDB Distributed.") + format!("{operation} is not supported in LanceDB Enterprise.") ), error => panic!("expected not-supported error, got {error}"), } @@ -6737,7 +6737,7 @@ mod tests { .unwrap_err(); assert_not_supported_error( error, - "IVF_HNSW_PQ is not supported in LanceDB Distributed. Please use IVF_HNSW_SQ instead.", + "IVF_HNSW_PQ is not supported in LanceDB Enterprise. Please use IVF_HNSW_SQ instead.", ); } diff --git a/rust/lancedb/src/sql.rs b/rust/lancedb/src/sql.rs index 713a79e86..5c01fe898 100644 --- a/rust/lancedb/src/sql.rs +++ b/rust/lancedb/src/sql.rs @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright The LanceDB Authors -//! Handles to SQL queries running on a LanceDB Distributed database. +//! Handles to SQL queries running on a LanceDB Enterprise database. use std::{fmt, sync::Arc}; diff --git a/rust/lancedb/src/table.rs b/rust/lancedb/src/table.rs index bd34427e6..0c28820b5 100644 --- a/rust/lancedb/src/table.rs +++ b/rust/lancedb/src/table.rs @@ -653,7 +653,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync { async fn prewarm_index(&self, name: &str) -> Result<()>; /// Prewarm data for the table. /// - /// Currently only supported in LanceDB Distributed. + /// Currently only supported in LanceDB Enterprise. /// If `columns` is `None`, all columns are prewarmed. async fn prewarm_data(&self, columns: Option>) -> Result<()>; /// Get statistics about the index. @@ -848,7 +848,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync { /// Declare computed columns, each defined by a SQL expression. /// /// Where the declaration is planned depends on the backend: a LanceDB Embedded - /// table validates and types the expression itself, while a LanceDB Distributed + /// table validates and types the expression itself, while a LanceDB Enterprise /// table sends the expression for the server to plan. async fn add_computed_columns( &self, @@ -867,7 +867,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync { _options: computed_columns::ComputedColumnOptions, ) -> Result { Err(Error::NotSupported { - message: "Function columns are supported only in LanceDB Distributed".into(), + message: "Function columns are supported only in LanceDB Enterprise".into(), }) } /// Fill a computed column's unfilled rows and recompute those whose @@ -915,7 +915,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync { _request: &crate::function::FunctionErrorsRequest, ) -> Result { Err(Error::NotSupported { - message: "per-row Function errors are recorded only in LanceDB Distributed".into(), + message: "per-row Function errors are recorded only in LanceDB Enterprise".into(), }) } /// Alter columns in the table. @@ -1042,7 +1042,7 @@ pub trait BaseTable: std::fmt::Display + std::fmt::Debug + Send + Sync { /// [`FieldMetadataUpdate::remove`] deletes a key and /// [`FieldMetadataUpdate::replace`] swaps the field's whole map. /// - /// The default returns `NotSupported`; Lance-backed and LanceDB Distributed tables override it. + /// The default returns `NotSupported`; Lance-backed and LanceDB Enterprise tables override it. async fn update_field_metadata( &self, _updates: &[FieldMetadataUpdate], @@ -1313,7 +1313,7 @@ impl Table { /// /// Native tables support both legacy blob v1 and blob v2 columns. /// Output matches `row_ids` in length and order. Null blobs are null; - /// valid empty blobs contain empty byte strings. LanceDB Distributed limits individual + /// valid empty blobs contain empty byte strings. LanceDB Enterprise limits individual /// requests to 1024 row ids and 64 MiB of blob bytes; the client /// splits requests and reads a single larger blob through the Range route. /// This method still materializes all bytes in memory, so prefer @@ -1365,7 +1365,7 @@ impl Table { /// ranges for the same blob. The output has the same length and order as /// the requests. Null blobs produce null output slots; empty ranges on /// non-null blobs produce empty byte strings. - /// LanceDB Distributed tables read through version-pinned [`BlobFile`] handles using + /// LanceDB Enterprise tables read through version-pinned [`BlobFile`] handles using /// HTTP byte-range requests. /// /// `_rowid` values stay valid after compaction when the table has stable @@ -1624,7 +1624,7 @@ impl Table { } /// See [Table::create_index] - /// In LanceDB Distributed, this allows an optional wait_timeout to poll until asynchronous indexing is complete + /// In LanceDB Enterprise, this allows an optional wait_timeout to poll until asynchronous indexing is complete pub fn create_index_with_timeout( &self, columns: &[impl AsRef], @@ -1910,7 +1910,7 @@ impl Table { error_if_tagged_old_versions: Option, ) -> Result { let native = self.as_native().ok_or_else(|| Error::NotSupported { - message: "optimize is not supported in LanceDB Distributed.".into(), + message: "optimize is not supported in LanceDB Enterprise.".into(), })?; let prune = optimize::cleanup_old_versions_before( native, @@ -1940,7 +1940,7 @@ impl Table { /// [`freshness`](crate::table::freshness)); everything else is left as /// it is. /// - /// LanceDB Embedded only: in LanceDB Distributed a refresh runs as a server job, through + /// LanceDB Embedded only: in LanceDB Enterprise a refresh runs as a server job, through /// [`Table::refresh_column_async`]. /// /// ``` @@ -1958,7 +1958,7 @@ impl Table { /// Like [`Table::refresh_column`], with explicit refresh options. /// /// [`RefreshColumnOptions::batch_size()`] caps rows per Function call in - /// LanceDB Distributed and must be greater than zero when set. + /// LanceDB Enterprise and must be greater than zero when set. /// [`RefreshColumnOptions::gpu_class()`] selects a GPU pool and /// [`RefreshColumnOptions::gpu_count()`] sets the aggregate GPU budget. /// These options have no effect on expression-backed columns in LanceDB @@ -1994,7 +1994,7 @@ impl Table { /// both expression-backed and Function-backed columns. Invalid input /// -- an unknown column, or one that is not computed -- is reported by /// this call rather than by the job. In LanceDB Embedded the job runs as an - /// in-process task; in LanceDB Distributed it is the server's + /// in-process task; in LanceDB Enterprise it is the server's /// backfill job. /// /// ``` @@ -2056,7 +2056,7 @@ impl Table { /// capped. Filter by job or column through the request; a listing that /// hit its limit reports [`FunctionErrors::truncated`]. /// - /// LanceDB Distributed only, and the caller needs read access + /// LanceDB Enterprise only, and the caller needs read access /// to the table, since a message carries the value that failed. /// /// ``` @@ -2436,7 +2436,7 @@ impl Table { /// Tokenize a full-text search query using the tokenizer configured on an FTS index. /// /// Model-backed tokenizers such as `jieba/*` and `lindera/*` are rebuilt in - /// the client process from index metadata. In LanceDB Distributed, this means the + /// the client process from index metadata. In LanceDB Enterprise, this means the /// same tokenizer model files must also exist locally, and must match the /// files the server uses: the client cannot detect a mismatch, so it may /// return tokens the server's index never produces. If the model files are @@ -2474,7 +2474,7 @@ impl Table { /// /// The column must have exactly one FTS index. Model-backed tokenizers such /// as `jieba/*` and `lindera/*` are rebuilt in the client process from - /// index metadata. In LanceDB Distributed, this means the same tokenizer model + /// index metadata. In LanceDB Enterprise, this means the same tokenizer model /// files must also exist locally, and must match the files the server uses /// (see [`Self::tokenize`]). pub async fn tokenize_with_column(&self, query: &str, column: &str) -> Result> { @@ -2563,7 +2563,7 @@ impl Table { /// Get the table URI (storage location) /// /// Returns the full storage location of the table (e.g., S3/GCS path). - /// In LanceDB Distributed, this fetches the location from the server via describe. + /// In LanceDB Enterprise, this fetches the location from the server via describe. pub async fn uri(&self) -> Result { self.inner.uri().await } @@ -2608,7 +2608,7 @@ impl Table { /// Drop an index from the table. /// - /// Note: This is not yet available in LanceDB Distributed. + /// Note: This is not yet available in LanceDB Enterprise. /// /// This does not delete the index from disk, it just removes it from the table. /// To delete the index, run [`Self::optimize()`] after dropping the index. @@ -2641,7 +2641,7 @@ impl Table { /// This is a hint to the database that the given columns will be accessed in /// the future and the database should prefetch the data if possible. This /// can reduce cold-start latency for subsequent queries. Currently only - /// supported in LanceDB Distributed. + /// supported in LanceDB Enterprise. /// /// This call initiates prewarming and returns once the request is accepted. /// It is idempotent and safe to call from multiple clients concurrently — @@ -3838,7 +3838,7 @@ impl BaseTable for NativeTable { async fn prewarm_data(&self, _columns: Option>) -> Result<()> { Err(Error::NotSupported { - message: "prewarm_data is currently only supported in LanceDB Distributed.".into(), + message: "prewarm_data is currently only supported in LanceDB Enterprise.".into(), }) } @@ -4476,7 +4476,7 @@ mod tests { .await .unwrap_err(); assert!( - matches!(&err, Error::NotSupported { message } if message.contains("LanceDB Distributed")), + matches!(&err, Error::NotSupported { message } if message.contains("LanceDB Enterprise")), "{err:?}" ); } diff --git a/rust/lancedb/src/table/add_columns.rs b/rust/lancedb/src/table/add_columns.rs index 24329d323..be319a8be 100644 --- a/rust/lancedb/src/table/add_columns.rs +++ b/rust/lancedb/src/table/add_columns.rs @@ -70,9 +70,9 @@ impl AddColumnsBuilder { /// expression names it. /// /// LanceDB Embedded declaration and refresh require the `experimental-functions` - /// Cargo feature. LanceDB Distributed operations do not require this feature. + /// Cargo feature. LanceDB Enterprise operations do not require this feature. /// - /// In LanceDB Distributed the expression is planned by the + /// In LanceDB Enterprise the expression is planned by the /// server, and the refresh runs as a server job -- see /// [`Table::refresh_column_async`](super::Table::refresh_column_async). /// diff --git a/rust/lancedb/src/table/computed_columns.rs b/rust/lancedb/src/table/computed_columns.rs index ecdaf6c7a..9a99f3c04 100644 --- a/rust/lancedb/src/table/computed_columns.rs +++ b/rust/lancedb/src/table/computed_columns.rs @@ -61,7 +61,7 @@ pub const AUTO_REFRESH_ENABLED_META_KEY: &str = "computed_column.auto_refresh_en pub const AUTO_REFRESH_INTERVAL_META_KEY: &str = "computed_column.auto_refresh_interval_seconds"; /// Scheduling settings persisted on each computed output. LanceDB Embedded -/// stores these settings; automatic scheduling requires LanceDB Distributed. +/// stores these settings; automatic scheduling requires LanceDB Enterprise. #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] #[serde(default, deny_unknown_fields)] pub struct ComputedColumnOptions { diff --git a/rust/lancedb/src/table/refresh.rs b/rust/lancedb/src/table/refresh.rs index 18dd832eb..ab55af50c 100644 --- a/rust/lancedb/src/table/refresh.rs +++ b/rust/lancedb/src/table/refresh.rs @@ -59,18 +59,18 @@ use crate::{Error, Result}; #[derive(Debug, Clone, Default)] #[non_exhaustive] pub struct RefreshColumnOptions { - /// Maximum rows per Function call in LanceDB Distributed. + /// Maximum rows per Function call in LanceDB Enterprise. /// /// Must be greater than zero. `None` uses the server default. This has no /// effect on expression-backed columns in LanceDB Embedded. pub batch_size: Option, - /// GPU class for Function workers in LanceDB Distributed. + /// GPU class for Function workers in LanceDB Enterprise. /// /// `None` keeps the Function's registered class, or the deployment default /// when the Function does not declare one. pub gpu_class: Option, /// Positive aggregate GPU budget for Function workers in LanceDB - /// Distributed. + /// Enterprise. /// /// `None` leaves the server's configured budget unchanged. pub gpu_count: Option, @@ -428,7 +428,7 @@ fn declared_expression(dataset: &Dataset, column: &str) -> Result { match declaration.kind { ComputedColumnKind::Sql { expression } => Ok(expression), ComputedColumnKind::Function { .. } => Err(Error::NotSupported { - message: "registered Function columns are refreshed only by a LanceDB Distributed job" + message: "registered Function columns are refreshed only by a LanceDB Enterprise job" .into(), }), ComputedColumnKind::Unrecognized { kind } => Err(Error::NotSupported {