-
Regex-based File Cache Filtering
- GCSFuse now provides granular control over file caching through regular expressions, enabling users to prioritize critical datasets.
- This feature introduces two optional configuration parameters:
file-cache:include-regexandfile-cache:exclude-regex. These are accessible via the command-line flags--file-cache-include-regexand--file-cache-exclude-regex, respectively. - Regex patterns are evaluated against the complete object path. Each of these options can be used independently. When configured, files matching the exclude-regex are ineligible for caching. Similarly, when configured, only files matching the include-regex will be cached.
-
Unsupported Path Support
- GCSFuse gracefully handles objects with names like
//,.or.., ensuring the file operations do not throw errors.- Listing: Unsupported objects are hidden from file listings.
- Renaming or deleting a directory affects all contained objects, including unsupported ones. This prevents unsupported files from being accidentally left behind.
- GCSFuse gracefully handles objects with names like
-
Sparse file download behind an experimental flag.
- Added support for downloading requested chunks instead of complete files when filecache is enabled. Currently this feature is in experimental mode and behind a flag
--experimental-enable-chunk-cacheorfile-cache:experimental-enable-chunk-cacheconfig.
- Added support for downloading requested chunks instead of complete files when filecache is enabled. Currently this feature is in experimental mode and behind a flag
Bug Fixes & Improvements
- Redundant ListObject check on mount initialization is removed.
- Improves HNS folder listing by ~28x, reduces the time to list a folder containing 1000 folders from 1.7 seconds to 60ms. (PR#4099) (Issue#4075)
- Buffered Read Improvements
- Zero Copy: Removed a memory copy from the GCSFuse layer for the buffered reader, resulting in over 20% throughput improvement compared to the previous buffered reader implementation and a 6x throughput increase compared to the default reader. This optimization also reduces the CPU overhead previously required for data copy.
- Support for Sequential-after-Random Workloads: GCSFuse now automatically switches back to the buffered reader if the workload's read pattern becomes sequential after a period of random access
Dependency Upgrades / CVE fixes
- Go SDK patch release upgrade to v1.58.0
Full Changelog: v3.5.0...v3.6.0