Control retry behavior for commits and version conflicts.
Variable
Default
Description
GENEVA_COMMIT_MAX_RETRIES
12
Maximum number of retries for commit operations. With exponential backoff (1s, 2s, 4s, 8s, 16s, then 16s capped), 12 retries gives ~2.5 minutes total wait time before giving up.
GENEVA_VERSION_CONFLICT_MAX_RETRIES
10
Maximum number of retries for version conflicts during commit. Version conflicts occur when concurrent backfills commit to the same fragments. Prevents infinite loops when concurrent commits keep conflicting.
GENEVA_WRITER_STALL_IDLE_ROUNDS
6
Number of idle rounds (5s each) before considering a writer stalled during drain. With many concurrent backfills, resource contention can slow writers without them being truly stalled.
This section configures retry logic for Lance I/O operations. Retries occur on OSError, ValueError, and RuntimeError("Too many concurrent writers") exceptions, and are retried with exponential backoff with jitter.
Variable
Default
Description
GENEVA_RETRY_LANCE_ATTEMPTS
7
Maximum number of retry attempts for Lance I/O operations.
GENEVA_RETRY_LANCE_INITIAL_SECS
0.5
Initial wait time in seconds for exponential backoff when retrying Lance I/O operations.
GENEVA_RETRY_LANCE_MAX_SECS
120.0
Maximum wait time in seconds for exponential backoff when retrying Lance I/O operations.
Checkpoint storage configuration is experimental. The environment variable names and behavior may change in a future release.
Configure where Geneva stores checkpoint data during job execution. Checkpoints enable fault-tolerant processing by saving intermediate results so that failed jobs can resume without reprocessing completed work.By default, Geneva stores checkpoints in a _ckp/ subdirectory inside the table’s own storage location. This means checkpoints share the same bucket and IOPS budget as the table data. You can override this to store checkpoints in a separate location.
Variable
Default
Description
JOB__CHECKPOINT__OBJECT_STORE__PATH
(table dir)/_ckp/
URI where checkpoint data is stored. When set, overrides the default in-table checkpoint location. Accepts any URI supported by Lance (e.g., gs://bucket/path/checkpoints, s3://bucket/checkpoints).
This variable maps to the config path job.checkpoint.object_store.path. It can also be set via config files in .config/ or pyproject.toml under the [geneva] section.
At scale, checkpoint I/O and data I/O compete for the same object store IOPS budget when they share a bucket prefix. Setting JOB__CHECKPOINT__OBJECT_STORE__PATH to a different bucket or prefix decouples checkpoint I/O from data I/O, giving each its own IOPS budget and preventing shared-prefix rate limiting.
# Example: separate checkpoint bucket from dataset storageJOB__CHECKPOINT__OBJECT_STORE__PATH=gs://my-checkpoints-bucket/ckpts
Equivalent programmatic configuration:
from geneva.config import override_config_kvoverride_config_kv({ "job.checkpoint.object_store.path": "gs://my-checkpoints-bucket/ckpts",})
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LanceDB","colors":{"primary":"#FF6B35","light":"#FF8A5C","dark":"#E55A2B"},"logo":{"light":"https://mintcdn.com/lancedb-bcbb4faf/6L0IRVkfdlgMU1Pw/static/assets/logo/dark-lancedb-logo.svg?fit=max\u0026auto=format\u0026n=6L0IRVkfdlgMU1Pw\u0026q=85\u0026s=d0592e59a29df2477080a857e13e341f","dark":"https://mintcdn.com/lancedb-bcbb4faf/6L0IRVkfdlgMU1Pw/static/assets/logo/light-lancedb-logo.svg?fit=max\u0026auto=format\u0026n=6L0IRVkfdlgMU1Pw\u0026q=85\u0026s=519956514d5529517daa4cb1f3d35392","href":"https://lancedb.com"},"favicon":"https://mintcdn.com/lancedb-bcbb4faf/0sS6vrpmM3KSVyss/static/favicon.ico?fit=max\u0026auto=format\u0026n=0sS6vrpmM3KSVyss\u0026q=85\u0026s=84b9ea3dfc312b7a4dfc99219e229b33","appearance":{"strict":false},"background":{"color":{"light":"#FAF5F0","dark":"#000000"}},"navbar":{"links":[{"href":"https://www.lancedb.com/contact","label":"Support"}]},"footer":{"socials":{"github":"https://github.com/lancedb","linkedin":"https://www.linkedin.com/company/lancedb","x":"https://x.com/lancedb","discord":"https://discord.gg/AUEWnJ7Txb"},"links":[{"items":[{"label":"Cookie settings","href":"#cookie-settings"}]}]},"fonts":{"family":"Inter"},"styling":{"codeblocks":{"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}},"latex":true},"integrations":{"ga4":{"measurementId":"G-1TMC2PR69E"}},"banner":{"content":"[Why Multimodal Data Needs a Better Lakehouse? — Download the Research Study](https://lancedb.com/download/)","dismissible":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"lancedb-bcbb4faf","hasAudioNarration":false,"actualSubdomain":"lancedb-bcbb4faf","customDomains":["docs.lancedb.com"],"gitSource":{"type":"github","owner":"lancedb","repo":"docs","deployBranch":"deploy-freeze","contentDirectory":"docs","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ad1ba1060c5abd76761bca2","collectionId":"f5c9f0e7-4822-4807-b59f-14a5f6599ae7","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ad1ba1060c5abd76761bca2"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ad1ba1060c5abd76761bca2","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API Reference","count":112},{"language":"default","tag":"Documentation","count":97},{"language":"default","tag":"Integrations","count":76},{"language":"default","tag":"REST API","count":55},{"language":"default","tag":"Table","count":44},{"language":"default","tag":"Guides","count":41},{"language":"default","tag":"Feature Engineering (Geneva)","count":34},{"language":"default","tag":"Datasets","count":32},{"language":"default","tag":"Tutorials","count":16},{"language":"default","tag":"Embedding Providers","count":15}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"static/styles/style.css","content":":root{--banner-left:#e4d8f8;--banner-right:#e55a2b}@font-face{font-family:\"LanceDB KaTeX AMS\";src:url(https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/fonts/KaTeX_AMS-Regular.woff2) format(\"woff2\");font-display:swap;font-style:normal;font-weight:400}.katex .mathbb,.katex .textbb{font-family:\"LanceDB KaTeX AMS\",\"KaTeX_AMS\",serif!important}#banner,:where(.banner, [data-banner], [class*=\"Banner_banner\"]){background:linear-gradient(90deg,var(--banner-left) 0%,var(--banner-right) 100%)!important;color:#1b0f09!important;border:0!important}#banner a,:where(.banner, [data-banner], [class*=\"Banner_banner\"]) a{color:#1b0f09!important;font-size:.9rem;font-weight:500;text-decoration-color:rgba(27,15,9,.35)}#banner button,:where(.banner, [data-banner], [class*=\"Banner_banner\"]) button{color:#1b0f09!important}"}],"page":{"pagePath":"geneva/udfs/advanced-configuration","slug":"/geneva/udfs/advanced-configuration","pageMetadata":{"title":"Advanced Configuration","sidebarTitle":"Advanced Configuration","description":"Learn about environment variables for configuring Geneva behavior.","icon":"flask-gear","href":"/geneva/udfs/advanced-configuration"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn about environment variables for configuring Geneva behavior.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Tip,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Geneva supports various environment variables that start with `,_jsx(_components.code,{children:`GENEVA_`}),` to configure advanced behavior and fine-tune system settings.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`All `,_jsx(_components.code,{children:`GENEVA_`}),` environment variables are optional and have sensible defaults. Only set them if you need to override the default behavior.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`admission-control`,children:`Admission Control`}),`\n`,_jsx(_components.p,{children:`Admission control validates cluster resources before starting jobs to prevent failures due to insufficient resources.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_ADMISSION__CHECK`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`Enable admission control checks. Set to `,_jsx(_components.code,{children:`false`}),` to skip all checks.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_ADMISSION__STRICT`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`true`})}),_jsxs(_components.td,{children:[`If `,_jsx(_components.code,{children:`true`}),`, reject the job with `,_jsx(_components.code,{children:`ResourcesUnavailableError`}),` when resources are insufficient. If `,_jsx(_components.code,{children:`false`}),`, log a warning but allow the job to proceed.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_ADMISSION__TIMEOUT`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`3.0`})}),_jsx(_components.td,{children:`Timeout in seconds for Ray API calls during admission control checks. Prevents hanging when the cluster is in a bad state.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`commit-and-retry-configuration`,children:`Commit and Retry Configuration`}),`\n`,_jsx(_components.p,{children:`Control retry behavior for commits and version conflicts.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_COMMIT_MAX_RETRIES`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`12`})}),_jsx(_components.td,{children:`Maximum number of retries for commit operations. With exponential backoff (1s, 2s, 4s, 8s, 16s, then 16s capped), 12 retries gives ~2.5 minutes total wait time before giving up.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_VERSION_CONFLICT_MAX_RETRIES`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`10`})}),_jsx(_components.td,{children:`Maximum number of retries for version conflicts during commit. Version conflicts occur when concurrent backfills commit to the same fragments. Prevents infinite loops when concurrent commits keep conflicting.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_WRITER_STALL_IDLE_ROUNDS`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`6`})}),_jsx(_components.td,{children:`Number of idle rounds (5s each) before considering a writer stalled during drain. With many concurrent backfills, resource contention can slow writers without them being truly stalled.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`lance-retry-configuration`,children:`Lance Retry Configuration`}),`\n`,_jsxs(_components.p,{children:[`This section configures retry logic for Lance I/O operations. Retries occur on `,_jsx(_components.code,{children:`OSError`}),`, `,_jsx(_components.code,{children:`ValueError`}),`, and `,_jsx(_components.code,{children:`RuntimeError(\"Too many concurrent writers\")`}),` exceptions, and are retried with exponential backoff with jitter.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_RETRY_LANCE_ATTEMPTS`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`7`})}),_jsx(_components.td,{children:`Maximum number of retry attempts for Lance I/O operations.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_RETRY_LANCE_INITIAL_SECS`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`0.5`})}),_jsx(_components.td,{children:`Initial wait time in seconds for exponential backoff when retrying Lance I/O operations.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_RETRY_LANCE_MAX_SECS`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`120.0`})}),_jsx(_components.td,{children:`Maximum wait time in seconds for exponential backoff when retrying Lance I/O operations.`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`checkpoint-storage`,children:`Checkpoint Storage`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Checkpoint storage configuration is `,_jsx(_components.strong,{children:`experimental`}),`. The environment variable names and behavior may change in a future release.`]})}),`\n`,_jsx(_components.p,{children:`Configure where Geneva stores checkpoint data during job execution. Checkpoints enable fault-tolerant processing by saving intermediate results so that failed jobs can resume without reprocessing completed work.`}),`\n`,_jsxs(_components.p,{children:[`By default, Geneva stores checkpoints in a `,_jsx(_components.code,{children:`_ckp/`}),` subdirectory inside the table’s own storage location. This means checkpoints share the same bucket and IOPS budget as the table data. You can override this to store checkpoints in a separate location.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`JOB__CHECKPOINT__OBJECT_STORE__PATH`})}),_jsxs(_components.td,{children:[_jsx(_components.em,{children:`(table dir)`}),_jsx(_components.code,{children:`/_ckp/`})]}),_jsxs(_components.td,{children:[`URI where checkpoint data is stored. When set, overrides the default in-table checkpoint location. Accepts any URI supported by Lance (e.g., `,_jsx(_components.code,{children:`gs://bucket/path/checkpoints`}),`, `,_jsx(_components.code,{children:`s3://bucket/checkpoints`}),`).`]})]})})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`This variable maps to the config path `,_jsx(_components.code,{children:`job.checkpoint.object_store.path`}),`. It can also be set via config files in `,_jsx(_components.code,{children:`.config/`}),` or `,_jsx(_components.code,{children:`pyproject.toml`}),` under the `,_jsx(_components.code,{children:`[geneva]`}),` section.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`why-use-a-separate-checkpoint-path`,children:`Why use a separate checkpoint path?`}),`\n`,_jsxs(_components.p,{children:[`At scale, checkpoint I/O and data I/O compete for the same object store IOPS budget when they share a bucket prefix. Setting `,_jsx(_components.code,{children:`JOB__CHECKPOINT__OBJECT_STORE__PATH`}),` to a `,_jsx(_components.strong,{children:`different bucket or prefix`}),` decouples checkpoint I/O from data I/O, giving each its own IOPS budget and preventing shared-prefix rate limiting.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light catppuccin-mocha`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#393a34`,\"--shiki-dark\":`#cdd6f4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#A0ADA0`,\"--shiki-light-font-style\":`inherit`,\"--shiki-dark\":`#9399B2`,\"--shiki-dark-font-style\":`italic`},children:`# Example: separate checkpoint bucket from dataset storage`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B07D48`,\"--shiki-dark\":`#CDD6F4`},children:`JOB__CHECKPOINT__OBJECT_STORE__PATH`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#94E2D5`},children:`=`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#A6E3A1`},children:`gs://my-checkpoints-bucket/ckpts`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Equivalent programmatic configuration:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes vitesse-light catppuccin-mocha`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#1e1e2e`,color:`#393a34`,\"--shiki-dark\":`#cdd6f4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`5`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1E754F`,\"--shiki-dark\":`#CBA6F7`},children:`from`}),_jsx(_components.span,{style:{color:`#393A34`,\"--shiki-dark\":`#CDD6F4`},children:` geneva`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#9399B2`},children:`.`}),_jsx(_components.span,{style:{color:`#393A34`,\"--shiki-dark\":`#CDD6F4`},children:`config `}),_jsx(_components.span,{style:{color:`#1E754F`,\"--shiki-dark\":`#CBA6F7`},children:`import`}),_jsx(_components.span,{style:{color:`#393A34`,\"--shiki-dark\":`#CDD6F4`},children:` override_config_kv`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#393A34`,\"--shiki-dark\":`#89B4FA`},children:`override_config_kv`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#9399B2`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#A6E3A1`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#A6E3A1`},children:`job.checkpoint.object_store.path`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#9399B2`},children:`:`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#A6E3A1`},children:` \"`}),_jsx(_components.span,{style:{color:`#B56959`,\"--shiki-dark\":`#A6E3A1`},children:`gs://my-checkpoints-bucket/ckpts`}),_jsx(_components.span,{style:{color:`#B5695977`,\"--shiki-dark\":`#A6E3A1`},children:`\"`}),_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#9399B2`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#999999`,\"--shiki-dark\":`#9399B2`},children:`})`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`other-configuration`,children:`Other Configuration`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Default`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_RAY_INIT_MAX_RETRIES`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`5`})}),_jsxs(_components.td,{children:[`Maximum number of retry attempts for `,_jsx(_components.code,{children:`ray.init()`}),` connection failures. Useful when connecting to Ray clusters that may be temporarily unavailable.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_K8S_AUTH_MAX_RETRIES`})}),_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`3`})}),_jsx(_components.td,{children:`Maximum number of retries for Kubernetes authentication operations. Must be at least 1.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`GENEVA_CONFIG_DIR`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`./.config`})}),_jsxs(_components.td,{children:[`Directory path where Geneva looks for configuration files (`,_jsx(_components.code,{children:`.yaml`}),`, `,_jsx(_components.code,{children:`.json`}),`, `,_jsx(_components.code,{children:`.toml`}),`). Can be an absolute or relative path.`]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":{"theme":{"light":"vitesse-light","dark":"catppuccin-mocha"}},"config":{},"pageMetadata":{"title":"Advanced Configuration","sidebarTitle":"Advanced Configuration","description":"Learn about environment variables for configuring Geneva behavior.","icon":"flask-gear","href":"/geneva/udfs/advanced-configuration"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Admission Control","slug":"admission-control","depth":2,"children":[]},{"title":"Commit and Retry Configuration","slug":"commit-and-retry-configuration","depth":2,"children":[]},{"title":"Lance Retry Configuration","slug":"lance-retry-configuration","depth":2,"children":[]},{"title":"Checkpoint Storage","slug":"checkpoint-storage","depth":2,"children":[{"title":"Why use a separate checkpoint path?","slug":"why-use-a-separate-checkpoint-path","depth":3,"children":[]}]},{"title":"Other Configuration","slug":"other-configuration","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/lancedb-bcbb4faf/71b64c20a8f631b3/static/scripts/cookie-consent.js"],"subdomain":"lancedb-bcbb4faf","siteName":"LanceDB","title":"Advanced Configuration - LanceDB","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-02T03:25:53.501Z","originalFileLocation":"geneva/udfs/advanced-configuration.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn about environment variables for configuring Geneva behavior.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LanceDB\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Advanced Configuration - LanceDB\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn about environment variables for configuring Geneva behavior.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LanceDB\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.lancedb.com/geneva/udfs/advanced-configuration\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://lancedb-bcbb4faf.mintlify.app/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Advanced+Configuration\u0026amp;description=Learn+about+environment+variables+for+configuring+Geneva+behavior.\u0026amp;theme=123a95b5dfac0c4bc2a3854c\u0026amp;signature=462755436282e5d8a261c1c22ec943e77a5cced4631d11af9378ee2fb023a963\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Advanced Configuration - LanceDB\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn about environment variables for configuring Geneva behavior.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://lancedb-bcbb4faf.mintlify.app/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Advanced+Configuration\u0026amp;description=Learn+about+environment+variables+for+configuring+Geneva+behavior.\u0026amp;theme=123a95b5dfac0c4bc2a3854c\u0026amp;signature=462755436282e5d8a261c1c22ec943e77a5cced4631d11af9378ee2fb023a963\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/lancedb-bcbb4faf/AJCI1CXWoYDPZbb4/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LanceDB\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF6B35\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.lancedb.com/geneva/udfs/advanced-configuration\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/geneva/udfs/advanced-configuration.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.lancedb.com/#organization\",\"name\":\"LanceDB\",\"url\":\"https://docs.lancedb.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/lancedb-bcbb4faf/6L0IRVkfdlgMU1Pw/static/assets/logo/dark-lancedb-logo.svg?fit=max\u0026auto=format\u0026n=6L0IRVkfdlgMU1Pw\u0026q=85\u0026s=d0592e59a29df2477080a857e13e341f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.lancedb.com#website\",\"name\":\"LanceDB\",\"url\":\"https://docs.lancedb.com\",\"publisher\":{\"@id\":\"https://docs.lancedb.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration#webpage\",\"url\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration\",\"name\":\"Advanced Configuration\",\"description\":\"Learn about environment variables for configuring Geneva behavior.\",\"dateModified\":\"2026-04-02T03:25:53.501Z\",\"isPartOf\":{\"@id\":\"https://docs.lancedb.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Feature Engineering (Geneva)\",\"item\":\"https://docs.lancedb.com/geneva/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deployment\",\"item\":\"https://docs.lancedb.com/geneva/deployment/helm\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Advanced Configuration\",\"item\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration#article\",\"headline\":\"Advanced Configuration\",\"name\":\"Advanced Configuration\",\"description\":\"Learn about environment variables for configuring Geneva behavior.\",\"url\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration\",\"mainEntityOfPage\":{\"@id\":\"https://docs.lancedb.com/geneva/udfs/advanced-configuration#webpage\"},\"dateModified\":\"2026-04-02T03:25:53.501Z\",\"publisher\":{\"@id\":\"https://docs.lancedb.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.lancedb.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LanceDB\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"LanceDB","nav":{"global":null,"tabs":[{"tab":"Documentation","groups":[{"group":"Get started","pages":[{"title":"Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/quickstart"},{"group":"What is LanceDB?","pages":[{"title":"LanceDB","sidebarTitle":"LanceDB","icon":"https://mintlify.s3.us-west-1.amazonaws.com/lancedb-bcbb4faf/static/assets/logo/lancedb-icon-gray.svg","href":"/index"},{"title":"Lance format","sidebarTitle":"Lance format","icon":"https://mintlify.s3.us-west-1.amazonaws.com/lancedb-bcbb4faf/static/assets/logo/lance-logo-gray.svg","href":"/lance"},{"title":"Tables and Namespaces","sidebarTitle":"Tables and Namespaces","icon":"table","href":"/tables-and-namespaces"}]},{"group":"LanceDB Enterprise","pages":[{"title":"LanceDB Enterprise","sidebarTitle":"Overview","icon":"server","href":"/enterprise/index"},{"title":"Architecture","sidebarTitle":"Architecture","icon":"cubes","href":"/enterprise/architecture"},{"title":"Security \u0026 Compliance","sidebarTitle":"Security","icon":"shield-alt","href":"/enterprise/security"},{"title":"Authentication","sidebarTitle":"Authentication","icon":"key","href":"/enterprise/authentication"},{"title":"Benchmarks","sidebarTitle":"Benchmarks","icon":"tachometer-alt","href":"/enterprise/benchmarks"},{"group":"Deployment","pages":[{"title":"Deployment guide","sidebarTitle":"Overview","icon":"list","href":"/enterprise/deployment/index"},{"title":"Azure deployment guide","sidebarTitle":"Azure","icon":"cloud","href":"/enterprise/deployment/azure"}]}]},{"title":"Performance Tips and Best Practices","sidebarTitle":"Performance Tips","icon":"gauge-high","href":"/performance"}]},{"group":"Model training","pages":[{"title":"Why LanceDB for Training","sidebarTitle":"Why LanceDB for training","icon":"fire","href":"/training/why-lancedb"},{"title":"Loading Data for Model Training","sidebarTitle":"Data Loading","icon":"boxes-stacked","href":"/training/data-loading"},{"title":"PyTorch Integration","sidebarTitle":"PyTorch integration","icon":"fire","href":"/training/torch"},{"title":"LeRobot Native Integration","sidebarTitle":"LeRobot native integration","icon":"robot","href":"/training/lerobot"},{"title":"Object Detection for AV Perception","sidebarTitle":"Example: Object Detection","icon":"car","href":"/training/object-detection"},{"title":"Fine-tuning a VLM on TextVQA","sidebarTitle":"Example: VLM finetuning","icon":"image","href":"/training/vlm-finetuning"}]},{"group":"Guides","pages":[{"group":"Table operations","pages":[{"title":"Basic Table Operations","sidebarTitle":"Basic usage","icon":"table","href":"/tables/index"},{"title":"Ingesting Data","sidebarTitle":"Ingesting data","icon":"cookie","href":"/tables/create"},{"title":"Multimodal Data (Blobs)","sidebarTitle":"Working with multimodal data","icon":"images","href":"/tables/multimodal"},{"title":"Schema and Data Evolution","sidebarTitle":"Schema \u0026 data evolution","icon":"boxes-stacked","href":"/tables/schema"},{"title":"Updating and Modifying Table Data","sidebarTitle":"Update/modify data","icon":"clone","href":"/tables/update"},{"title":"Versioning and Reproducibility","sidebarTitle":"Versioning","icon":"clock","href":"/tables/versioning"},{"title":"Branches","sidebarTitle":"Branches","icon":"code-branch","href":"/tables/branching"},{"title":"Consistency","sidebarTitle":"Consistency","icon":"water","href":"/tables/consistency"}]},{"group":"Namespaces","pages":[{"title":"Namespaces and the Catalog Model","sidebarTitle":"Overview","icon":"sitemap","href":"/namespaces/index"},{"title":"Using Namespaces","sidebarTitle":"Using namespaces","icon":"folder-tree","href":"/namespaces/usage"}]},{"group":"Embeddings","pages":[{"title":"Managing Embeddings","sidebarTitle":"Overview","icon":"bars","href":"/embedding/index"},{"title":"Embeddings: Quickstart","sidebarTitle":"Quickstart","icon":"rocket","href":"/embedding/quickstart"}]},{"group":"Indexing","pages":[{"title":"Indexing Data","sidebarTitle":"Overview","icon":"list","href":"/indexing/index"},{"title":"Vector Indexes","sidebarTitle":"Vector Index","icon":"arrow-up-right-dots","href":"/indexing/vector-index"},{"title":"Quantization","sidebarTitle":"Quantization","icon":"compress","href":"/indexing/quantization"},{"title":"Full-Text Search (FTS) Index","sidebarTitle":"FTS index","icon":"book","href":"/indexing/fts-index"},{"title":"Scalar Indexes","sidebarTitle":"Scalar Index","icon":"tree","href":"/indexing/scalar-index"},{"title":"GPU-Powered Vector Indexing","sidebarTitle":"GPU indexing","icon":"https://mintlify.s3.us-west-1.amazonaws.com/lancedb-bcbb4faf/static/assets/logo/lance-logo-gray.svg","href":"/indexing/gpu-indexing"},{"title":"Keeping Indexes Up-to-Date with Reindexing","sidebarTitle":"Reindexing","icon":"refresh","href":"/indexing/reindexing"}]},{"group":"Search","pages":[{"title":"Search","sidebarTitle":"Overview","icon":"list","href":"/search/index"},{"title":"Vector Search","sidebarTitle":"Vector search","icon":"arrow-up-right-dots","href":"/search/vector-search"},{"title":"Multivector Search","sidebarTitle":"Multivector search","icon":"braille","href":"/search/multivector-search"},{"title":"Full-Text Search (FTS)","sidebarTitle":"Full-Text Search (FTS)","icon":"book","href":"/search/full-text-search"},{"title":"Full-Text Search Examples","sidebarTitle":"FTS Examples","icon":"book-open","href":"/search/fts-examples"},{"title":"Hybrid Search","sidebarTitle":"Hybrid search","icon":"search","href":"/search/hybrid-search"},{"title":"Metadata Filtering in LanceDB","sidebarTitle":"Filtering","icon":"filter","href":"/search/filtering"},{"title":"Optimize Query Performance","sidebarTitle":"Query optimization","icon":"gauge","href":"/search/optimize-queries"},{"group":"Enterprise SQL","pages":[{"title":"Query with SQL","sidebarTitle":"SQL","icon":"clipboard-question","href":"/search/sql/index"},{"title":"Full-Text Search with SQL","sidebarTitle":"FTS with SQL","icon":"book","href":"/search/sql/fts-sql"}]}]},{"group":"Reranking","pages":[{"title":"Reranking Search Results","sidebarTitle":"Overview","icon":"sort-amount-down","href":"/reranking/index"},{"title":"Reciprocal Rank Fusion Reranker","sidebarTitle":"RRF Algorithm","href":"/reranking/rrf"},{"title":"Linear Combination Reranker","sidebarTitle":"Linear Combination","href":"/reranking/linear_combination"},{"title":"MRR Reranker","sidebarTitle":"MRR Algorithm","href":"/reranking/mrr"},{"title":"Cross Encoder Reranker","sidebarTitle":"Cross Encoder","href":"/reranking/cross_encoder"},{"title":"Building Custom Rerankers","sidebarTitle":"Custom rerankers","icon":"code","href":"/reranking/custom-reranker"},{"title":"Evaluating Hybrid Search Performance","sidebarTitle":"Evaluation","icon":"chart-bar","href":"/reranking/eval"}]},{"group":"Storage","pages":[{"title":"Storage Architecture in LanceDB","sidebarTitle":"Storage options","icon":"database","href":"/storage/index"},{"title":"Configuring Cloud Storage in LanceDB","sidebarTitle":"Configuring storage","icon":"wrench","href":"/storage/configuration"},{"title":"Monitor LanceDB with OpenTelemetry","sidebarTitle":"Monitoring","icon":"chart-line","href":"/storage/monitoring"}]},{"group":"Build with AI agents","expanded":true,"pages":[{"title":"Tutorial: Use the LanceDB agent plugin","sidebarTitle":"LanceDB agent plugin","icon":"robot","href":"/build-with-ai-agents"},{"title":"Run experiments on branches","sidebarTitle":"Run experiments on branches","icon":"flask","href":"/agent-branch-experiments"}]}]},{"group":"Feature Engineering (Geneva)","pages":[{"title":"Multimodal Feature Engineering with Geneva","sidebarTitle":"Overview","icon":"layer-group","href":"/geneva/index"},{"title":"What is Feature Engineering?","sidebarTitle":"What is feature engineering?","icon":"grip-horizontal","href":"/geneva/overview/index"},{"title":"Getting Started","sidebarTitle":"Getting Started","icon":"rocket","href":"/geneva/getting-started"},{"group":"Transforms","pages":[{"title":"Understanding Transforms","sidebarTitle":"Understanding Transforms","icon":"code-compare","href":"/geneva/udfs/index"},{"title":"User-Defined Functions (UDFs)","sidebarTitle":"UDFs","icon":"function","href":"/geneva/udfs/udfs"},{"title":"Chunkers (Scalar UDTFs)","sidebarTitle":"Chunkers","icon":"diagram-subtask","href":"/geneva/udfs/scalar-udtfs"},{"title":"Batch User-Defined Table Functions (UDTFs)","sidebarTitle":"Batch UDTFs","icon":"layer-group","href":"/geneva/udfs/batch-udtfs"},{"title":"Error Handling in Geneva UDFs","sidebarTitle":"Error Handling","icon":"exclamation","href":"/geneva/udfs/error_handling"},{"title":"Profiling Stateful UDF Memory","sidebarTitle":"Profiling Memory","icon":"chart-line","href":"/geneva/udfs/profiling-memory"},{"title":"Blob Types in Geneva UDFs","sidebarTitle":"Blobs","icon":"splotch","href":"/geneva/udfs/blobs"}]},{"group":"Built-in Transforms","pages":[{"title":"Built-in LLM and Embedding UDFs","sidebarTitle":"Overview","icon":"sparkles","href":"/geneva/udfs/providers/index"},{"title":"OpenAI","sidebarTitle":"OpenAI","icon":"brain","href":"/geneva/udfs/providers/openai"},{"title":"Gemini","sidebarTitle":"Gemini","icon":"google","href":"/geneva/udfs/providers/gemini"},{"title":"Sentence Transformers","sidebarTitle":"Sentence Transformers","icon":"microchip","href":"/geneva/udfs/providers/sentence-transformers"}]},{"group":"Running Jobs","pages":[{"title":"Geneva Jobs","sidebarTitle":"Job execution","href":"/geneva/jobs/index"},{"title":"Backfilling","sidebarTitle":"Backfilling","icon":"fill","href":"/geneva/jobs/backfilling"},{"title":"Bulk Loading \u0026 Updating Columns","sidebarTitle":"Bulk Load / Update Columns","icon":"columns-3","href":"/geneva/jobs/bulk-load-columns"},{"title":"Materialized Views with UDFs","sidebarTitle":"Materialized views","icon":"microscope","href":"/geneva/jobs/materialized-views"},{"title":"Advanced Job Configuration","sidebarTitle":"Advanced job configuration","icon":"sliders","href":"/geneva/jobs/advanced-job-configuration"},{"title":"Job Lifecycle","sidebarTitle":"Job Lifecycle","icon":"arrows-spin","href":"/geneva/jobs/lifecycle"},{"title":"Backfill Conflicts","sidebarTitle":"Backfill Conflicts","icon":"code-merge","href":"/geneva/jobs/conflicts"},{"title":"Distributed Job Performance and Cluster Sizing","sidebarTitle":"Performance and Sizing","icon":"chart-line","href":"/geneva/jobs/performance"},{"title":"Job Metrics (Diagnostics)","sidebarTitle":"Job Metrics","icon":"chart-simple","href":"/geneva/jobs/job_metrics"},{"title":"Geneva Console","sidebarTitle":"Console","icon":"computer","href":"/geneva/jobs/console"},{"title":"Troubleshooting Geneva Jobs","sidebarTitle":"Job troubleshooting","icon":"wrench","href":"/geneva/jobs/troubleshooting"},{"title":"Advanced Execution Contexts","sidebarTitle":"Advanced execution contexts","icon":"circle-nodes","href":"/geneva/jobs/contexts"}]},{"group":"Deployment","pages":[{"title":"Deploy Geneva using Helm","sidebarTitle":"Helm Deployment","icon":"cogs","href":"/geneva/deployment/helm"},{"title":"Job and Session Startup Optimizations","sidebarTitle":"Startup optimizations","icon":"engine","href":"/geneva/jobs/startup"},{"title":"Dependency Verification","sidebarTitle":"Dependency Verification","description":"Diagnose and resolve package version mismatches between local and distributed worker environments.","icon":"magnifying-glass-chart","href":"/geneva/deployment/dependency-verification"},{"title":"Advanced Configuration","sidebarTitle":"Advanced Configuration","icon":"flask-gear","href":"/geneva/udfs/advanced-configuration"},{"title":"Manual Deployment on Kubernetes","sidebarTitle":"Manual Deployment","description":"Learn how to deploy Geneva on Kubernetes using KubeRay for distributed feature engineering workflows on GKE and EKS.","icon":"cogs","href":"/geneva/deployment/index"},{"title":"Troubleshooting Geneva Deployments","sidebarTitle":"Deployment Troubleshooting","icon":"question-circle","href":"/geneva/deployment/troubleshooting"}]},{"title":"End-to-End Example","sidebarTitle":"End-to-end example","icon":"play","href":"/geneva/end-to-end"},{"title":"Geneva Python SDK","icon":"python","href":"/geneva/reference"}]},{"group":"Support","pages":[{"title":"Troubleshooting","sidebarTitle":"Troubleshooting","icon":"tools","href":"/troubleshooting"},{"group":"FAQ","pages":[{"title":"Frequently Asked Questions","sidebarTitle":"FAQ","icon":"question-circle","href":"/faq/index"},{"title":"LanceDB: Frequently Asked Questions","sidebarTitle":"LanceDB OSS","icon":"code","mode":"wide","href":"/faq/faq-oss"},{"title":"LanceDB Enterprise FAQ","sidebarTitle":"LanceDB Enterprise","icon":"server","mode":"wide","href":"/faq/faq-enterprise"}]}]}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations"}]},{"tab":"Tutorials","pages":[{"title":"Tutorials","href":"/tutorials"}]},{"tab":"Demos","pages":[{"title":"Demos","href":"/demos"}]},{"tab":"Datasets","pages":[{"title":"Datasets","href":"/datasets"}]},{"tab":"Use Cases","pages":[{"title":"Use Cases","href":"/integrations/lerobotdataset"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"}]}]},"title":"Advanced Configuration - LanceDB","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["10e4515597"],"chunks":["BannerMarkdown-CJDb0dYK.js","dist-Cv_O2fky.js","lib--scc4DXi.js","lib-B8HbPgcC.js","clsx-BGBGWFTt.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js"]}