apache / apache/gravitino

[EPIC] Implement GVFS fuse tools to access Gravitino file sets in the POSIX Protocol

Open
#5,504 0 comments 0 reactions 1 assignee Claimed by @diqiu50 View on GitHub
epic
Dominant language
Java
Stars
3.2k
Forks
935
Avg merge
1d 16h
Merged PRs (30d)
298

Description

### Describe the proposal

Implement GVFS fuse tools to access Gravitino file sets in the POSIX Protocols
Documents for [Gvfs fuse]( https://docs.google.com/document/d/1CtzyV8phpkfG3UknH5XGQtCJcRQ9yZxJW3rn4kFyIIA/edit?tab=t.0#heading=h.5fjiol3z6zpq)

How to use it in python:

```
# init fileset
fs_context = gvfs.fs.context(server_uri="http://localhost:8090", metalake_name="test_metalake", properties=config_gv)
fileset = fs_context.createFileset(path="fileset/test_catalog/schema1/ai_fileset", properties=config_fs)

# mount dir
root_dir = fileset.getRoot()
mount_dir = "/mnt/myfileset"
gvfs.util.mount(root_dir, mount_dir, properties=fileset.config())

# read file in the mounted directory
file_f = read(mountdir + "/0567/a.txt")
print(file_f.readToString())

# unmount
gvfs.util.unmount(mount_dir)
```

How to use it in command line:
```
#mount
gvfsutil mount --gvfs_path gvfs://fileset/test_catalog/schema1/ai_fileset --mount_path /mnt/ai_fileset --config /tmp/gvfs.config

#unmount
gvfsutil unmount /mnt/fileset/test_catalog/schema1/ai_fileset
```

### Task list

- [x] #5626
- [ ] #5743
- [x] #5734
- [ ] #5869
- [x] #5873
- [x] #5877
- [x] #5885
- [x] #5886
- [x] #5982
- [x] #6012
- [x] #6131
- [ ] #6223
- [x] #6279
- [x] #6357
- [x] #6404
- [ ] Metadata Cache
- [ ] Data Cache
- [ ] Support mount from a catalog or schema
- [ ] Gvfs Support for JuiceFS
- [x] #6320
- [ ] Gvfs Fuse Python lib: support mount and umount api
- [ ] Gvfs Permissions and Quotas
- [ ] Gvfs Monitoring and Metrics
- [ ] Gvfs Read/Write Performance Optimization

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.