Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extended Attributes Support (SetXAttr, GetXAttr, ListXAttr) #2525

Open
bhawesh-khandelwal opened this issue Sep 21, 2024 · 8 comments
Open
Labels
feature request Feature request: request to add new features or functionality p2 P2

Comments

@bhawesh-khandelwal
Copy link

bhawesh-khandelwal commented Sep 21, 2024

Describe the issue
GCSFuse does not support set and get extend attributes posix operations (SetXAttr, GetXAttr, ListXAttr) and throws operation not supported error for these. This can be very useful for many use cases such as storing filesystem metadata, custom application data etc.

There had been another request raised for similar but slightly different use case where the ask was to copy the metadata in case it is available in the object to local.

The request here is to at least support the operations on extended attributes for the session. These attributes can be stored in the iNode and can be served from the iNode as well. This can be the starting point and later this functionality can be extended to pushing these attributes to the cloud as well.

System & Version (please complete the following information):

  • Ubuntu 20.04
  • GKE
  • Gcsfuse version: 2.4.2

Steps to reproduce the behavior with following information:

  1. Mount a gcs bucket using gcsfuse.
  2. Create a file in the mounted directory
  3. Perform SetXAttr operation on the created file.

Additional context
Attaching the error screenshot for reference:
Screenshot 2024-09-21 at 9 23 19 PM

SLO:
We strive to respond to all bug reports within 24 business hours provided the information mentioned above is included.

@bhawesh-khandelwal bhawesh-khandelwal added p1 P1 question Customer Issue: question about how to use tool labels Sep 21, 2024
@bhawesh-khandelwal
Copy link
Author

As mentioned in the description, the request here is to support basic set, get, list operations on extended attributes and the starting can be done with storing them in iNode and later the functionality can be extended to populating them to the storage layer if required. I can work on supporting these operations once the feature request is accepted.

@raj-prince raj-prince added feature request Feature request: request to add new features or functionality p2 P2 and removed question Customer Issue: question about how to use tool p1 P1 labels Sep 22, 2024
@raj-prince
Copy link
Collaborator

raj-prince commented Sep 22, 2024

Thanks @bhawesh-khandelwal for the suggestion, I will discuss with the team and get back to you.

CC: @mustvicky @marcoa6 @charith87

@bhawesh-khandelwal
Copy link
Author

Thanks @raj-prince for the response.
This is sort of a pre-req for my project. When can I expect an update on feature acceptance? I can take up the implementation once the feature is accepted.

@bhawesh-khandelwal
Copy link
Author

@raj-prince A gentle reminder on this. Were you able to discuss it with the team?

@sethiay
Copy link
Contributor

sethiay commented Sep 26, 2024

@bhawesh-khandelwal While we are discussing this internally, it would be really helpful if you can elaborate a bit more on your use-case for extended attributes.

@bhawesh-khandelwal
Copy link
Author

@sethiay Sure. Our usecase is basically that we would want to store some extended attributes of the file for the mount session.
One process sets these extended attributes on the gcsfuse mounted file and other process poll for these attributes.

Please let me know in case any other information is required.

@marcoa6
Copy link
Collaborator

marcoa6 commented Sep 26, 2024

@bhawesh-khandelwal can you please provide more details on this usecase/project from a workload perspective (ex: AI/ML training, backup, home share, analytical workload, etc)? Also, do you work with a GCP account team you can also pass this request to?

@bhawesh-khandelwal
Copy link
Author

@marcoa6 Our usecase involves writing to gcs using gcsfuse and then we do backups. From a workload perspective, it is a backup project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request Feature request: request to add new features or functionality p2 P2
Projects
None yet
Development

No branches or pull requests

5 participants