# Release History

## US3FS v2.0.3

### Fixed

- Fixed incorrect GID/UID display in some scenarios

## US3FS v2.0.2

### Fixed

- Fixed a rare issue where the last part could be missing during large file uploads

## US3FS v2.0.1

### Added

- Added `fuse_session_cnt` to set the number of connections between US3FS and the kernel FUSE module, improving read/write performance

## US3FS v2.0.0

### Added

- Added read cache to improve read throughput
- Added operation synchronization between multiple mountpoints of the same bucket

## US3FS v1.7.12

### Fixed

- Fixed some network connection issues

## US3FS v1.7.11

### Added

- Added `mp_mask` parameter to control mountpoint permissions

## US3FS v1.7.10

### Fixed

- Fixed an issue where, with `finish_write_when_release` enabled, moving (`mv`) a file that was still finishing upload could result in an empty file

## US3FS v1.7.9

### Fixed

- Fixed an error when using the `prefix` parameter

## US3FS v1.7.8

### Added

- Added `stats`, `gc`, and `reload` commands

### Improved

- Improved sequential read detection
- Improved read-cache eviction efficiency

## US3FS v1.7.7

### Added

- Added `--reload` to notify US3FS instances on the same machine to reload their config files (available for v1.7.7 and later)

### Improved

- Improved readahead read efficiency and memory usage

## US3FS v1.7.6

### Fixed

- Fixed small-file upload failures in some scenarios

### Added

- Added `--disable_remove` to disable `unlink`, `rmdir`, and `rename`

## US3FS v1.7.5

### Fixed

- Fixed inode loss on the local side caused by `rename` in some scenarios
- Fixed excessive memory usage under heavy read pressure with readahead enabled

## US3FS v1.7.4

### Fixed

- Fixed abnormal exit caused by closing a file handle multiple times

### Added

- `host` now supports configuring `IP:port`

### Improved

- Adapted to newer FUSE configurations

## US3FS v1.7.3

### Fixed

- Fixed abnormal exit when using `skip_ne_dir_lookup`

## US3FS v1.7.2

### Fixed

- Fixed an issue where crash logs could be unexpectedly cleaned up in some scenarios

## US3FS v1.7.1

### Fixed

- Fixed file lookup failures in some scenarios

## US3FS v1.7.0

### Added

- Added `cache_db` to cache US3FS metadata on disk
- Added `finish_write_when_release` to support async completion of file uploads
- Added `read_after_write_finish` so reads can wait for writes to finish

### Improved

- Improved file list loading speed

### Fixed

- Fixed memory not being reclaimed in some abnormal scenarios

## US3FS v1.6.8

### Added

- Added mimetype detection during writes
- Added `enable_load_dentries` to preload directory entries after mounting, improving access performance

### Improved

- Supported configuring mount parameters in the config file
- Removed the `bucket` field from the config file so multiple buckets can be mounted with the same config
- Optimized listing performance when using `-gfl`

### Fixed

- Fixed local inode cache not updating in some scenarios
- Fixed `dcache_timeout` not taking effect in some scenarios
- Fixed crash after `flush` followed by `write`
- Fixed zero-length file issues in some write scenarios
- Fixed inode synchronization latency issues

## US3FS v1.6.7

### Added

- Added `log_dir`, `log_max_age`, `log_rotation_time` to specify log output location

### Fixed

- Optimized memory usage under high-concurrency read/write workloads

## US3FS v1.6.6

### Added

- Added IA (Infrequent Access) storage support

### Fixed

- Fixed incorrect cache eviction timing caused by abnormal index TTL updates

## US3FS v1.6.5

### Fixed

- Fixed TCP connection reuse when using the `host` parameter
- Fixed TCP connection reuse during multipart uploads of large files

## US3FS v1.6.4

### Fixed

- Fixed write exceptions in private cloud scenarios

## US3FS v1.6.3

### Fixed

- Fixed an issue where backend errors when committing trailing data were not properly surfaced to user space

## US3FS v1.6.2

### Improved

- Improved crash log capture

### Fixed

- Fixed panic during writes
- Fixed default config path

## US3FS v1.6.0

### Added

- Supported mounting on Windows via command line
- Supported specifying a list of IPs for access

### Improved

- Improved cleanup logic

### Fixed

- Fixed crashes due to concurrent read/write internal data structures
- Fixed path information loss caused by FUSE kernel `forget`
- Fixed `-o allow_other` not taking effect

## US3FS v1.5.5

### Added

- None

### Improved

- Client-side HTTP request load balancing

### Fixed

- Fixed multipart uploads becoming incomplete under heavy upload load
- Fixed null pointer crash

## US3FS v1.5.4

### Added

- Added `max_background` and `congestion_threshold` for high-concurrency I/O in direct mode
- Added `async_dio` to allow FUSE kernel async direct I/O
- Added `keep_pagecache` to cache content in VFS when file modtime/size does not change

### Improved

- Auto-completed missing `"key"`-format directories by creating `"key/"` objects and preferring `"key/"` on path resolution, reducing directory index creation and improving latency
- Enabled virtual directory detection by default and removed the old parameter; use `disable_check_vdir` to disable it
- Added `skip_ne_dir_lookup` suffix filter dictionary to reduce `head` frequency; supported suffixes include: `.jpe`, `.jpeg`, `.png`, `.gz`, `.tgz`, `.log`, `.plot`, `.js`, `.html`, `.css`, `.apk`

### Fixed

- None

## US3FS v1.5.3

### Added

- Added `direct_read` to bypass US3FS cache and read directly from US3
- Added periodic performance dump output (default every 1 hour), configurable via `perf_dump`
- Set directory mimetype to `application/x-directory` for easier distinction in console

### Improved

- Enabled `entry_timeout`, `attr_timeout`, `dcache_timeout` by default and set to 5 minutes
- Updated `readahead` to support string parsing (e.g., `16m`, `8k`, `512`)
- Auto-completed missing `"key"` directories and reduced two `head` operations (`"key"` and `"key/"`) to one
- Enabled `nodirbl` by default, removed it, and replaced with the semantic `check_virtual_dir`
- Added a suffix filter dictionary to reduce `head` frequency (initially only `.jpe` and `.jpeg`)

### Fixed

- Fixed inode allocation not initializing UID/GID and mtime/ctime
- Fixed incomplete reads when a directory has too many members
- Fixed `allow_other` not taking effect

## US3FS v1.5.2

### Added

- None

### Fixed

- Fixed a crash when reading files after the backend connection was reset

## US3FS v1.5.1

### Added

- Supported using GetFileList to list files under a directory (enable with `--gfl`)

### Fixed

- Fixed `mv` failing for empty directories
- Removed the 64MB maximum limit for readahead

## US3FS v1.5.0

### Added

- Supported dynamic multipart size on the US3 backend
- Supported specifying a bucket prefix path at mount time

## US3FS v1.4.0

### Added

- Supported async upload using local cache
- Supported Read-Your-Write for small file reads

### Improved

- Supported setting log level via `--level`

### Fixed

- Fixed inability to write filenames with special characters
- Fixed possible process interruption during writes
- Fixed listing showing two directories when creating a directory and file with the same name
- Fixed blocking when multipart upload initialization fails


