Skip to content

Releases: GoogleCloudPlatform/gcsfuse

Gcsfuse v2.2.0

28 May 19:20
9388fd8
Compare
Choose a tag to compare

New Features:

  • Kernel-list-cache:
    • List responses, that happen as a part of a readdir
      operation, are cached in the kernel page cache. This can significantly speed
      up AI/ML training runs, which do full directory listing first, by serving
      repeat ListObjects calls locally from the kernel page cache.
    • Cache invalidation is controlled via the --kernel-list-cache-ttl-secs cli
      flag or file-system:kernel-list-cache-ttl-secs config flag , where a value
      of:
      • 0 means disabled. This is the default value.
      • valid positive - represents the ttl (in seconds) to keep the directory
        list response in the kernel page-cache.
      • -1 to bypass a TTL expiration and serve the list response from the cache
        whenever it's available.

Enhancements:

  • Allow parallel lookups of files:
    • Allows parallel lookup/access of files under the same directory.
    • Before this release, if an application accessed two files
      /gcsfuse/mount/a.txt & /gcsfuse/mount/b.txt in parallel, then access was
      serialized (both at Kernel's FUSE driver layer and GCSFuse).
    • With this release, access is parallelized improving read performance up to
      18x when reading 100K files using 50 threads.

Dependency Upgrades / CVE fixes:

  • No dependency upgrades or CVE fixes.

What's Changed

Full Changelog: v2.1.0...v2.2.0

Gcsfuse v2.1.0

23 May 11:25
e12cd0e
Compare
Choose a tag to compare

New Features:

  • anonymous-access:
    Used to access an endpoint that does not require authentication, such as a publicly accessible bucket, or a test custom-endpoint.
    Can be set via CLI using --anonymous-access while mounting, or via the config file with
auth-config:
     anonymous-access: true

Users that previously used custom endpoints without authentication must additionally pass the anonymous-access flag. See the Changes section below.

  • Rocky Linux version 8.9 or later is now supported.

Enhancements:

  • Interrupt Handling:
    GCSFuse now offers enhanced control over how it responds to interruptions during file system operations. This addresses running Git clone operations on a GCSFuse mounted directory. (PR #1863, #1860) (Issues: #1016, #562, #321)
    You can configure GCSFuse to ignore interruptions during file system operations via CLI using --ignore-interrupts flag (disabled by default) or via config-file using the following config:
file-system:
    ignore-interrupts: true
  • TCP Connections:
    Changed the max-conns-per-host default from 100 maximum TCP connections to unlimited by defaulting max-conns-per-host to 0. This change will help in scenarios where customers are concurrently running more than 100 threads for file operations on GCFuse mounted directories. (PR #1909) (Issues: #1844, #1040)

Changes:

  • Custom-endpoint authentication:
    Previously, if a custom endpoint is specified, authentication is disabled on the endpoint. Starting with this release, it is now enabled. To use a custom-endpoint without authentication, using the new –anonymous-access feature.

Dependency Upgrades / CVE fixes:

  • Upgraded dependencies for better stability and CVE fixes (CVE-2023-45288). (PR #1811, #1894, #1916, #1915)
  • Storage sdk upgraded to 1.41.0 including the fix to retry on connection reset.

What's Changed

Full Changelog: v2.0.1...v2.1.0

Gcsfuse v2.0.1

23 Apr 04:54
879b823
Compare
Choose a tag to compare

gRPC [Allowlist access]:

  • Support added to communicate with the GCS backend via gRPC. gRPC is enabled by passing the flag --client-protocol=grpc as mount command. gRPC internally uses http2.
  • To use gRPC, contact the Google Cloud Storage gRPC team at gcs-grpc-contact@google.com with a list of GCS buckets to allowlist.
  • Performance guidance:
    • gRPC provides improved performance when using a single region or dual region bucket that is co-located in the same region as the compute instance.
    • gRPC provides improved performance for most workloads, but should not be used for workloads with high parallelism (>32 threads).

Bug fixes and improvements:

  • Respect log-format flag for stdout logs. (#1770)

Upgraded dependencies for better stability and reliability: (#1767, #1764, #1819)

Gcsfuse v2.0.0

15 Mar 06:57
3349a76
Compare
Choose a tag to compare
  1. File caching: A client-based local file cache that lets repeat file reads be served from a faster cache storage of your choice, such as a Local SSD, Persistent Disk, or in-memory /tmpfs. It significantly improves your read performance on subsequent reads/epochs. (more details here)

    • New config-file flags (more details here)
          cache-dir: (default=””)
          file-cache:
              max-size-mb: (default=-1) 
              cache-file-for-range-read: (default=false)
      
    • Behavior:
      • cache-dir: The file-cache feature is disabled by default. To enable it, pass a directory to cache-dir.
      • max-size-mb: This is used to limit the total capacity that the Cloud Storage FUSE cache can use within the specified cache directory. The eviction of cached data is based on a least recently used (LRU) algorithm. By default, a value of -1 signifies all available capacity in the specified directory.
      • cache-file-for-range-read: Enable file cache for Random & partial reads: Support for asynchronous cache ingestion of files on offset reads through cache-file-for-range-read.
  2. Updates to metadata-cache (stat & type caches) feature
    More details here.

    • Deprecated CLI flags
      • stat-cache-capacity was replaced with metadata-cache:stat-cache-max-size-mb.
      • stat-cache-ttl & type-cache-ttl were replaced with metadata-cache:ttl-secs.
    • New config-file flags (more details here)
         metadata-cache: 
               stat-cache-max-size-mb: (default=32)
               ttl-secs: (default=60)
               type-cache-max-size-mb: (default=4)
      
    • Behavior changes
      • type-cache-max-size-mb: Type-cache size limit can now be configured using this configuration, at per-directory level.
      • stat-cache-max-size-mb: The stat-cache size limit is now configured as memory size (in MiB) using this configuration instead of capacity (count of entries). Also, stat-cache is now configured at mount-level as opposed to bucket-level.
      • ttl-secs: stat-cache and type-cache TTLs have been merged into a single-TTL value, configurable via this configuration. Also, this new TTL is set as an integer multiple of seconds, as opposed to fine-grained duration (such as 1s500ms with the old flags).
      • To get the best performance, stat-cache-max-size-mb, ttl-secs and type-cache-max-size-mb can be individually set to -1 for unlimited size/ttl limits. Setting any of them to 0 disables the corresponding cache.
      • Use of deprecated flags will give warning, but for backward compatibility, their values will still heuristically be converted to the new flags and will be used. If both new and old flags are set, old flags are ignored.
  3. Managed folders compatibility

    • GCSFuse respects the managed folder IAM permissions in the bucket mounted with GCSFuse.
    • Pass --implicit-dir flag to view managed folders.
  4. Memory Improvements

    • The average memory usage of stat-cache is now reduced by up to 40%.
  5. Bug fixes and improvements

    • Fix concurrent list directory and file creation
    • Improvements in logging
      • Added log for successful/failed mounting on stdout when log-file is set in non-foreground mode.
  6. Removed --experimental-local-file-cache flag which used to be for an old experimental local file cache feature.

  7. Upgraded dependencies for better stability and reliability. (#1744, #1746)

Gcsfuse v2.0.0~beta.1

16 Feb 17:06
b700e15
Compare
Choose a tag to compare
Gcsfuse v2.0.0~beta.1 Pre-release
Pre-release
v2.0.0_beta.1

Enable or disable file cache via cache-dir (#1723)

Gcsfuse v1.4.2

26 Feb 15:30
342c39b
Compare
Choose a tag to compare
  • Upgrade Go to v1.21.6 (from v1.21.5)
  • [Perf Improvement] Improved read performance by reusing existing readers for subsequent reads. This reduced the overhead of unnecessary GCS connections and increased end-to-end read-bandwidth up to 75% for files smaller than 1 MB. (#1683)
  • Bump dependencies (#1630, #1650, #1671, #1672)

What's Changed

Full Changelog: v1.4.1...v1.4.2

Early Beta Release for GCS Fuse v2.0.0

08 Feb 09:42
Compare
Choose a tag to compare
Pre-release

Early Beta Release for GCS Fuse v2.0.0

Gcsfuse v1.4.1

22 Jan 10:45
56230ed
Compare
Choose a tag to compare
  • GCSFuse JSON format logs now seamlessly integrate with google-fluentd, enabling easier log analysis and management within Google Cloud's logging ecosystem. (Reference: http://cloud.google.com/logging/docs/agent/logging/configuration)
  • #1541 GCSFuse now adheres to proxy settings defined in environment variables (HTTP_PROXY, HTTPS_PROXY), providing greater adaptability in various network configurations.
  • GCSFuse mount command is now logged at INFO level, providing better visibility into mount operations and aiding in troubleshooting.

What's Changed

Full Changelog: v1.4.0...v1.4.1

Gcsfuse v1.4.0

27 Dec 08:25
90a4927
Compare
Choose a tag to compare
  • Added support for PyTorch 2.0
  • Upgraded the following dependency packages for fixing the given CVEs

What's Changed

Full Changelog: v1.3.0...v1.4.0

Gcsfuse v1.3.0

07 Dec 11:25
de3b3bc
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.2.1...v1.3.0