extfuse
mindcastle.io
extfuse | mindcastle.io | |
---|---|---|
2 | 2 | |
200 | 21 | |
- | - | |
2.9 | 10.0 | |
about 1 year ago | over 1 year ago | |
C | C | |
GNU Lesser General Public License v3.0 only | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
extfuse
-
Gcsfuse: A user-space file system for interacting with Google Cloud Storage
FUSE does not work well with a large number of small files (due to high metadata ops such as inode/dentry lookups).
ExtFUSE (optimized FUSE with eBPF) [1] can offer you a high performance. It caches metadata in the kernel to avoid lookups in user space.
1. https://github.com/extfuse/extfuse
- Google Cloud Storage FUSE
mindcastle.io
-
Prolly Trees
I don’t know who came first, but https://github.com/jacobgorm/mindcastle.io also uses the rsync/LBFS rolling hashes trick to split the tree data into chunks. I presented the idea at Usenix Vault 2019 https://m.youtube.com/watch?v=QgOkDiP0C4c&embeds_referring_e...
-
Gcsfuse: A user-space file system for interacting with Google Cloud Storage
It is not how you would want do it for a typical ML workload, where the samples have to get randomly permuted each epoch.
Instead, tar up the files in some random order, and put the tar file on a web server or bucket, then stream then in during the first epoch, while keeping track of their byte offsets in the tar file, which you cache locally, assuming ample local Flash storage. Then permute the list of offsets and use those when reading samples for the next epoch.
If you only have local HDD then you will need a more advanced data structure like the one provided by https://github.com/jacobgorm/mindcastle.io , which will allow you to write out permuted samples at close to disk sequential write bandwidth. See my talk at USENIX Vault 2019 for a full explanation, linked from https://vertigo.ai/mindcastle/
What are some alternatives?
geesefs - Finally, a good FUSE FS implementation over S3
seafowl - Analytical database for data-driven Web applications 🪶
gcs-fuse-csi-driver - The Google Cloud Storage FUSE Container Storage Interface (CSI) Plugin.
thumbhash - A very compact representation of an image placeholder
csi-gcs - Kubernetes CSI driver for Google Cloud Storage
azure-storage-fuse-aur - AUR package for Azure Storage Blobfuse
gcp-filestore-csi-driver - The Google Cloud Filestore Container Storage Interface (CSI) Plugin.
azurefs - Mount Microsoft Azure Blob Storage as local filesystem in Linux (inactive)
curve - Curve is a sandbox project hosted by the CNCF Foundation. It's cloud-native, high-performance, and easy to operate. Curve is an open-source distributed storage system for block and shared file storage.
gcsfuse - A user-space file system for interacting with Google Cloud Storage
rclone - "rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
s3fs-fuse - FUSE-based file system backed by Amazon S3