Skip to content

v2.0.8

Latest

Choose a tag to compare

@Moonpuck Moonpuck released this 07 Jul 02:45
5c7d7c4

New Features

Disk Data Cache

Introduces a local disk cache layer that persists OSS object data on local storage, significantly reducing repeated network fetches.

  • New --disk_data_cache_dir and --disk_data_cache_size mount option to enable disk caching
  • Supports io_engine configuration

Unprivileged Mount

New fuse_device_fd option allows external programs to pre-open /dev/fuse and pass it to ossfs2, enabling mount without root privileges.

Mount Info Display

mount output now shows bucket.endpoint:/prefix as the mount source for easier identification.

Performance

  • Multi-GPU model loading throughput: Reduced OSS bandwidth waste in default mode through smarter prefetch window control and block cache retention, freeing up network bandwidth for higher concurrent read throughput in multi-GPU checkpoint loading scenarios.
  • LRUMap memory optimization: String keys in staged inode cache now stored once (map uses string_view), significantly reducing memory for large inode counts.

Refactoring

  • Cache module: Introduced ICache / ICacheStore / CacheHandle abstraction; renamed manager classes for clarity (e.g. BlockCacheManagerBlockCache, BlockCacheBlockCacheStore).
  • Writer module: Split OssWriter into OssNormalWriter and OssAppendableWriter.
  • IObjStore interface: Extracted generic object store abstraction from OSS client.

Bug Fixes

  • Reader refill underflow : Fixed uint64_t underflow in refill_size when refill_off >= remote_size.
  • Rename errno : Changed misleading EMFILE to E2BIG for oversized directory rename.

Dependencies

  • PhotonLibOS: Upgraded from 0.9.3 to 2bebdafb (0.9.4+). Includes FIEMAP flag fix, full_file_cache eviction fix,thread_yield performance fix, custom logger adaptation (microsecond precision, function name logging), and UDS server use-after-free fix.
  • cityhash: Added as new dependency for cache key hashing.