Skip to content

Conversation

@feeblefakie
Copy link
Contributor

This is an automated backport of the following:

Please merge this PR after all checks have passed.

Co-authored-by: Toshihiro Suzuki <brfrn169@gmail.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @feeblefakie, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request backports a significant feature that enhances ScalarDB's capabilities by integrating administrative operations for object storage. It establishes a robust framework for managing namespaces and tables within object storage systems, starting with Azure Blob Storage. The changes include core logic for metadata handling, a generic wrapper for object storage interactions, and specific implementations for Blob storage, alongside extensive integration tests to ensure functionality. This allows for foundational data management tasks in object storage environments, while clearly defining and handling unsupported operations.

Highlights

  • Blob Adapter Administrative Operations: Adds comprehensive support for administrative operations within the Blob storage adapter, enabling management of namespaces and tables.
  • New Object Storage Abstraction Layer: Introduces a new abstraction layer for Object Storage, including interfaces for configuration (ObjectStorageConfig), wrapper functionality (ObjectStorageWrapper), and administrative tasks (ObjectStorageAdmin), with a concrete implementation for Azure Blob Storage.
  • Integration Tests for Object Storage Admin: Incorporates a suite of new integration tests specifically designed to validate the administrative functionalities of the Object Storage adapter, covering various scenarios for table and namespace management.
  • Build System Updates: Updates build.gradle files to include the Azure Blob Storage dependency and configure new integration test source sets and tasks for object storage.
  • Error Handling for Unsupported Features: Expands CoreError.java with new error codes to explicitly indicate administrative operations (like indexing, column dropping/renaming, table renaming, and import) that are not supported by the Object Storage adapter.
Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/ci.yaml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request backports support for administrative operations in the Blob adapter. It introduces new Gradle configurations and tasks for object storage integration tests, adds Azure Blob Storage as a new backend, and refines error messages related to unsupported administrative features. The changes also include new utility classes for object storage configuration, metadata handling, and a wrapper for Azure Blob Storage SDK interactions. Overall, the changes are well-structured and enhance the ScalarDB's capabilities with object storage.

@KodaiD
Copy link
Contributor

KodaiD commented Nov 6, 2025

@brfrn169 Could you take a glance at the changes in 7bc3e53? 🙏

Changes made:

  • Removed upgrade and related tests.
  • Removed repairNamespace and related tests.
  • Removed some tests that expect IllegalArgumentException when executing repairTable for non-existent tables because the Object Storage adapter's repairTable works as same as that of v4 (i.e., recreates the table if it does not exist).
  • Updated getNamespaceNames to return the metadata namespace name.

@KodaiD KodaiD requested a review from brfrn169 November 6, 2025 12:55
Copy link
Collaborator

@brfrn169 brfrn169 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you!

@KodaiD KodaiD merged commit 9146ea0 into 3 Nov 6, 2025
68 checks passed
@KodaiD KodaiD deleted the 3-pull-3104 branch November 6, 2025 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants