Skip to content

feat: add Tencent GooseFS Table Master namespace implementation (Python)#122

Open
XuQianJin-Stars wants to merge 2 commits into
lance-format:mainfrom
XuQianJin-Stars:feature/goosefs-namespace
Open

feat: add Tencent GooseFS Table Master namespace implementation (Python)#122
XuQianJin-Stars wants to merge 2 commits into
lance-format:mainfrom
XuQianJin-Stars:feature/goosefs-namespace

Conversation

@XuQianJin-Stars

@XuQianJin-Stars XuQianJin-Stars commented Jun 17, 2026

Copy link
Copy Markdown

Closes #121

Summary

Add a new Lance Namespace implementation backed by Tencent Cloud GooseFS Table Master to the Python lance-namespace-impls package. GooseFS Table Master is a Lance-native metadata service exposed over gRPC and is purpose-built for Lance, so every registered table is a Lance table and no table_type=lance marker filtering is required on the client side.

This implementation acts as a thin pass-through layer that translates each Lance Namespace request into the corresponding gRPC request defined by the GooseFS Table Master schema, forwarded through the official goosefs-metastore-client library. It follows the same integration pattern already used for Hive, Glue, Iceberg, Polaris, and Unity in this repo.

Changes

  • New GooseFSNamespace class in python/src/lance_namespace_impls/goosefs.py, registered as goosefs in LanceNamespaces.
  • Two-level namespace hierarchy (database then table); identifier is forwarded verbatim to the Table Master.
  • Configurable connection (uri, host, port, timeout, max_retries), authentication (authentication_enabled, username, impersonation_user), and namespace defaults (manifest_enabled, dir_listing_enabled).
  • Operations: namespace Create/List/Describe/Drop/Exists; table Create/CreateEmpty/Declare/Register/List/Describe/Drop/Deregister/Exists/Rename; data plane Insert/MergeInsert/Delete/Update/Query/CountRows; schema evolution AddColumns/AlterColumns/DropColumns/UpdateSchemaMetadata; indexing CreateIndex/CreateScalarIndex/ListIndices/DescribeIndexStats/DropIndex; tags and versioning; transactions and query planning.
  • New optional extra goosefs in python/pyproject.toml with goosefs-metastore-client==0.1.7, grpcio>=1.78, grpcio-status>=1.78.
  • New Makefile targets lint-goosefs, install-goosefs, test-goosefs, integ-test-goosefs.
  • Unit tests in python/tests/test_goosefs.py and integration tests in python/tests/test_goosefs_integration.py (auto-skipped when the service is unreachable).
  • New docs page docs/src/goosefs.md and navigation entry in docs/src/.pages.

Testing

ruff format --check and ruff check pass on the whole python/ tree. python -m compileall succeeds for src/ and tests/. Unit tests pass with the goosefs extra installed. Integration tests pass against a live GooseFS Table Master.

User-facing changes

Purely additive: a new optional extra pip install lance-namespace[goosefs], a new impl name goosefs for LanceNamespaces.connect, and a new docs page. No existing implementation is modified.

XuQianJin-Stars and others added 2 commits May 20, 2026 18:09
# Conflicts:
#	python/pyproject.toml
#	python/uv.lock
@github-actions

Copy link
Copy Markdown

ACTION NEEDED
Lance follows the Conventional Commits specification for release automation.

The PR title and description are used as the merge commit message. Please update your PR title and description to match the specification.

For details on the error please inspect the "PR Title Check" action.

@XuQianJin-Stars XuQianJin-Stars changed the title feat: Add Tencent GooseFS Table Master namespace implementation (Python) feat: Add Tencent GooseFS Table Master namespace implementation (Python) Jun 17, 2026
@github-actions github-actions Bot added the enhancement New feature or request label Jun 17, 2026
@XuQianJin-Stars XuQianJin-Stars changed the title feat: Add Tencent GooseFS Table Master namespace implementation (Python) feat: add Tencent GooseFS Table Master namespace implementation (Python) Jun 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs enhancement New feature or request python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: add Tencent GooseFS Table Master namespace implementation (Python)

2 participants